mirror of
https://github.com/therealaleph/MasterHttpRelayVPN-RUST.git
synced 2026-05-18 05:44:35 +03:00
v0.4.3: expose multi-script-ID support in the UI
The backend already supported a comma-separated list of Apps Script IDs with round-robin dispatch and automatic 10-minute sidelining on quota errors (429 / 403 / 'quota' in body). But the UI label just said 'Apps Script ID' (singular), so users didn't realize multiple IDs are allowed. - Rename the label to 'Apps Script ID(s)' - Hover tooltip explaining comma-separated input and quota auto-failover - Placeholder hint 'id1, id2, id3 …' - Live count line under the field when 2+ IDs are entered Requested by a user in Farsi: 'add the ability to set multiple script IDs; switch to the next when one hits its limit'. The feature existed, this just surfaces it.
This commit is contained in:
Generated
+1
-1
@@ -1360,7 +1360,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "mhrv-rs"
|
||||
version = "0.4.2"
|
||||
version = "0.4.3"
|
||||
dependencies = [
|
||||
"base64 0.22.1",
|
||||
"bytes",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "mhrv-rs"
|
||||
version = "0.4.2"
|
||||
version = "0.4.3"
|
||||
edition = "2021"
|
||||
description = "Rust port of MasterHttpRelayVPN -- DPI bypass via Google Apps Script relay with domain fronting"
|
||||
license = "MIT"
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 61 KiB |
+19
-1
@@ -291,11 +291,29 @@ impl eframe::App for App {
|
||||
.num_columns(2)
|
||||
.spacing([10.0, 6.0])
|
||||
.show(ui, |ui| {
|
||||
ui.label("Apps Script ID");
|
||||
ui.label("Apps Script ID(s)")
|
||||
.on_hover_text(
|
||||
"One deployment ID, or several separated by commas.\n\
|
||||
With multiple IDs the proxy round-robins between them and\n\
|
||||
automatically sidelines any ID that hits its daily quota (429)\n\
|
||||
or other rate limits for 10 minutes before retrying it."
|
||||
);
|
||||
ui.add(egui::TextEdit::singleline(&mut self.form.script_id)
|
||||
.hint_text("id1, id2, id3 …")
|
||||
.desired_width(f32::INFINITY));
|
||||
ui.end_row();
|
||||
|
||||
let id_count = self.form.script_id
|
||||
.split(',')
|
||||
.map(|s| s.trim())
|
||||
.filter(|s| !s.is_empty())
|
||||
.count();
|
||||
if id_count > 1 {
|
||||
ui.label("");
|
||||
ui.small(format!("{} IDs — round-robin with auto-failover on quota", id_count));
|
||||
ui.end_row();
|
||||
}
|
||||
|
||||
ui.label("Auth key");
|
||||
ui.horizontal(|ui| {
|
||||
let te = egui::TextEdit::singleline(&mut self.form.auth_key)
|
||||
|
||||
Reference in New Issue
Block a user