mirror of
https://github.com/Flowseal/tg-ws-proxy.git
synced 2026-05-22 23:41:44 +03:00
remove cf priority flag, cf worker ui setup
This commit is contained in:
43
macos.py
43
macos.py
@@ -41,6 +41,8 @@ _app: Optional[object] = None
|
||||
_config: dict = {}
|
||||
_exiting: bool = False
|
||||
|
||||
_CFWORKER_HELP_URL = "https://github.com/Flowseal/tg-ws-proxy/blob/main/docs/CfWorker.md"
|
||||
|
||||
# osascript dialogs
|
||||
|
||||
|
||||
@@ -109,6 +111,32 @@ def _osascript_input(prompt: str, default: str, title: str = "TG WS Proxy") -> O
|
||||
return r.stdout.rstrip("\r\n")
|
||||
|
||||
|
||||
def _ask_cfworker_domain(default: str) -> Optional[str]:
|
||||
value = default
|
||||
while True:
|
||||
script = (
|
||||
f'set d to display dialog "{_esc("Cloudflare Worker домен (например, name.account.workers.dev):")}" '
|
||||
f'default answer "{_esc(value)}" '
|
||||
f'with title "TG WS Proxy" '
|
||||
f'buttons {{"Закрыть", "?", "OK"}} '
|
||||
f'default button "OK" cancel button "Закрыть"\n'
|
||||
f'return (button returned of d) & "\\n" & (text returned of d)'
|
||||
)
|
||||
r = subprocess.run(["osascript", "-e", script], capture_output=True, text=True)
|
||||
if r.returncode != 0:
|
||||
return None
|
||||
|
||||
out_lines = r.stdout.splitlines()
|
||||
button = out_lines[0].strip() if out_lines else ""
|
||||
value = out_lines[1].strip() if len(out_lines) > 1 else value
|
||||
|
||||
if button == "?":
|
||||
webbrowser.open(_CFWORKER_HELP_URL)
|
||||
continue
|
||||
if button == "OK":
|
||||
return value.strip()
|
||||
|
||||
|
||||
# menubar icon
|
||||
|
||||
|
||||
@@ -396,13 +424,6 @@ def _edit_config_dialog() -> None:
|
||||
if cfproxy is None:
|
||||
return
|
||||
|
||||
cfproxy_priority = True
|
||||
if cfproxy:
|
||||
cfproxy_priority_result = _ask_yes_no_close("Приоритет CfProxy (пробовать раньше прямого TCP)?")
|
||||
if cfproxy_priority_result is None:
|
||||
return
|
||||
cfproxy_priority = cfproxy_priority_result
|
||||
|
||||
cfproxy_domain = _osascript_input(
|
||||
"Свой CF-домен (оставьте пустым для автоматического выбора):\n"
|
||||
"DNS записи kws1-kws5,kws203 должны указывать на IP датацентров Telegram через Cloudflare.",
|
||||
@@ -412,6 +433,12 @@ def _edit_config_dialog() -> None:
|
||||
return
|
||||
cfproxy_domain = cfproxy_domain.strip()
|
||||
|
||||
cfworker_domain = _ask_cfworker_domain(
|
||||
cfg.get("cfproxy_worker_domain", DEFAULT_CONFIG.get("cfproxy_worker_domain", ""))
|
||||
)
|
||||
if cfworker_domain is None:
|
||||
return
|
||||
|
||||
new_cfg = {
|
||||
"host": host,
|
||||
"port": port,
|
||||
@@ -423,8 +450,8 @@ def _edit_config_dialog() -> None:
|
||||
"log_max_mb": adv.get("log_max_mb", cfg.get("log_max_mb", DEFAULT_CONFIG["log_max_mb"])),
|
||||
"check_updates": cfg.get("check_updates", True),
|
||||
"cfproxy": cfproxy,
|
||||
"cfproxy_priority": cfproxy_priority,
|
||||
"cfproxy_user_domain": cfproxy_domain,
|
||||
"cfproxy_worker_domain": cfworker_domain,
|
||||
}
|
||||
save_config(new_cfg)
|
||||
log.info("Config saved: %s", new_cfg)
|
||||
|
||||
Reference in New Issue
Block a user