wiki-bot (проєкт)¶
Telegram-бот користувача (@Big_Wiki_Data_bot) для поповнення бази знань.
Один файл bot.py (~230 рядків), Python 3.11, фреймворк aiogram v3,
запуск через polling. Статус: розгорнуто 2026-07-09 у bot/ цієї бази
(venv + run-bot.bat), сайт вікі — MkDocs Material
поверх wiki/ (run-wiki.bat).
Приймає текст, файли (документи/фото/аудіо/відео/голосові) та посилання;
пише markdown-сторінки в raw/inbox/ і файли в raw/files/ — черга для
/ingest, реалізація патерну inbox-захоплення.
Ключові механізми: slugify() (kebab-case, кирилиця зберігається),
unique_path() (без перезапису), fetch_title() (витяг <title> через httpx),
is_allowed() (білий список Telegram ID з .env).
Відмінності від початкової версії із zip (raw/wiki-bot.zip):
- Пише в
raw/inbox|filesбази знань, а не у власнийdocs/(тека налаштовується черезWIKI_DIRу.env). fetch_title()читає максимум 64 КБ і лише HTML — велике відео/архів за посиланням більше не втягується в пам'ять.- Зберігаються всі URL з повідомлення (дедупліковані, зі своїми заголовками), а не лише перший.
- Помилка завантаження файлу >20 МБ (ліміт Bot API) повідомляється користувачу, а не мовчазний збій.
- Порожній
BOT_TOKEN— чіткий вихід з підказкою; порожнійALLOWED_USER_IDS— попередження в лог.
Конфігурація: bot/.env (BOT_TOKEN, ALLOWED_USER_IDS, опційно WIKI_DIR);
файл у .gitignore.
Повний розбір: підсумок джерела. Ширший контекст: Персональна вікі.