isqad

isqad

На Пикабу
706 рейтинг 8 подписчиков 1 подписка 3 поста 1 в горячем
Награды:
5 лет на Пикабу
16

Телеграм бот для электронных книг:  итоги первой недели

Всем привет! Это снова я со своим ботом https://t.me/boookovka_bot (@boookovka_bot).

Спасибо всем первым пользователям, я нашел кучу ошибок и в первый день после анонса на pikabu.ru, сидел и правил. Основная бага была, что память бота безбожно текла, где-то горутина (да-да приложение на golang) оставалась "висеть", где ссылка висячая оставалась на структуру, в общем поправил и добавил аллокатор jemalloc.
На следующее утро я пришёл на работу и почуял неладное. Интернет работал с перебоями и в середине дня ко мне пришел админ с жалобой, что я забивал всю сеть udp пакетами.
-- Приехали --, взгруснулось мне, по базе сотня недоставленных книг, при включении сервиса скачивания интернет в офисе падает. В общем беда. Переписал сервис скачивания, выкинул лишнее, оставил только один запущенный торрент клиент в сервисе. Запускаю - инет падает.

Сдался в итоге, и вечером покупаю VPS в Нидерландах. Взял с одним ядром cpu, 1Gb оперативки и 20Gb SSD. "На наш век хватит", думал я. Поздно вечером выкатываю бота на хостинг, и все держится неплохо. Пару недокаченных книг запускаю на скачивание, и они успешно и быстро отдались клиентам. На следующеее утро собрал все "недокачки" и раздал клиентам. Весь день и  дальше бот работал без перебоев. Стабильность восстановлена и дальше буду дополнять различными фичами.. 😊

Немного по статистике за примерно три дня стабильной работы бота для тех, кто любит цифры:
- 2870 пользователей телеграм открывали бота и смотрели, что-то искали
- 1142 успешно отданных книг (закачек)
- 24Gb книг выкачено и роздано

TOP10 самых популярных книг:
1) Лукьяненко Сергей  Кваzи / Квази
2) Джастин Сейтц  Gray Hat Python / Python глазами хакера
3) Юваль Ноах Харари Краткая история человечества
4) Платт Ч.  Электроника для начинающих
5) Книжная серия «Весь Сергей Лукьяненко»(10 книг)
6) Шолле Ф. - Глубокое обучение на Python
7) Р.А. Бирбраер, И.Г. Альтшулер - Основы инженерного консалтинга
8) Грегори Дэвид Робертс  Шантарам
9) Сворень Р.А. - Электроника шаг за шагом
10) Десятое место разделили книги:
Пелевин Виктор - Собрание произведений
Гоголь Н.В. - Мертвые души

Показать полностью
689

Новый Telegram бот для электронных книг

Вашему вниманию хотел бы представить своего бота для поиска и скачивания электронных книг в Телеграм https://t.me/boookovka_bot .
На написание своего бота меня побудила потребность быстрого поиска различной технической литературы. Я сам работаю программистом в одной из Екатеринбургских компаний, увлекаюсь машинным обучением, немного электроникой и конечно, люблю читать художественную литературу. Вначале нашел бота Флибуста, неплохой бот, достаточно много популярных книг, но почти нет книг по IT тематике. Такие книги я ищу на рутрекере, и выкачиваю торрентом. Это хорошо, когда ты работаешь с компьютера или ноутбука. Но часто я еду в дороге и смотрю лекции, где рекомендуют ту или иную книгу. Хотелось бы сразу найти ее и посмотреть содежание, предисловие. А так как я любитель Телеграм из-за его удобства и возможностей создания своих ботов для автоматизации повседневных задач, то решил почему бы не склепать робота, который содержит пополняемую базу книг, интересных мне тем, и который быстро бы смог найти и скачать необходимую книгу?
Сказано -- сделано, я начал с парсера для рутрекера, по пути изучая python либу scrapy. Наполнив базу magnet-линками, я принялся писать бота, который выполнял бы хотя бы функцию поиска.

На реализацию поиска ушло примерно полдня, я воспользовался обычным полнотекстовым поиском в postgresql. Далее, я на неделю ушёл в свою постоянную работу, попутно в фоне обдумывая план, как выкачивать книги. Идея оказалась примитивна. Обычно тяжелые долгие задачи нужно прятать в "фон", то есть когда боту приходит команда "скачай книгу X", бот ставит задание в очередь задач, откуда ее забирает фоновый процесс, и начинает выполнять задание. Так же и у меня, единственноая проблема была - как оповестить бота и клиента, что книга скачалась?
На этот счет у меня была уже своя реализация шины событий, тем более и брокер у меня уже был для фоновых задач rabbitmq. Теперь когда фоновый процесс скачает файл, он отправляет в шину событие в виде json-сообщения о том, что скачал и кто просил скачать, в свою очередь тот, кто подписан на события шины сообщений, а пока это только бот, парсит сообщение из шины и отдает файл клиенту.

На этом всё. Дальнейшие планы по развитию бота это введение "прогресс-бара", то есть следить за скачиванием файла и по шине событий слать данные, сколько скачалось уже. Также не реализовал постраничную навигацию. Ну и самая неприятная проблема -- РКН, они заблокировали api телеграмма, при этом в реестре я не нашёл записей api.telegram.org и его ip. Поэтому сейчас пока что приходится подключать бота через https прокси.
Еще одна проблема, это то, что телеграм накладывает ограничение на скачиваемый файл : не более 50Мб можно скачать. Об этом пока следует помнить, но я скоро все поправлю) Кардинально решится проблема сайтом - веб-мордочкой. Так что заранее прошу извинить за неудобства) Есть также планы делать оптимизацию и конвертацию в "легкие" форматы "налету".
Бот бесплатный и без навящивой рекламы, в основном делал для себя, но делюсь с миром, чтобы не простаивал зря. Спасибо за внимание.

Показать полностью 2
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества