Начало
Всем привет я Альберт и я хочу всегда все улучшить.
В 2014 переехав в Питер, я решил начать развиваться, и решил начать читать статьи в интернете.
Тут будет увлекательная история создания телеграм бота читалки статей который:
установили 40 тыс раз
уже обработал более 3 млн страниц
без рекламы, мам, пап, смс и регистрации
Сразу появлились проблемы с этим:
- статьи появлялись быстрее чем я успевал читать
- читать в телефоне не удобно
- нужен постоянный интернет
- браузер не запоминал где я остановился читать
- не было списка “почитать позже” куда я мог бы положить статью
Я подумал, что было бы круто решить эти проблемы и я начал гуглить.
Приложение под андроид
2016 год
Я нашел опенсорс проект, вот ссылка https://github.com/JonasCz/save-for-offline, где автор создал приложение где вы можете указать ссылку на статью и вся страница будет загружена на телефон
Круто? Да.
Но были проблемы:
- верстка съезжала
- картинки не всегда грузились
- Не всегда загружались страницы
Я даже внес свой вклад.
Добавил фичу, исправил утечку памяти. Мой код тут https://github.com/JonasCz/save-for-offline/commit/5029491f7cdf5b8e08937d4f3b325f80f90ede90
Телеграм запустил фичу InstantView
Телеграм запустил фичу сохранения и удобного чтения статей из интернета, но вначале это работало плохо:
- нужно было создавать шаблоны для каждого сайта
- не все сайты поддерживались
- кажется большие статьи не поддерживались
В итоге получается удобный формат в телеге для чтения InstantView, запомним этот формат, теперь тут будет речь про этот формат.
InstantView - это наиболее комфортное чтение статей в любимом месседжере, я думаю про лайфхак вы знаете, создаете группу для себя и вот у вас готов список статей на будущее чтение.
Бот читалка в телеграм
Нашел бота (https://t.me/chotamreaderbot) который парсит страницу и превращает ее в InstantView, тогда для меня показалось что там нехватает возможностей и есть проблемы:
- код закрыт и написан на python
- не поддерживал большие статьи
- не поддерживал динамические страницы
- изначально был на аудиторию русскоязычных стран
И я решил написать своего бота и решить все эти проблемы и добавить самую главную - автоматическая работа - это значит что все сайты он должен обрабатывать одинаково без шаблонов всяких
В конце 2019 я запилил его за 2 недели. В отпуске (ну а когда же еще)
Бесплатный сайт для запуска бота
Денег не было, все делалось на амбициях.
Я нагуглил бесплатный сервис базы данных и веб сайт где можно запустить своего бота.
С базой данных все было окей Free MongoDB Cloud, кстати этот сервис тоже ушел из РФ. Теперь все платно, никаких вам стартапов.
А вот с сайтом были некоторые проблемы. Нужно было периодичеспи “будить” сервер так как из за простоя он отключался.
Я нашел сайт который периодически будит его.
Позже этот сайт ввел платную подписку чтобы сервера постоянно работали, пришлось платить 10 баксов в месяц.
Рост нагрузки
Тратил деньги только на сервер, никакой рекламы. Бот начал набирать обороты. О его полезности никто не спорит. Люди начали передавать друг другу ссылу на бота и читать статьи. Началась большая нагрузка и сервер уже не мог справиться, слишком часто начал падать.
Сервер падал потому что в один момент ему отправляли слишком много и он не успевал обрабатывать сообщения.
Я снова пошел в гугл и нашел бесплатный сервис очереди сообщений cloudamqp. Это как раз то что мне нужно.
Добавил очередь, и теперь бот обрабатывает по 1 сообщению из очереди. В итоге все пользователи ждут, но дождутся обработки и InstantView
Моэно выдохнуть и расслабиться.
Бесплатный сервер от Oracle
Компания oracle запустила для всего мира бесплатный вечный сервер для всяких экспериментов, микростартапов.
Я конечно же переехал туда и все. Бот требовал минимум правок, только баги периодически появлялись.
Сервис ушел из РФ в 2022. Теперь в РФ все платно и дорого, никаких вам стартапов
Код открыт - https://github.com/albertincx/formatbot1
Сам бот находится по адресу https://t.me/CorsaBot
Если вам нужна реклама в боте - обращайтесь https://t.me/safiullin