Releases: k0te1ch/PodBoxBot
Releases · k0te1ch/PodBoxBot
v0.5.1
v0.5.0
v0.4.1
v0.4.0
v0.3.3
v0.3.2
v0.3.1
v0.3.0
0.3.0 (28.05.2026)
Добавлено
- WordPress publisher теперь использует Podlove REST API (Application Password) для заполнения метаданных эпизода и chapters — title/summary/number/slug/duration/chapters наконец-то долетают до плеера
- Авто-решение JS-only bot-protection challenge (cookie
bpc) на WP-сайтах за WAF — сессия больше не зацикливается на странице-перехватчике - Persistence шаблона эпизода в sidecar-JSON рядом с MP3 — кнопки «FTP», «Сайт», «Переслать в чат» снова работают (Telegram не присылает
reply_to_messageв callback-апдейтах для audio) utils/bootstrap.sh— первичный деплой на чистый prod-сервер: backup volumes, поэтапный up с health-ожиданием, верификация Kafka-топиков и Avro-схем, smoke pub/subdocker-compose.direct.yml— режим без tun2socks для хостов с прямым доступом к Telegram DC- Полноценный README с описанием проекта, потока данных и деплой-инструкцией
- e2e-тест на базе tgtest для прогона полной цепочки публикации против живого бота
- Обязательный новый ключ конфигурации
WP_APP_PASSWORD(Application Password из WP Admin → Users → Profile)
Улучшено
shared/configлишился легаси-обёрткиSharedSettings.get()— все потребители теперь используют атрибутный доступ; добавлены явные поляRESULT_TOPIC/WP_RESULT_TOPIC/WP_APP_PASSWORD- Клавиатуры (
admin.py,podcast_handler.py) свелись к единому стилюru/ennamespaces — без кэш-словарей и дублирующихся геттеров redis-синглтон ре-экспортируется изservices/redis.pyвместо in-place реассайна —from services import redisтеперь возвращает один и тот же объект во всех импортёрах- WordPress publisher оборачивает все HTTP-вызовы form-флоу в timeout + exponential backoff retry; в логах появилось содержимое тел ответов при ошибках
- Bot Dockerfile теперь строится только до stage
final— больше не натыкаемся наpoetry install --with devи сломанный poetry↔dulwich - Schema Registry health-чек переехал на
cub sr-readyсstart_period: 60s— не флапает на медленном холодном старте REDIS_URLсобирается вbot/config.pyизREDIS_PASSWORDс URL-encoding пароля — спецсимволы (@,:,/, и т.п.) больше не ломают подключениеdocker-compose.ymlдополнительно прокидываетTELEGRAM_VERBOSITY=3для telegram-bot-api
Исправлено
- WordPress
_loginпереписан под WP 6.x:allow_redirects=False, проверка 302+wordpress_logged_in_*, парсинг<div id="login_error">для диагностики; убрана сломанная heuristicdocument.location.href="http://...wp-admin" _check_sessionбольше не скрапит HTML, а проверяет статус-код через/wp-admin/сallow_redirects=Falsei18n: многострочные FTL-значения в объектах больше не поглощают следующий атрибут с.key = ...i18n:_LangWrapper.__getitem__корректно поднимается по фреймам —context[lang].section.fieldтеперь видит реальные locals вызывающего вместо обёртки- Анимация точек в
monitor_file_progressидёт черезitertools.cycleвместо одноразовогоiter— больше не замирает после 4 тиков on_startupбота изолирует падениеsend_release_noteтак, чтобы регистрация Kafka-консьюмеров (FTP/WordPress result-топики) всё равно выполнялась — устранена «kafka работает в одну сторону»- Отсутствие
CHANGELOG.mdбольше не валит запуск бота —get_release_noteвозвращаетNoneс warning'ом - При провале загрузки MP3 в
get_MP3бот теперь пишет в чат «MP3 не загружен» вместо тихого ожидания шаблона;check_exists_file_by_sizeвозвращаетNoneвместоNotADirectoryError check_versionкорректно реагирует на не-настроенный Redis — бот работает сMemoryStorageбез CRITICAL-логов