mekct.ru отчет о трудах

Что было задумано


Сервис публикации ответов ИИ и статей в веб-страницы. Без регистрации. С поддержкой таблиц, кода, изображений. Плюс Telegram-бот для репостинга контента из каналов с автоподписью.


Архитектура



  • Веб-сервер: kupidirect (Россия) — Flask + MySQL + Nginx

  • Бот-сервер: info5 (зарубежный) — Telegram Bot API + воркер

  • Связь: HTTPS API между серверами

  • Хранение файлов: S3-ready структура /i/ab/cd/hash.ext




Что сделано


Ядро сервиса



  • ✅ Публикация статей (Telegraph-стиль) и ИИ-ответов

  • ✅ Визуальный редактор с тулбаром, автосохранением

  • ✅ AI-улучшение текста через DeepSeek API (оформить, исправить, улучшить стиль)

  • ✅ Приватные и публичные посты

  • ✅ Авторизация через Telegram (стабильно)

  • ✅ Счётчики просмотров

  • ✅ Блок «Поделиться» (Telegram, WhatsApp, VK, X, копировать)

  • ✅ OG-метатеги

  • ✅ Хештеги → ссылки

  • ✅ S3-хранилище для файлов

  • ✅ Nginx кеширование на 30 дней


Telegram-бот и репостинг



  • ✅ Бот @mekct_bot на info5

  • ✅ Webhook через HTTPS-прокси (мгновенный ответ Telegram)

  • ✅ Воркер обрабатывает: текст, фото, видео, GIF, документы, аудио, медиагруппы, репосты, reply

  • ✅ Конвертация Telegram-форматирования в HTML (bold, italic, underline, strikethrough, spoiler, links, code, pre, blockquote)

  • ✅ Очередь задач mekct_posting_queue

  • ✅ Редактирование постов (update)

  • ✅ Даты постов из Telegram

  • ✅ Защита: fallback на create если update не нашёл пост


Автоподпись



  • ✅ Настройка шаблона через бота (HTML с ссылками)

  • ✅ Превью подписи

  • ✅ Вкл/выкл для каждого канала

  • ✅ Добавление подписи в Telegram (editMessageText) для своих постов

  • ✅ Добавление подписи на mekct.ru

  • ✅ Защита от дублирования (воркер + kupidirect)

  • ✅ Обработка репостов (подпись только на сайте)


Управление каналами



  • ✅ Меню в боте: список каналов, детали, пауза/активация

  • ✅ Добавление канала через @username

  • ✅ Проверка админства бота и пользователя

  • ✅ Кнопка «🔄 Проверить» для неподтверждённых

  • ✅ Мягкое удаление (is_active=False)


Страница канала на сайте



  • mekct.ru/<channel_name> — страница канала

  • ✅ Шапка: аватар, название, подписчики, кнопка подписки

  • ✅ Поиск по каналу

  • ✅ Лента постов с группировкой по датам

  • ✅ Посты с полным контентом, как в Telegram

  • ✅ Кликабельные заголовок и комментарии

  • ✅ Модалка авторизации для подписки


Авторизация



  • ✅ Единая модалка на всех страницах (base.html)

  • ✅ Токен бессмертный, удаляется при использовании

  • ✅ Несколько устройств — одна учётка

  • ✅ Logout чистит все токены


Инфраструктура



  • ✅ Админ-статистика /stats?session=... с метриками очереди

  • ✅ Cron для проверки webhook каждые 5 минут

  • ✅ Резервное копирование перед изменениями

  • ✅ Nginx: client_max_body_size 50M, proxy_read_timeout 120s


Удаление постов



  • delete_check с проверкой через copyMessage

  • ✅ Удаляет с сайта только если пост удалён в Telegram

  • ⚠️ Ждём подтверждения тестом


Проверка админства



  • ✅ Бот проверяет своё админство через getChatMember

  • ✅ Бот проверяет админство пользователя через getChatMember

  • ✅ Разные сообщения: «бот не админ» / «вы не админ»




Что ещё нужно сделать


Критическое



  • Удаление постов — дождаться подтверждения тестом

  • Webhook сбрасывается при перезапуске tgbot.py — надо перевести бота на webhook или разделить ботов

  • Очистка старых задач из очереди (id=1, id=4 висят с 15 мая)


Важное



  • Аватарки каналов — сохранение фото при регистрации

  • Подпись к медиа без текстаeditMessageCaption для фото/видео

  • Приватные каналы — приём invite-ссылок

  • Рекомендации под постом — 3 карточки похожих статей

  • SEO-пакет — description, Schema.org, sitemap, robots.txt


Рост и масштабирование



  • Подписка на каналы — сохранение в БД для авторизованных

  • Бесконечный скролл на странице канала

  • Страница /channels — список всех публичных каналов

  • MCP-сервер — публикация через ИИ-клиенты

  • Смысловой поиск — эмбеддинги + рекомендации


Инфраструктура



  • Очередь на Redis — при росте до 1000+ каналов

  • CDN для S3 — при высокой нагрузке

  • Метрики воркера — время обработки, задержки

  • Мониторинг — алерты при росте очереди




Текущий статус теста удаления



Ждём результат: пост «не удаляю» должен остаться, пост «удаляю» должен быть удалён с сайта через 5 минут после удаления в Telegram.


← Новая публикация