Когда я переключился с ВК на телеграм, выбрав последний основным мессенджером, я столкнулся с рядом неудобств: в телеге нет привычной ленты новостей и весь контент надо собирать по каналам. ВК имеет функционал групп (сообщения из которых и собираются в ленту), но меня всегда бесило наличие рекламы явной, рекламных постов и прочего мусора, видеть который я в ленте не хотел.
Одно время, когда ВК начал пихать в ленту свои рекомендации (неотключаемые вообще никак), я пользовался адблоком, альтернативными андроид-клиентами (kate mobile), но все эти полумеры напрягали.
В телеге же, как только количество каналов подросло, очень напрягала необходимость заходить в каждый. И, когда их набралось штук 30, я стал забивать на некоторые, т.к. утомлялся туда-сюда по ним перемещаться.
Плюс, как-то внезапно, много каналов начали спамить крос-сылками с рекламой. И ладно, если это партнерские посты из схожих по тематике каналов. Чаще это были всякие курсы английского, питона, а иногда вообще скам про казино или крипту.
Telegram-ликбез. Урок 8. Избранное
Идея и реализация
Так появилась мысль сделать агрегатор телеграм-каналов с фильтрацией по ключевым словам (которые в рекламных постах достаточно часто попадаются).
Я в курсе про функционал группировки каналов в некоторых клиентах, но по некоторым причинам он мне не подходит:
- группировка работает только на уровне клиента. Т.е. сгруппированные в мобильном приложении каналы не будут сгруппированы в веб-версии или другом клиенте
- нельзя (по крайней мере я не нашел) группировать чаты и каналы
- фильтрация спама и рекламы недоступна
- я собирался экспортировать агрегированный контент в rss (об этом во второй части статьи)
Погуглив существующие инструменты для работы с телегой, я остановился на питоновской библиотеке telethon. Ее ключевой особенностью была возможность работать в режиме клиента, а не бота (об этом ниже, в нюансах).
Что еще капотом:
- telethon как telegram-клиент
- asyncio для асинхронности
- peewee и sqlite3 для хранения инфы кто на что подписался.
Сами посты из подписок не сохраняются, пересылаются на лету
Название придумал быстро: я люблю соединять слова, так что агрегатор телеграма быстро превратился в Телегрегатор.
Нюансы агрегатора
Процесс установки и использования самой библиотеки я не буду расписывать, в доках все достаточно подробно. Остановлюсь на нескольких технических нюансах, которые всплыли в процессе создания Телегрегатора:
- Поскольку меня напрягают висячие непрочитанные сообщения (а так же больше 5-7 вкладок в браузере), я хотел, чтобы агрегатор вместо меня подписывался на каналы и пересылал мне сообщения в специально заведенный для этого чат/канал (я это назвал поток, feed).
- Как следствие из п.1, агрегатор должен был самостоятельно подписываться на каналы (в т.ч. закрытые), вступать в группы и чаты. А это значило, что вариант с ботом не подходил, т.к. он пассивен и его может добавить только участник чата или владелец канала. Здесь и пригодилась возможность telethon’а эмулировать клиент. Т.е. telethon-клиент авторизуется с номером телефона и кодом из смс и эмулирует обычного юзера. Может реагировать на сообщения о наборе текста, заходить в каналы, группы, чаты, пересылать сообщения, и всё это в реалтайме. В общем, полноценный пользователь.
- Как следствие из п.2, возможности бота (кастомные клавиатуры и команды) оказались мне недоступны (или я не нашел, как клиентом это делать). Если знаете как — напишите в комментах. Так что пришлось велосипедить с обработкой пользовательских команд.
- Была идея, что пользователю надо общаться с ботом, а тот уже под капотом передает команды клиенту (подписаться на канал), но это показалось слишком сложным для mvp.
Как попробовать?
Сейчас процесс выглядит так:
Избранное в Телеграм. Как писать самому себе в Telegram и передавать файлы с телефона?
Потоков может быть несколько. Вы можете добавлять для каждого потока фильтры по стопсловам (это пока тестовая функция, так что если вдруг что-то перестало работать — сбросьте фильтры).
Ограничения и планы
Есть несколько ограничений: альбом из фоток, которые пришли в оригинальный канал в одном сообщении, Телегрегатор пересылает отдельными сообщениями. Или репост в поток иногда происходит не мгновенно, а спустя 5-10 секунд. Иногда Телегрегатор падает (рестарт автоматически), и может пропустить какое-то сообщение. Это редко, но случается.
Видимо, это особенности протокола. Если заметите странное поведение — напишите мне.
В планах добавить следующий функционал:
- показать случайный пост из случайного канала
- топ самых популярных каналов (самых редких, как вариант)
- предлагает случайный канал
Я люблю находить годноту в телеге. Порой, в канале всего человек 200, и о нём вообще не узнать, кроме как по рекомендациям друзей.
Сам пользуюсь Телегрегатором где-то полгода, решил поделиться, вдруг кому-то зайдет. Из своего аккаунта я удалил все подписки, теперь ими рулю через потоки, полет нормальный.
Исходный код пока грязный, так что публиковать не стал.
все-так бот или клиент?
Как я уже писал выше, есть альтернативный способ реализации задуманного мной функционала:
Я должен взаимодействовать с ботом, отправляя ему команды о создании потока, после чего он сам создает нужный канал, добавляет туда меня, выставляет нужные права. Дальнейшее управление каналом тоже происходит через бота. Если такая схема выглядит удобнее — дайте знать.
Часть вторая, про RSS
В процессе работы над Телегрегатором появилась мысль экспортировать это все в RSS-ленту. Я многократно встречал статьи, в т.ч. на Хабре, как автор читает вообще всё через rss, собирая его из разных источников. Кто-то пошел дальше: из rss собирает подборку и формирует ежедневную рассылку на почту. Планирую прийти к такому варианту. Если вы имеете такой опыт — отпишитесь, пожалуйста, в комментах, очень интересна ваша реализация.
Генераторов rss из соцсетей много, пару примеров:
- http://feed.exileed.com/
- https://rsshub.app/telegram/channel/temablog
Но у них есть недостатки:
- не умеют читать приватные каналы
- редко обновляют кеш
- не отображают вложения (фото, видео, музыку)
- медленно или нестабильно работают (иногда падают)
Поэтому, вторым очевидным шагом стало создание моста telegram->rss. По факту, это тот же клиент-Телегрегатор, который по имени канала получает последние сообщения из канала (без подписки) и возвращает в виде rss-ленты. В планах сделать подписку на запрашиваемый канал, тогда можно будет получать ленту и из приватных каналов, но пока так. Отпишитесь, если такой функционал востребован. Проверить можно здесь: http://tg2rss.prosto-tak.ru/.
P.S. В «Я пиарюсь» не хватает кармы. Для телеграма вообще нет хаба, странно.
Источник: temofeev.ru
Избранное в Телеграм — как пользоваться.
Избранное в Телеграм — специальная папка, предназначенная для хранения личной информации, которая будет доступна только владельцу аккаунта. Для сохранения данных достаточно войти в одноименную папку или переслать в неё интересующий файл. Ниже подробно рассмотрим, что это за опция, как ей пользоваться, как сохранить и восстановить информацию в случае удаления. Раньше мы рассказывали, как восстановить удаленную переписку в Телеграм.
Что это
Избранное в Телеграм — персональное хранилище для важной информации, которая хранится в специальной папке. Ее можно использовать для хранения интересных постов, заметок, сообщений или комментариев. По сути, папка «Избранное» применяется для переписки с самим собой. Помещённые файлы находятся на сервере Телеграм, поэтому для получения доступа можно зайти в аккаунт на любом устройстве.
Базовые возможности папки «Избранное» в Телеграм:
- Пересылка нужных сообщений.
- Хранение фотографий и видеороликов.
- Вход в чат с любых девайсов.
- Поиск нужного сообщения и т. д.
Кто видит
Много вопросов касается того, кто видит «Избранное» в Телеграмме. Сохранённые файлы доступны только автору приложения, а для остальных пользователей эти сведения закрыты. При этом за владельцем аккаунта сохраняется возможность в любой момент добавить заметку путем отправки самому себе. При этом можно быть уверенным, что запись никуда не пропадет и не потеряется. В любой момент ее можно глянуть, открыв программу в телефоне или на ПК / ноутбуке и авторизовавшись в профиле.
Как пользоваться опцией Телеграм
Теперь рассмотрим, как создать сообщение и отправить его себе самому в папку «Избранное» Телеграм.
На ПК / ноутбуке сделайте следующие шаги:
- Войдите в мессенджер Телеграм.
- Кликните на три полоски слева вверху.
- Жмите на символ флажка напротив лица профиля.
- Напишите себе сообщение или прикрепите какие-либо данные.
На смартфоне можно сделать эту работу по-иному алгоритму:
- Зайдите в Телеграмм.
- Жмите на три полоски слева вверху.
- Кликните на пункт «Избранное».
- Отправьте нужное сообщение или файл.
Зная, как в Телеграмме добавить сообщение в «Избранное», вы всегда сможете сохранить важную информацию в своём аккаунте и получить к ней доступ в любое удобное время. Если у вас Айфон, можно использовать тот же алгоритм. Разница в том, что сначала нужно нажать на символ шестерёнки справа внизу.
По желанию можно в любой момент переслать интересующий файл без входа в избранное.
На ПК / ноутбуке сделайте следующее:
- Жмите правой кнопкой мышки на интересующий контент в Телеграм.
- Выберите пункт «Переслать…» .
- Найдите интересующую папку в списке или используйте строку поиска.
- Выберите папку и завершите процесс копирования.
На смартфоне нужно пройти следующие шаги:
- Найдите нужный контент, который хотите переслать.
- Нажмите на него пальцем и удерживайте.
- Кликните на стрелку справа вверху.
- Выберите папку «Избранное» и завершите сохранение.
После выполнения рассмотренных шагов данные остаются в специальной папке Телеграм до удаления пользователем.
Как скрыть
Один из распространённых вопросов — как скрыть «Избранное» в Телеграмме, чтобы избежать кражи конфиденциальных данных. Такой опции не предусмотрено, ведь информация итак скрыта для посторонних. Доступ к ней имеет только владелец аккаунта. При этом данные шифруются и хранятся на серверах системы.
К слову, сделать переписку секретной также не получится, ведь в ней задействован только один участник. Зато в Телеграме есть много других настроек приватности. Например, вы можете скрыть последнее время посещения.
Как восстановить
Следующий вопрос — можно ли восстановить «Избранное» в случае его удаления из Телеграм. В отличие от ПК / ноутбуков здесь не предусмотрено корзины, в которую попадают разные файлы после удаления. Вот почему при случайном или намеренном удалении восстановление невозможно.
С другой стороны, если данные не были удалены, к ним легко получить доступ даже в случае кражи мобильного устройства. Достаточно будет зайти в свой профиль с любого другого девайса. После авторизации будут видны все файлы.
Теперь вы знаете, что такое «Избранное» в Телеграм, какие возможности предоставляет эта папка, и как с ней правильно работать. Ее особенность в том, что информация доступна только владельцу профиля и полностью скрыта от посторонних.
В комментариях расскажите, пользовались ли вы такой опцией раньше, о каких еще возможностях стоит знать пользователям.
Источник: telegramzy.ru