Проект: Телеграм бот на базе Goodreads API  Публичный пост
26 мая 2020     403   
Телеграм бот на базе Goodreads API

Я очень люблю читать 📚, го в друзья на goodreads.
И пользовался приложением goodreads. Но оно всегда казалось неудобным, да и слегка тормозное.
В какой-то момент узнал, что у них есть API, после чего задумался на тем, как бы изобрести своего бота для TG, чтобы упростить работу с сервисом, да и убрать нужду в лишнем приложении.

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

В короткий срок сделал набросок бота на Python, на основе либы python-telegram-bot, и собственной обертки над целевым API. В роли БД используется postgresql.
Бот умеет искать книги через ваш аккаунт в гудридс(требуется авторизация), и позволяет добавлять книги на полки, и также двигать их в процессе чтения.

Ищу идеи для продолжения разработки, из собственных идей, добавить в бота статистику по Goodreads Reading Challenge, а также набросать тесты и подключить линтер.

Бот хостится на моем серваке в Digital Ocean(5$), запущен без каких-либо заморочек в виде systemctl сервиса, в планах замутить нормальный CI/CD, и не доставлять код на сервер ручками)
Доступен https://t.me/BooksLoverBot вот тут.
Все исходники на гитхабе, можно поднять собственную копию.
Все завернуто в докер, ради удобства запуска и разработки.

Проект не приносит денег, и пользуется им в основном несколько ребят из моих близких знакомых.

Буду рад, если кому-то разработка принесет пользу :)

upd: Теперь бот умеет в inline mode 🔍!

Поиск
Поиск

При нажатии на кнопку бот отправит в лс информацию о книге, с возможностью добавить её на полку
При нажатии на кнопку бот отправит в лс информацию о книге, с возможностью добавить её на полку

Связанные посты
11 комментариев 👇
Egor Biriukov, Engware Softineer 26 мая 2020

О, кайф. Может его можно использовать в https://t.me/vas3k_books?
Было бы удобно иметь возможность давать ссылки на GR с возможностью из ТГ добавлять их в свой To Read.

  Развернуть 1 комментарий

Можем попробовать, но я не уверен, что он будет правильно работать в групповом чате, так как затачивался под личное использование :)
В любом случае, можно будет доработать!

  Развернуть 1 комментарий

Запилил для бота инлайн мод, дополнил статью скринами с примером работы :)
Если есть желание, можно потестить в группе

  Развернуть 1 комментарий
Alexander Mospan, фронтендер 26 мая 2020

Отличный бот, меня тоже всегда бесил медленный загромождённый сайт и приложение. Только можно кнопки полок разнести на разные строки? А то сейчас чтобы надписи не обрезались, нужно телеграм разворачивать на полный экран:

скрин на десктопе
скрин на телефоне

  Развернуть 1 комментарий

Спасибо за отзыв, запишу в бэклог поиграться с кнопками

  Развернуть 1 комментарий

Такая разметка и правда лучше. Закоммитил вертикальную разметку)
Если есть ещё какие-то мысли, лучше написать в issue в проекте)

  Развернуть 1 комментарий
Вастрик, Блогер, питонист, мизантроп 26 мая 2020

Привет. А можешь чуть поподробнее рассказать о проекте изнутри? На чем собран/написан? Где хостится? Сколько платишь/зарабатываешь?

Сейчас пост выглядит как реклама, потому я вынужден перенести его в черновики на доработку.

  Развернуть 1 комментарий

Done

  Развернуть 1 комментарий
Arthur Tazhitdinov, бэкенд-программист 26 мая 2020

Ссылка на твой профиль в Гудридс кривая, кажется (и ссылка на бота тоже :)

  Развернуть 1 комментарий

Спасибо, пофиксил

Обнаружил багу, что если в markdown ссылке текстом указать ник с собачкой, то ссылка автоматически будет вести на профиль в клубе, а не туда, куда ты её указал.

  Развернуть 1 комментарий
Богдан Стефанюк, Full-Stack developer (.NET) 26 мая 2020

Круто! Я вот сам недавно задумал сделать сайтик-обертку для goodreads, так как их веб приложение не самое быстрое)). И добавить возможностью делать заметки по книгам и экспортом их из читалок.

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб