A terminal-based monitor for Gengo translation jobs with real-time notifications.
- Real-time monitoring via WebSocket and RSS feed
- Desktop notifications with sound alerts
- Auto-accept jobs matching your criteria
- Multiple sources - WebSocket, RSS, email, and website scraping
- CAPTCHA solving integration (2Captcha, Anti-Captcha)
- Modern TUI built with Textual
git clone https://github.com/tdawe1/GengoWatcher.git
cd GengoWatcher
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -e .That installs gengowatcher on your PATH, plus the release-friendly aliases
gengo-watcher and gengowatcher-browser-worker.
If you want a simpler repo-local launcher without relying on Python packaging, install the bundled script into ~/.local/bin:
make install-userThat symlinks bin/gengowatcher,
bin/gengo-watcher, and
bin/gengowatcher-browser-worker
into ~/.local/bin/ and runs them through this repo's venv from any directory.
gengowatcherAlias:
gengo-watcherOr directly:
./bin/gengowatcherOn the first run, you'll be guided through configuration setup.
Interactive setup entrypoints:
gengowatcher --configure
gengowatcher --setup-email
gengowatcher --setup-websiteSettings are stored in config.toml. Key sections:
[Watcher]
feed_url = "https://your-rss-feed-url"
check_interval = 31
min_reward = 0.0
[WebSocket]
enable_websocket = true
user_id = 12345
user_session = "YOUR_SESSION_TOKEN"
user_key = "YOUR_USER_KEY"Get WebSocket credentials from your browser's DevTools:
- user_id and user_session: Application → Cookies → gengo.com
- user_key: Application → Local Storage → gengo.com → userKey
The browser worker is an optional local Playwright sidecar that keeps a long-lived headed browser with a dedicated persistent profile. Configure the BrowserWorker section in config.ini, then start it separately with:
PYTHONPATH=src python -m gengowatcher.browser_worker.main \
--profile-path profiles/browser-worker \
--socket-path /tmp/gengowatcher-browser-worker.sockThe operator procedure for black-box validation is documented in docs/browser-worker-black-box-test-procedure.md.
| Command | Description |
|---|---|
check |
Trigger immediate RSS check |
pause and resume |
Pause/resume monitoring |
wstest |
Test WebSocket connection |
notifytest |
Test notifications |
togglesound |
Toggle sound alerts |
autoaccept |
Toggle auto-acceptance |
help |
Show all commands |
exit |
Save state and quit |
The built-in web API now includes a local file store for release artifacts, exports,
or handoff documents. It is rooted at [Paths].file_storage_dir and exposed as:
GET /api/files
POST /api/files/upload
GET /api/files/{stored_name}
When POST /api/files/upload includes job_id, tier, word_count, and value,
stored files are renamed to:
YYYYMMDD_HHMMSS_<job_id>_<pro|standard>_<word_count>w_<value>.<ext>
Example:
20260410_163012_job-12345_pro_320w_16.00.txt
All three endpoints require the normal web API bearer token.
