WebJesus SEO Bot — от файла до отчёта

WebJesus SEO Bot — от файла до отчёта An architecture diagram generated by Archify. Пользователь · Telegram · Architecture component Пользователь Telegram webjesus-seo bot · aiogram 3.0+, middleware · webjesus-seo (Python) · app webjesus-seo bot aiogram 3.0+, middleware app Postgres · users, transactions, processing_jobs · webjesus-seo (Python) · app Postgres users, transactions, processing_jobs app T-Bank / Lava.top · два платёжных провайдера · Architecture component T-Bank / Lava.top два платёжных провайдера ParserFactory · google/yandex/perplexity/gemini/gpt · webjesus-seo (Python) · app ParserFactory google/yandex/perplexity/gemini/gpt app BrightData API · Google AI Overview · Architecture component BrightData API Google AI Overview файл .txt/.xlsx, запросы списать баланс по тарифу /topup: создать платёж (T-Bank копейки или Lava.top) webhook: платёж подтверждён get_parser(type).fetch() Google: запрос AI Overview retry, backoff 2^n webjesus-seo (Python) Legend Backend Database External

Честное наблюдение по деньгам

  • • balance_rub/usd/eur хранятся как Float в Postgres — тот же риск округления, что и обсуждается в статье про Avito.Кухню про int-центы
  • • T-Bank API при этом получает сумму в копейках (amount_to_kopecks) — то есть у платёжного шлюза целые единицы, а у баланса пользователя — float

Retry-логика парсера

  • • До MAX_RETRIES попыток с экспоненциальным backoff (2^attempt секунд)
  • • Различает 'No AI Overview' (валидный ответ, просто пусто) от 'ERROR' (реальный сбой)
  • • JSON-ошибка парсинга пробует alternate-очистку строки перед тем как сдаться

Что есть что

  • • Пользователь — клиент Telegram-бота, платит за парсинг выдачи
  • • webjesus-seo bot — aiogram-бот, middleware создаёт юзера и начисляет приветственный бонус 100₽
  • • ParserFactory — паттерн Фабрика, единая точка выбора из 5 адаптеров парсеров
  • • BrightData API — внешний сервис, реально дёргает Google и отдаёт AI Overview блок
  • • Postgres — три таблицы: users (баланс), transactions (платежи), processing_jobs (задачи парсинга)
  • • T-Bank — основной платёжный провайдер (суммы в копейках)
  • • Lava.top — второй провайдер, настраиваемый per-amount через offer ID