Skip to content

Add one click launcher - #2

Merged
HarryXin0919 merged 4 commits into
mainfrom
add-one-click-launcher
Jun 1, 2026
Merged

Add one click launcher#2
HarryXin0919 merged 4 commits into
mainfrom
add-one-click-launcher

Conversation

@HarryXin0919

Copy link
Copy Markdown
Owner

No description provided.

HarryXin0919 and others added 4 commits June 1, 2026 19:32
Bundle viralens as a downloadable Windows/macOS/Linux desktop app so
non-technical users can double-click to run -- no Python install needed.

- scripts/runtime.py: centralize source-vs-frozen differences (FROZEN
  detection, worker_cmd self-dispatch via --vl-exec, writable per-user
  data dir when frozen). Source-mode behavior is byte-for-byte unchanged.
- Route the subprocess pipeline (app.py, viralens.py) and every worker
  script's data/reports/config paths through runtime.
- packaging/: PyInstaller onedir spec + entry + local build helper.
- .github/workflows/release.yml: tag v* builds on all three OSes and
  publishes a GitHub Release with per-OS downloads.
- analyze_video.py: graceful degradation when ffmpeg is absent.
- README: add a download-the-app section (EN + Chinese).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
--report now produces reports/index.html: a single self-contained file
(charts inlined as base64; headline conclusion, per-creator profiles,
signal-lever table, and a sortable video table) that opens offline and can
be handed to any creator -- delivering the interactive report the project
advertised but never generated (the /report 404 gap).

Wired into the viralens.py --report pipeline after export_data, and added
to the PyInstaller spec hiddenimports. Verified rendering in both source
and frozen (packaged app) modes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The packaged app now opens in its own window instead of popping a console
and a browser tab. Built windowed (console=False); the entry starts the
local server then opens a pywebview window, falling back to the browser if
no system WebView is available (e.g. Linux without WebKitGTK).

- viralens_app.py: stdout-rebind shim so windowed --vl-exec child processes
  still stream output to the parent's captured pipe (devnull for the
  windowless main process); dispatch workers before opening any window.
- app.py: add non-blocking start_server(); main() now blocks on an Event.
- spec: console=False; bundle pywebview when present, else browser-fallback.
- pyproject [gui] extra = pywebview; CI installs it on Windows/macOS only.
- Verified on Windows: native WebView2 window renders, child stdout streams.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@HarryXin0919
HarryXin0919 merged commit 8543663 into main Jun 1, 2026
1 check passed
@HarryXin0919
HarryXin0919 deleted the add-one-click-launcher branch June 1, 2026 16:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant