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

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

Новый Telegram бот для электронных книг Telegram бот, Программирование, Golang, Postgresql, Книги, Длиннопост

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

Новый Telegram бот для электронных книг Telegram бот, Программирование, Golang, Postgresql, Книги, Длиннопост

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