Как я создавал бота для телеграм InstantViewBot

Как я создавал бота для телеграм InstantViewBot

https://safiullin.io/2024/03/31/ru/kak-ya-sozdaval-bota-dlya-telegram-InstantViewBot/

Всем привет я Альберт и я хочу всегда все улучшить.
В 2014 переехав в Питер, я решил начать развиваться, и решил начать читать статьи в интернете.


Тут будет увлекательная история создания телеграм бота читалки статей который:


установили 40 тыс раз
уже обработал более 3 млн страниц
без рекламы, мам, пап, смс и регистрации



Сразу появлились проблемы с этим:



  • статьи появлялись быстрее чем я успевал читать

  • читать в телефоне не удобно

  • нужен постоянный интернет

  • браузер не запоминал где я остановился читать

  • не было списка “почитать позже” куда я мог бы положить статью


Я подумал, что было бы круто решить эти проблемы и я начал гуглить.


Приложение под андроид

2016 год


Я нашел опенсорс проект, вот ссылка https://github.com/JonasCz/save-for-offline, где автор создал приложение где вы можете указать ссылку на статью и вся страница будет загружена на телефон
Круто? Да.


Но были проблемы:



  • верстка съезжала

  • картинки не всегда грузились

  • Не всегда загружались страницы


Я даже внес свой вклад.
Добавил фичу, исправил утечку памяти. Мой код тут https://github.com/JonasCz/save-for-offline/commit/5029491f7cdf5b8e08937d4f3b325f80f90ede90


Телеграм запустил фичу InstantView

Телеграм запустил фичу сохранения и удобного чтения статей из интернета, но вначале это работало плохо:



  • нужно было создавать шаблоны для каждого сайта

  • не все сайты поддерживались

  • кажется большие статьи не поддерживались


В итоге получается удобный формат в телеге для чтения InstantView, запомним этот формат, теперь тут будет речь про этот формат. Потому что это наиболее комфортное чтение статей в любимом браузере, я думаю про лайфхак вы знаете, создаете группу для себя и вот у вас готов список статей на будущее чтение.


Бот читалка в телеграм

Нашел бота (https://t.me/chotamreaderbot) который парсит страницу и превращает ее в InstantView, тогда для меня показалось что там нехватает возможностей и есть проблемы:



  • код закрыт и написан на python

  • не поддерживал большие статьи

  • не поддерживал динамические страницы

  • изначально был на аудиторию русскоязычных стран


И я решил написать своего бота и решить все эти проблемы и добавить самую главную - автоматическая работа - это значит что все сайты он должен обрабатывать одинаково без шаблонов всяких
В конце 2019 я запилил его за 2 недели. В отпуске (ну а когда же еще)


Бесплатный сайт для запуска бота

Денег не было, все делалось на амбициях.


Я нагуглил бесплатный сервис базы данных и веб сайт где можно запустить своего бота.


С базой данных все было окей Free MongoDB Cloud, кстати этот сервис тоже ушел из РФ. Теперь все платно, никаких вам стартапов.


А вот с сайтом были некоторые проблемы. Нужно было периодичеспи “будить” сервер так как из за простоя он отключался.


Я нашел сайт который периодически будит его.


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


Рост нагрузки

Тратил деньги только на сервер, никакой рекламы. Бот начал набирать обороты. О его полезности никто не спорит. Люди начали передавать друг другу ссылу на бота и читать статьи. Началась большая нагрузка и сервер уже не мог справиться, слишком часто начал падать.


Сервер падал потому что в один момент ему отправляли слишком много и он не успевал обрабатывать сообщения.


Я снова пошел в гугл и нашел бесплатный сервис очереди сообщений cloudamqp. Это как раз то что мне нужно.


Добавил очередь, и теперь бот обрабатывает по 1 сообщению из очереди. В итоге все пользователи ждут, но дождутся обработки и InstantView
Моэно выдохнуть и расслабиться.


Бесплатный сервер от Oracle

Компания oracle запустила для всего мира бесплатный вечный сервер для всяких экспериментов, микростартапов.


Я конечно же переехал туда и все. Бот требовал минимум правок, только баги периодически появлялись.


Сервис ушел из РФ в 2022. Теперь в РФ все платно и дорого, никаких вам стартапов


Если вам нужна реклама в боте - обращайтесь https://t.me/safiullin

Report Page