fix: print config hint when logs token is missing
--once --logs now exits 2 with a clear pointer to SHUSUB2_LOGS_TOKEN / ~/.config/shusub2/logs-token instead of a raw HTTP 401 traceback; the TUI logs page reuses the same hint. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+11
-4
@@ -906,10 +906,7 @@ def run_textual(
|
||||
def refresh_data(self) -> None:
|
||||
status = self.query_one("#status", Static)
|
||||
if not str(logs_token or "").strip():
|
||||
status.update(
|
||||
"logs token not configured: set SHUSUB2_LOGS_TOKEN or write the Sub2API admin API key to "
|
||||
f"{logs_token_config_file_path()}"
|
||||
)
|
||||
status.update(logs_token_hint())
|
||||
return
|
||||
status.update("refreshing logs...")
|
||||
try:
|
||||
@@ -972,6 +969,13 @@ def run_textual(
|
||||
return 0
|
||||
|
||||
|
||||
def logs_token_hint() -> str:
|
||||
return (
|
||||
"logs token not configured: set SHUSUB2_LOGS_TOKEN or write the Sub2API admin API key to "
|
||||
f"{logs_token_config_file_path()}"
|
||||
)
|
||||
|
||||
|
||||
def build_parser() -> argparse.ArgumentParser:
|
||||
parser = argparse.ArgumentParser(description="Sub2API quota and daily usage TUI")
|
||||
parser.add_argument("--api-url", default=default_api_url())
|
||||
@@ -1034,6 +1038,9 @@ def main(argv: list[str] | None = None) -> int:
|
||||
if version_message:
|
||||
print(version_message)
|
||||
if args.logs:
|
||||
if not str(args.logs_token or "").strip():
|
||||
print(logs_token_hint(), file=sys.stderr)
|
||||
return 2
|
||||
print_logs_once(fetch_logs_payload(args.logs_url, args.logs_token, args.timeout, logs_limit), args.filter)
|
||||
return 0
|
||||
status_payload, status_error = fetch_optional_payload(status_url, args.timeout)
|
||||
|
||||
Reference in New Issue
Block a user