- Playwright держит открытыми веб-версии Outlook и Teams (постоянный профиль, Xvfb) - watcher.js перехватывает уведомления клиента и изменения карточек в реальном времени - pipeline: дедуп, baseline, VIP/MUTE, оценка важности через Haiku (OpenRouter) - aiogram-бот: уведомления, дайджест, вопросы по журналу, /login с 2FA-кодом, ручное управление браузером - Docker/compose, systemd-юнит, e2e-тест на поддельных страницах Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0194buWJjpDjU52JPX7PjsMs
44 lines
1.9 KiB
Plaintext
44 lines
1.9 KiB
Plaintext
# --- Telegram ---
|
||
# токен бота от @BotFather
|
||
TG_TOKEN=123456:ABC...
|
||
# твой Telegram ID (узнать: @userinfobot); бот отвечает только тебе
|
||
OWNER_ID=123456789
|
||
|
||
# --- LLM (OpenRouter) ---
|
||
OPENROUTER_API_KEY=sk-or-...
|
||
# всегда последняя Haiku; можно зафиксировать, напр. anthropic/claude-haiku-4.5
|
||
LLM_MODEL=~anthropic/claude-haiku-latest
|
||
|
||
# --- Универ ---
|
||
UNI_EMAIL=s123456@uni.edu
|
||
# можно оставить пустым — бот спросит пароль в Telegram и удалит сообщение
|
||
UNI_PASSWORD=
|
||
# чтобы LLM не считала важными твои собственные сообщения
|
||
MY_NAME=Имя Фамилия
|
||
MAIL_URL=https://outlook.office.com/mail/
|
||
TEAMS_URL=https://teams.microsoft.com/v2/
|
||
|
||
# --- Фильтры ---
|
||
# 3 = только срочное, 2 = важное и срочное
|
||
NOTIFY_MIN_LEVEL=2
|
||
# через запятую: фамилии преподов, предметы — всегда срочно
|
||
VIP=
|
||
# через запятую: никогда не присылать
|
||
MUTE=newsletter,noreply
|
||
# в эти часы «важное» приходит без звука, «срочное» — со звуком
|
||
QUIET_HOURS=23-8
|
||
# ежедневный дайджест неважного (пусто = выключен)
|
||
DIGEST_TIME=20:00
|
||
TZ=Europe/Warsaw
|
||
|
||
# --- Технические ---
|
||
# в Docker работает под xvfb, оставь false
|
||
HEADLESS=false
|
||
# плановая перезагрузка вкладок (утечки памяти Teams)
|
||
RELOAD_HOURS=6
|
||
# страховочный пересмотр списков, сек
|
||
SCAN_INTERVAL=120
|
||
# сколько секунд копить события перед вызовом LLM
|
||
BATCH_WINDOW=4
|
||
# CHROMIUM_PATH=/usr/bin/google-chrome # только для запуска без Docker со своим Chrome
|