Files
haos-hacs-immich-album-watcher/plans/phase-9-telegram-bots.md
alexei.dolgolyov 0200b9929f
Some checks failed
Validate / Hassfest (push) Has been cancelled
Phase 8: Server health, album filter, Jinja2 engine, password change
5 features implemented:

1. Server health indicator: green/red/yellow dot on each server card.
   Pings Immich in background on page load. New GET /api/servers/{id}/ping.

2. Album selector filter: search input above album list in tracker form.
   Filters by name as you type (case-insensitive). Shows total count.

3. Album last update time: each album in the selector shows its
   updatedAt date. Backend now returns updatedAt from Immich API.

4. Full Jinja2 template engine in notifier:
   - build_full_context() assembles all ~40 variables from blueprint
   - Common date/location detection across assets
   - Per-asset date/location when they differ
   - Favorite indicator, people formatting, asset list with truncation
   - Video warning for Telegram
   - All template slots from TemplateConfig used contextually

5. Password change: PUT /api/auth/password endpoint (validates current
   password, min 6 chars). UI in sidebar footer with inline form.

Also: Phase 9 plan (Telegram bot management) added.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 17:27:00 +03:00

715 B

Phase 9: Telegram Bot Management

Status: Pending Parent: primary-plan.md


Tasks

1. Register Telegram bots [ ]

  • New entity: TelegramBot (name, token, bot_username fetched via getMe)
  • CRUD API: /api/telegram-bots
  • Frontend page to manage bots

2. View active bot chats [ ]

  • Call Telegram getUpdates API to discover chats the bot has interacted with
  • Display chat list (id, title, type) per bot
  • Refresh on demand

3. Target uses registered bot + chat selector [ ]

  • Target form: select from registered bots (dropdown) instead of raw token
  • Select from discovered chats instead of typing chat_id manually
  • Keep backward-compatible raw input as fallback