- M001: Fix bot deployment — fix .env, Telethon auth, code bugs, multi-topic support
- M002: Full OneProvider integration — connect to OneProvider API, auto-publish blog/news content
- M003: Automation features — cron scheduling, approval workflow, analytics
OnePostBot (внутреннее имя «TG Publisher») — система автоматического ведения Telegram-каналов. Парсит контент из исходных каналов, перерабатывает его через AI (рерайт, перевод, улучшение изображений) и публикует в целевой канал с ручным подтверждением оператора.
Предназначен для ведения контент-канала, связанного с проектом OneProvider.dev (платформа продажи LLM API-ключей).
- Telegram Bot (
@AutoOneProviderbot) — основной интерфейс управления через команды и inline-кнопки - Telethon parser — пользовательский аккаунт читает исходные каналы (требует авторизации сессии)
- AI layer — Anthropic (Claude) для текста, OpenAI-совместимый (cc-vibe, GPT Image) для изображений
- Язык: Python 3.13
- Bot framework: aiogram 3.x (Bot API)
- Парсинг: Telethon 1.44+ (MTProto / user session)
- AI: anthropic SDK (через OneProvider proxy), openai SDK (через cc-vibe)
- Хранилище: SQLite (
data/processed.db) — dedup + очередь публикаций - Деплой: Docker Compose через Dokploy на VPS
- Сервер:
138.124.50.27(root) - Путь:
/etc/dokploy/compose/onepostbot-stack-7gdtph/code/ - Контейнер:
onepostbot-stack-7gdtph-tg-publisher-1 - Запуск:
python -m app.main bot - Ресурсы: 512MB RAM, 1 CPU (лимит)
| Модуль | Ответственность |
|---|---|
app/bot.py |
Команды бота, callback-хендлеры, watch-loop |
app/parser.py |
Парсинг каналов через Telethon, скачивание медиа |
app/text_regen.py |
Рерайт/перевод текста (Claude) |
app/image_regen.py |
Улучшение/генерация изображений (GPT Image) |
app/publisher.py |
Публикация в целевой канал (Bot API / Telethon) |
app/scheduler.py |
Очередь публикаций (обёртка над db.py) |
app/db.py |
SQLite: dedup + очередь |
app/config.py |
Конфигурация из .env |
app/notifier.py |
Уведомления в тему топика |
parsed → pending → approved → published
↘ failed
Исправлено в этой сессии:
- Сломанный
.envна сервере (склеенные строкиDOCKER_CONFIG/TELEGRAM_API_ID) EOFErrorпри/parse— Telethon пытался интерактивно вводить код в Docker без stdin- aiogram 3.x несовместимость — позиционные аргументы в
InlineKeyboardButton/KeyboardButton - Перехват
rewrite_custom_хендлеромrewrite_ - Несоответствие
photo_urlvsphoto_pathмежду parser и bot - Файловая очередь заменена на SQLite с корректным жизненным циклом
post_via_botиспользовал requests-синтаксис в aiohttp (падал на отправке фото)regenerate_photoвозвращал невалидные данные вместо пути к файлу
Открытые вопросы:
- Telethon-сессия не авторизована (блокирует парсинг) — требуется код подтверждения
TARGET_CHANNELпустой — целевой канал ещё не выбран- Режим работы: ручное подтверждение перед публикацией (выбрано оператором)