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:
therealaleph
2026-04-21 23:47:23 +03:00
parent ea228d655c
commit d32c857502
4 changed files with 21 additions and 3 deletions
+19 -1
View File
@@ -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)