Files
uni-notify/.env.example
Claude da28d0ac1c uni-notify: Outlook + Teams → Telegram с LLM-фильтром
- 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
2026-11-13 14:20:14 +01:00

44 lines
1.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# --- 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