Commit Graph
38 Commits
Author SHA1 Message Date
hermes a19285687b fix: sync scraper.py with server version (proxy support + ID-based fetch) 2026-07-14 03:54:40 -04:00
hermes 43522353ec refactor: ID-based ad detection with fire-and-forget notifications
- Remove initial_loaded/baseline logic from scheduler
- Remove initial_loaded from keywords SELECT query
- Replace synchronous notification loops with asyncio.create_task
  (fire-and-forget) for both new ads and price drops
- Add safe_notify_new_ad/safe_notify_price_drop wrapper functions
- Scraper already simplified (single page, 30 ads, no cursor)
2026-07-14 03:54:40 -04:00
Lago 40e70cb4c4 feat: merge supabase migration into main 2026-07-04 15:39:37 +02:00
Lago 64506f20b3 chore: merge main into feat/supabase-migration 2026-07-04 15:16:17 +02:00
Lago fa551556e6 fix: use async callable for asyncpg pool init instead of string 2026-07-04 11:23:15 +02:00
Lago 753174b946 switch to direct DB connection on supabase_default network, bypass supavisor 2026-07-04 11:21:01 +02:00
Lago 98c71d4232 Migrate from local Supabase stack to external Supabase instance
- Reduce docker-compose from 6 services to 1 (worker only)
- Connect via supavisor pooled port (6543) on dedicated Supabase
- Add willhaben_tracker schema with search_path in asyncpg pool init
- Create consolidated migration SQL for Supabase SQL Editor
- Update .env.example with new connection pattern
2026-07-04 10:33:27 +02:00
Lago 39ef92ee51 Update .env.example 2026-06-21 20:50:03 +02:00
Lago 46c1b01e98 refactor: consolidate 3 migrations into single 01-schema.sql, remove legacy files 2026-06-17 13:42:14 +02:00
Lago c4745579ed fix: swap stats/admin back buttons, fix summary message KeyError 2026-06-17 13:36:31 +02:00
Lago b59a2ab922 fix: summary message, stats back, admin cancel/back buttons, keyword added confirmation, notifications logging 2026-06-17 13:18:33 +02:00
Lago c48706ac9c refactor: summary after keyword list, remove separators, back button in admin 2026-06-17 12:56:19 +02:00
Lago 0634755e6b fix: cancel shows main menu greeting instead of 'Cancelled.' 2026-06-17 12:41:23 +02:00
Lago bfc610dd6b fix: interval presets, back buttons, and cleaner confirmation formatting 2026-06-17 12:39:10 +02:00
Lago 075765af35 fix: handle asyncpg UUID in _safe_id + add cancel button to keyword input 2026-06-17 12:31:24 +02:00
Lago 00dc7876e1 fix: use colon separator in menu button callback_data to match router 2026-06-17 12:28:16 +02:00
Lago 9ee5644a99 fix: await _handle_callback in callback_router 2026-06-17 12:27:04 +02:00
Lago 8307c6b844 fix: wrap callback router in try/except to expose swallowed errors 2026-06-17 12:17:40 +02:00
Lago 72c2ddc22f fix: remove dead .answer attr on Message in start_handler 2026-06-17 12:10:58 +02:00
Lago 3ea7d42cae fix: use tuples for PTB set_my_commands (not dicts) 2026-06-17 11:53:53 +02:00
Lago 709e0a65ed fix: call set_my_commands in async context via setup_global_commands 2026-06-17 11:53:06 +02:00
Lago 4f7cb86c81 fix: await set_my_commands via post_init async hook 2026-06-17 11:48:10 +02:00
Lago f25ff56bab feat: full bot redesign with inline keyboards, callback routing, Vienna timezone\n\n- Two global commands only: /start (main menu), /admin (admin panel)\n- Inline keyboard UI with action buttons per keyword card\n- Add flow: keyword text → confirmation Yes/No → edits message\n- Edit submenu: change name (in-place) or interval (presets + custom)\n- Toggle active/inactive, remove with confirmation\n- Stats formatted inline\n- All times shown in Vienna timezone (Europe/Vienna)\n- Message editing with fallback to new message on 24h limit\n- Removed all old text commands: /add, /list, /delete, /interval, /stats\n- Updated README with new UI documentation 2026-06-17 11:46:57 +02:00
Lago 40230d14fc docs: update README with Tizona deployment guide, /interval command 2026-06-17 10:32:25 +02:00
Lago 6210d89270 fix: only notify for genuinely new ads, not every ad on page 2026-06-17 09:25:26 +02:00
Lago 88059fa0ee fix: skip notifications during baseline load, add /interval command with /list display 2026-06-17 08:44:35 +02:00
Lago c373e09567 fix: use kw.created_at instead of ks.created_at in /list 2026-06-17 08:28:26 +02:00
Lago a21c310eeb fix: remove stale mark_notified import, full main.py scheduler refactor, fix scraper datetime+image extraction 2026-06-17 08:27:34 +02:00
Lago b93811bb1b fix: remove dead query_ads ref, fix /stats for global dedup schema 2026-06-16 22:13:25 +02:00
Lago fcd192420f feat: add missing migration 02 (images+pricing) and 03 (global keywords) 2026-06-16 22:08:55 +02:00
Lago 0b19c3d8f2 fix: mount all migrations in compose, fix post-boot grants for new schema 2026-06-16 22:07:49 +02:00
Lago 3136d55742 fix: Postgres auth + worker startup 2026-06-16 19:38:32 +02:00
Lago 1a5d998cc8 chore: local dev paths, drop ADMIN_TELEGRAM_IDS from compose 2026-06-16 19:27:35 +02:00
Lago 89a00c3295 feat: DB-driven whitelist with is_admin, auto-register on /start, admin commands (/adduser /removeuser /users) 2026-06-16 19:24:51 +02:00
Lago 7c9db4d705 feat: docker-compose + .env.example + postgresql.conf + updated README 2026-06-16 19:16:08 +02:00
opencode fbbdc5e54b feat: python worker (bot, scraper, notifier, scheduler) 2026-06-16 19:12:35 +02:00
Lago d32ce26d9e feat: supabase schema migrations + kong gateway config 2026-06-16 19:06:50 +02:00
Lago 1c798efe15 init: scaffold project structure 2026-06-16 19:04:14 +02:00