Pull to refresh
Comments 18
Есть возможность оперативно собирать посты с множества каналов? Каково время между постингом в канале и его переплатили к себе? Можно ли старые посты выкачивать как историю?
Все в ваших руках — код выше можно натравить на несколько каналов сразу. Скорость операций зависит исключительно от Telegram и вашего соединения
Делал похожий инструмент, тоже на PHP, назвал его Crawley. Он ловит вызовы от серверов Telegram с постами от каналов. Только он, в отличие от описанного в статье, собирает посты из канала в локальную базу данных и позволяет выводить содержимое каналов на сайтах, да ещё и RSS-фид генерирует. В итоге достаточно вести канал в Телеграме, а на сайте они уже автоматически будут отображены, вне зависимости от доступности канала.
Пробовал данную библиотеку. И вот отказался от нее в пользу библиотек на питоне.Крайне нестабильная библиотек, имхо. Основная проблема — сессии переставали восстанавливаться из файла. И очень долгий и нестабильный коннект. Примеры по приему сообщений тоже не хотели работать. В общем, одно разочарование, имхо

А что посоветуете на питоне? Помимо telebot (он только для ботов)

Я использовал telethon. Очень понравилась: шустро работает, никаких сбоев, функциональна.
У меня опыт был положительный с этой библиотекой. Хотя порог входа — высокий. Два дня потратил. Цель была разработать фреймворк для создания тестовых сценариев для ботов. Чтобы кнопки мог нажимать от имени другого пользователя, вывод ловить (реакцию бота) и т.п. Еще немного усилий и фреймворк был готов.

Своеобразная логика устройства MadelineProto с лихвой компенсируется подробной документацией и каналом поддержки @pwrtelegramgroup. Там очень дружелюбное сообщество. Много русскоязычного населения.

Меня приятно удивило стремление автора (Daniil Gentili — итальянец) пропагандировать свой продукт, помогая любому страждущему, появившемуся на канале. Но еще больше я поразился, когда узнал, что он знает русский язык. Задаешь ему вопрос по русски, он отвечает тебе… Правда по английски.

Хороший, на мой взгляд, продукт. Автор — талантливый и дружелюбный человек.
Я прекратил использование из-за проблем с восстановлением сессии. Делал по примерам -генерируем файл сессии, а другим скриптом используем его, и скажем отправляем себе сообщения. При восстановлении в логах писалось что его редиректит туда сюда, сбои подключения и т.д. Некоторые методы повреждали сессионный файл. По этому провоевав с этим некоторое время, и замучившись восстанавливать сессионные файлы и была опробована питон библиотека. С ней — ни разу не возникло подобных проблем. Посему, мой опыт использования библиотеки крайне печальный
Абсолютно согласен с Вами в том, что устройство любой библиотеки отражает взгляд автора на программирование. Иногда взгляд автора отличается от твоего собственного и ты думаешь: «Что же им двигало, когда он это все выдумывал...».

Здесь происходит одно из двух. Либо ты перестаешь пытаться и уходишь на другую технологию (и это Ваш случай) либо что-то тебе помогает… В моем случае это был канал @pwrtelegramgroup.

Задав три вопроса на русском языке и получив три ответа (в течении 30 минут), я оценил что все мои трудности были вызваны тем, что мне были в новинку те подходы, которые применялись при проектировании пакета.

Вопрос к сессиям у меня тоже был (если я все верно помню он был связан с необычным интерфейсом инициализации), но я как-то быстро преодолел конкретно эту невзгоду.

По итогу всего, задачу я свою решил на этой технологии сильно быстрее чем ожидал и даже был соблазн уйти с традиционного для меня пакета по производству ботов, но что-то меня удержало.

Считаю себя больше обогатившимся, чем потерявшим время от использования библиотеки. Хотя была возможность попрактиковаться в Python, если бы не этот канал…
Библиотека ужасна, автор зазнайка 80 уровня, приличного контента в телеграмме нет, один копипаст или дублирование веба за очень редким исключением.
Юзал несколько раз Madeline, вся боль начинается, когда тебе нужен не только текст, но и картинки и другие аттачи. Самый правильный выход — делать форвард сообщения. И вот если ты форвардишь его в личку или в группу — то там одна команда, а если на канал (канал != группа), то другая. Очень долго ломал голову над этим.
Также интересно узнать у хабравчан что есть подобное на других ЯП?

Оффициальный github.com/tdlib/td из коробки может в с/c++/java/c# и любой другой язык где можно подцепить динамическую библиотеку
Рабочая обертка под node github.com/Bannerets/tdl
Несколько оберток под go
github.com/Arman92/go-tdlib
github.com/zelenin/go-tdlib
github.com/L11R/go-tdjson
Под rust
crates.io/search?q=%20tdlib
Еще кучу всего можно тут github.com/topics/tdlib найти
Ну вот будет в php поддержка FFI — можно будет ее заюзать.
Существенный минус библиотеки — ей требуется 8+ ГБ оперативки для сборки через gcc и примерно 4 через clang и msvc.
Не на каждом vps пересобрать получиться. А с учетом, что оно зависит от версий системных библиотек, то залить готовый бинарник не всегда выйдет.
ей требуется 8+ ГБ оперативки для сборки

Так это же сборка, причем тут сама библиотека. Собирайте на CI, дистрибьютте итоговый бинарник.


А с учетом, что оно зависит от версий системных библиотек

докер, ансиблы и прочие штуки которые позволят вам иметь одинаковое окружение

Недавно тоже работал с этой библиотекой. Пришел к выводу что проще взять github.com/tdlib/td и попробовать прикрутить через FFI для PHP github.com/dstogov/php-ffi
Спасибо за статью, автору респект. Может кому-то пригодится — мне почему-то не сразу удалось найти как получить последнее сообщение методом getHistory(). Оказалось, нужно просто передать 0 во всех аргументах, кроме 'peer' и 'limit'.
Only those users with full accounts are able to leave comments. Log in, please.