API телеграма и баны
Чтобы публиковать посты в канал, я почти сразу написал скриптик, чтобы решить проблемы с markdown (например, до сих пор в телеге markdown не поддерживает ссылки). Скрипт использовал Telethon, который подключается с использованием моего аккаунта.
Перед новым годом телеграм решил мне выдать бан — разлогинил со всех устройств и долго (больше часа) не давал попасть в аккаунт. Хотя я делал сколько, 10 запросов в неделю? К счастью, помогла переустановка клиента. Было достаточно стрессово: с некоторыми людьми прямая связь только в телеге.
Ладно, давайте попробуем сделать все “правильно”: создаем бота, добавляем его в админы канала, используем python-telegram-bot… и обнаруживаем, что в API ботов нет возможности делать отложенные сообщения -_-.
У Telethon есть аналоги — Pyrogram и MadelineProto. На беглый взгляд при их использовании будет та же проблема с банами. Один раз попал в черный список — и привет:)
Я дошел даже до того, чтобы посмотреть на альтернативные клиенты для веба — A и K. В одном та же проблема с разметкой, а вот второй вроде смог распарсить ссылку, но блоки с кодом поломал: было смещение на 1 символ. Код открыт — отлично, можно сделать PR с исправлением и делать отложки вручную! Вот только в исходниках ноль тестов на парсинг разметки… Ладно, видимо не вариант.
Попробовал пару “советов” по Telethon — перебор диалогов, sleep
понаставить, какие-то хаки с system_version
— не помогло. В итоге решил-таки попробовать pyrogram (терять особо нечего) — и все заработало :/ Парсит markdown он хуже (у него вообще своя версия), но хотя бы работает.
Вообще когда телега стартовала, казалось, что это глоток свежего воздуха и очень переспективная платформа. А сейчас смотришь — баги не фиксятся годами, вроде богатое API, но что-то просто сделать не можешь, да еще и баны на ровном месте…