forust
08f8196bf9
style(webui): match GPU Radar visual system
ci / lint-dockerfiles (push) Successful in 5s
ci / validate (push) Successful in 4s
ci / publish (push) Has been skipped
ci / lint-prettier (push) Failing after 11s
ci / lint-ruff (push) Successful in 4s
ci / lint-yaml (push) Successful in 5s
2026-07-26 18:56:41 +02:00
forust
b963cf07df
ci: restore docker-based lint and validate jobs
ci / lint-prettier (push) Successful in 6s
ci / lint-ruff (push) Successful in 3s
ci / lint-yaml (push) Successful in 3s
ci / lint-dockerfiles (push) Successful in 6s
ci / validate (push) Successful in 4s
ci / publish (push) Successful in 5s
2026-06-30 01:12:51 +02:00
forust
849bf97c97
ci: run lint and validate tools locally
ci / lint-dockerfiles (push) Failing after 1s
ci / validate (push) Failing after 1s
ci / publish (push) Has been skipped
ci / lint-prettier (push) Failing after 3s
ci / lint-ruff (push) Successful in 1s
ci / lint-yaml (push) Successful in 1s
2026-06-30 00:15:02 +02:00
forust
145e7de7f4
Harden scraper inputs and exports
ci / lint-prettier (push) Successful in 7s
ci / lint-ruff (push) Successful in 5s
ci / lint-yaml (push) Successful in 6s
ci / lint-dockerfiles (push) Successful in 4s
ci / validate (push) Successful in 4s
ci / publish (push) Successful in 8s
2026-06-29 17:27:43 +02:00
forust
27296caf69
Merge branch 'dev'
ci / lint-prettier (push) Successful in 7s
ci / lint-ruff (push) Successful in 4s
ci / lint-yaml (push) Successful in 5s
ci / validate (push) Successful in 4s
ci / lint-dockerfiles (push) Successful in 4s
ci / publish (push) Successful in 8s
2026-06-28 01:04:17 +02:00
forust
a11ed6c5ba
Simplify web UI theme
ci / lint-prettier (push) Successful in 8s
ci / lint-ruff (push) Successful in 5s
ci / lint-yaml (push) Successful in 4s
ci / lint-dockerfiles (push) Successful in 4s
ci / validate (push) Successful in 6s
ci / publish (push) Successful in 10s
2026-06-28 01:02:24 +02:00
forust
56f15e0ba5
Parallelize CI lint jobs
ci / lint-prettier (push) Successful in 8s
ci / lint-ruff (push) Successful in 4s
ci / lint-yaml (push) Successful in 5s
ci / lint-dockerfiles (push) Successful in 31s
ci / validate (push) Successful in 5s
ci / publish (push) Successful in 7s
2026-06-28 00:57:21 +02:00
forust
26b6344f7a
Format web UI assets
ci / lint (push) Successful in 12s
ci / validate (push) Successful in 7s
ci / publish (push) Successful in 8s
2026-06-28 00:55:11 +02:00
forust
6bc8d6ed36
Polish web UI styling
ci / lint (push) Failing after 8s
ci / validate (push) Successful in 6s
ci / publish (push) Has been skipped
2026-06-28 00:53:54 +02:00
forust
01a0d9c6d4
Add CI workflow comment
ci / lint (push) Successful in 21s
ci / validate (push) Successful in 8s
ci / publish (push) Successful in 8s
2026-06-28 00:41:38 +02:00
forust
d3beeb6b2d
feat: show next continuous run on dashboard
ci / lint (push) Successful in 15s
ci / validate (push) Successful in 6s
ci / publish (push) Failing after 2s
2026-06-28 00:38:18 +02:00
forust
24d4898865
Revert "Run CI linters without Docker"
...
This reverts commit a74b8bfd14 .
2026-06-28 00:37:48 +02:00
forust
a74b8bfd14
Run CI linters without Docker
2026-06-28 00:36:17 +02:00
forust
a2c5ca7f2b
feat: add dedicated account settings page
2026-06-28 00:36:05 +02:00
forust
715cb448b7
Combine CI and publish workflows
ci / lint (push) Successful in 14s
ci / validate (push) Successful in 10s
ci / publish (push) Failing after 2s
2026-06-28 00:31:13 +02:00
forust
ec4805f027
Add Docker publish pipeline
2026-06-27 23:01:57 +02:00
forust
5b27852b97
fix: URL-decode channel_id path params, strip @ prefix for state lookup
2026-06-27 21:53:52 +02:00
forust
c5d0a7c7e5
docs: refresh API explorer for updated endpoints
2026-06-27 21:47:45 +02:00
forust
23bb370836
feat: polish multi-account dashboard and viewer
2026-06-27 21:47:45 +02:00
forust
ff1ca13a03
feat: harden multi-account backend and add tests
2026-06-27 21:47:45 +02:00
forust
7aa5c84e63
fix: add search param to legacy /api/channels/{id}/messages endpoint
2026-06-27 21:28:08 +02:00
forust
881e7ddfca
Harden account import/continuous behavior and finish multi-account UI polish
2026-06-27 21:26:18 +02:00
forust
59cdad220a
Fix account tab persistence and viewer fallback
2026-06-27 19:09:07 +02:00
forust
9b72c3128e
Merge branch 'dev'
2026-06-27 16:30:36 +02:00
forust
3eb6bdf534
docs: update README for multi-account, bump app.js cache version
2026-06-27 15:58:10 +02:00
forust
f0d207bdea
feat: add account selector dropdown in message viewer
2026-06-27 15:51:19 +02:00
forust
1bd385e054
fix: add WAL mode for session SQLite to prevent 'database is locked', persist active account tab in localStorage
2026-06-27 15:45:05 +02:00
forust
93f2b94dd2
chore: update entry points for multi-account
...
- main.py calls migrate_legacy_state() before starting server
- health.py accepts account_ids parameter for per-account health checks
- _continuous_check returns per-account status instead of single snapshot
2026-06-27 15:21:02 +02:00
forust
eb69a89d91
feat: add multi-account message viewer support
...
- viewer.html shows account name in header
- viewer.js loads account list from /api/accounts, auto-selects first account
- Account-aware API endpoints (/api/accounts/{id}/... or legacy /api/...)
- Chat list redesign with avatar initials, preview text, time, message count
- loadViewerAccount() helper fetches account info and user ID
2026-06-27 15:20:56 +02:00
forust
62a6a492e0
feat: add per-account web UI with account tabs
...
- Account tab bar with tab switching (loadAccounts, switchAccount)
- Per-account dashboard panel showing auth status, channels, jobs, continuous
- Settings dialog with account management (add/delete accounts, credentials)
- Auth forms per account (QR, phone, password, set credentials)
- All action buttons with error handling (alert on failure)
- AMOLED dark theme with Telegram-style message bubbles
- Account tab and account list CSS styles
2026-06-27 15:20:49 +02:00
forust
bb4e28a710
feat: add per-account API, auth, and continuous orchestration
...
- TelegramAuthManager rewritten for per-account clients/auth state
- ContinuousScrapeOrchestrator managing per-account continuous loops
- Full /api/accounts/* REST endpoints: CRUD, auth (QR/phone/password),
channels, jobs, continuous config, settings, media toggle
- Legacy backward compat via legacy_account_id auto-detection
(old /api/auth/*, /api/channels/*, /api/jobs/* still work for legacy
single-account mode)
- load_messages() accepts account_id parameter for per-account data
- auth_status_for(), list_channels_snapshot() per-account helpers
- OpenAPI spec updated with all /api/accounts/* endpoints
2026-06-27 15:20:27 +02:00
forust
220d04b3a6
feat: make scraper and job service account-aware
...
- OptimizedTelegramScraper accepts account_id parameter;
sets DATA_DIR to data/accounts/<id>/ when provided
- Session path uses account_session_path() for per-account session files
- initialize_client() reads per-account credentials from account state store
- ScraperJobService passes account_id from payload to scraper constructor
- Per-account state loaded from AccountStateStore before scraping
2026-06-27 15:20:15 +02:00
forust
6e3966aeb5
feat: add multi-account data layer with legacy migration
...
- GlobalStateStore for account registry in global state.json
- AccountStateStore for per-account settings (channels, credentials, continuous config)
- migrate_legacy_state() copies legacy data/ to data/accounts/default/
with progress logging; renames session.session to default.session
- Helpers: account_data_dir(), account_session_path(), list_accounts(),
load_account(), save_account(), get_account_store(), get_global_store()
- StateStore accepts defaults parameter for flexible default values
2026-06-27 15:20:09 +02:00
forust
f5ef74bda6
Merge dev into main: lint fixes and config updates
2026-06-19 11:52:34 +02:00
forust
ac5beb831b
lint: fix bare except and unused variables
2026-06-19 11:52:30 +02:00
forust
df644219de
k8s + image
2026-06-11 18:19:17 +02:00
forust
7af597b800
sidebar toggle + css
2026-06-11 18:19:09 +02:00
forust
c5361f2271
Redesign message viewer as Telegram-style chat with bubbles, replies, infinite scroll, and orientation
...
- Chat bubbles with 1px border-radius, angular tail arrows
- Own messages right (blue), others left (dark) via sender_id vs user_id
- Reply preview with left border accent, clickable scroll to original
- Infinite scroll up via IntersectionObserver on scroll-sentinel
- Date separators (Today/Yesterday/date) between messages
- Full-height messages panel with sidebar (channels) + header
- Backend: reply_to_message data in load_messages(), user_id exposed in auth snapshot
- Auto-scroll to bottom on channel load (triple scrollTop fallback)
- history.scrollRestoration = manual to prevent mid-page jumps
2026-05-27 01:01:18 +02:00
forust
1dfe41950e
Add graceful shutdown, logging, streaming with Range Requests, and state.json cache
...
- Graceful shutdown: SIGTERM/SIGINT handlers stop continuous scraper,
disconnect Telegram client, drain running jobs with timeout
- Logging: replace print() with logging module throughout web server,
basicConfig in main.py with structured log format
- Streaming: chunked file reads (64KB) instead of loading entire files
into memory; full HTTP Range Request support (206 Partial Content)
for video seeking in the browser
- Cache: TTL-based in-memory cache (1s) for state.json reads in
StateStore, thread-safe with existing RLock
- Bugfix: send_error_json now converts HTTPStatus to int for JSON
2026-05-27 00:14:26 +02:00
forust
856d04bd16
Fixed on-hover button style
2026-05-24 22:29:25 +02:00
forust
d49fe28f08
Refactor server state and add health checks
2026-05-24 22:24:13 +02:00
forust
a78a708757
Improve webui style and add api docs
2026-05-24 22:18:41 +02:00
forust
6851922a9e
Merge branch 'dev'
2026-05-24 21:56:24 +02:00
forust
ff000e88d4
Enchance weblog
2026-04-26 23:21:26 +02:00
forust
cc99f752b3
Change exposed port to 7887
2026-04-26 21:45:12 +02:00
forust
be02eed378
Add export button for channel data and update API integration
...
Co-authored-by: Copilot <copilot@github.com >
2026-04-25 22:12:14 +02:00
forust
5b8a95d73d
Revert "Remove tty and stdin_open options"
...
This reverts commit 612fa28ec6 .
2026-04-25 03:00:00 +02:00
forust
cf674b4943
Update port for webui to 7887
2026-04-25 02:56:21 +02:00
forust
612fa28ec6
Remove tty and stdin_open options
2026-04-25 02:55:01 +02:00
forust
47ef106ee1
Add .dockerignore file to exclude unnecessary files and directories
2026-04-25 02:51:11 +02:00