Проект: Телеграм-бот для создания пдфок  Публичный пост
20 июля 2020     1212   
Телеграм-бот для создания пдфок

Телеграм-бот, который поможет сохранить статью как pdf-файл. Кидаешь ссылку — получаешь читабельную пдфку.

Идея

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

До пандемии я часто ездил в родную деревню, где нет интернета и очень плохо ловит сотовая связь. После того, как вскопаешь огород, почистишь навоз и поставишь чёртовых гусей на место, хочется сесть на крылечко, налить парного молока и почитать статью Пола Грэма, которая ждёт тебя в очереди вкладок в браузере. И тут-то моя проблема и возникает. В какой-то момент мне надоело бегать по огороду, ловя связь с поднятой рукой, и решил я сделать бота.

Главное требование для бота — простота. Кинул ссылку — получил пдф. Без каких-либо команд и прочего.

Делаем

Прототип был сделан за несколько вечеров. Большая часть времени была потрачена на выбор феймворка и дома для бота. Я хотел обойтись без базы данных и чтобы бот работал на лямбде с помощью вебхуков. Прототип делал то, что хотел — генерировал пдф из ссылки. Дальше надо было заставить его делать читабельную пдф, то есть оставлять только текст и изображения.

В качестве сервера я выбрал Vercel (Zeit), потому что бесплатно, удобно и есть серверлесс функции. Подключил GitHub — автоматически получил CI.
Сам бот сделан с помощью Telegraf.js, потому что первая ссылка в гугле.
В читабельный вид статью приводит библиотека, которая отвечает за режим чтения в Firefox. А сама пдф сохраняется с помощью Chrome.

В итоге бот делал всё как я хотел. Накидал ссылок, получил пдфки, сохранил на смартфон и поехал в деревню пасти гусей.

Единственная оставшаяся проблема — он не могёт в тяжёлые статьи, потому что у Vercel ограничения в 10 секунд на исполнение функций.

Индийцы

Всё было хорошо, пока не пришли они.





Мне начали писать в личку и просить добавить поддержку хинди и телугу, и ещё расширить функционал.

Шрифты я с радостью добавил. Но менять и расширяться не стал. Бот делает одну вещь и делает хорошо. Индийцы, извините.

После этого я добавил простое логирование, и в течение недели записывал ссылки в Airtable, чтобы понять как используют бота.

Большинство ссылок было на индийских языках связанных с учёбой и образованием.
Некоторые хитрили и сохраняли твиттер-треды с threadreaderapp.com. Изредка встречались ссылки на испанские эротические рассказы. Сейчас логирую только удачные и неудачные попытки получить пдф.

Бот работает около трёх месяцев. В среднем каждый день генерирует около десяти пдф от 8-10 уникальных пользователей.

Траты и планы

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

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

Монетизировать бота не было в планах. Не представляю, как можно это делать с таким специфичным ботом. Личная веб-морда по подписке?

Но индийскую любовь я уже заслужил.

Нужны ли какие-то советы или помощь Клуба?

Любые советы!

Связанные посты
20 комментариев 👇
Siarhei Krukau, Бэкендщик 20 июля 2020

Монетизировать бота не было в планах. Не представляю, как можно это делать с таким специфичным ботом.

Монетизировать можно лимитами на размер PDF или число конвертаций в день.

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

Прислединяюсь.

Или же в комбинации с идеей от Вастрика: минималистическая веб-морда со ссылками на донат-адреса (патреон, пейпэл и другие).

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

Не знаю, что тут можно прибавить-убавить, просто круто :) Отличная работа!

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

Крутой бот! С индусов в голос посмеялся :D

  Развернуть 1 комментарий
Alena Valchkova, junior python developer 20 июля 2020

Спасибо за бота! Как раз хотела найти что-нибудь подобное. Работает хорошо, получаются читабельные pdf-ки.

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

А откуда про бота узнали любвеобильные индийцы?

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

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

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

А где ссылка на бот? на скрине только увидел
UPD. Увидел, не знал что заголовок это и есть ссылка на бота

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

Заголовок поста — это ссылка на проект.
Вот https://t.me/html_to_pdf_bot
Да, думаю, надо добавить явную ссылку в пост.

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

@baradusov, спасибо. Надо подумать о решении больших статьях

  Развернуть 1 комментарий
Volodymyr Brodskyi, автоматизацией 27 июля 2020

Спасибо! интересная идея, интересная реализация

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

Сейчас логирую только удачные и неудачные попытки получить пдф.

А бывают ещё какие-то?

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

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

  Развернуть 1 комментарий
Oleg Zakharchenko, Работаю в кафе 27 июля 2020

Отличный проект.
Я только начал изучать питон и мне не хватает какого-нибудь похожего реализованного бота, на основании которого я мог бы сделать что-то похожее или скопировать в качестве упражнения. В идеале, ютуб урок с объяснениями как-что печатается и зачем. Даже был бы готов за это заплатить...

  Развернуть 1 комментарий
Марина Коняева, Думаю, что дальше 27 июля 2020

Прелесть какая про индийцев) Клевый проект!

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

Спасибо автору за отличную работу.
Подписался и пользую бота.

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

И в развитие проекта или скорее создание нового проекта скажу два слова.
Пасти гусей дело ответственное, это вам не верстать.
ПДФ-ки это хорошо, но когда едешь за рулем, то слушать безопаснее, и точно приятнее, чем читать. Извиняюсь за длинную подводку.
Вот бы нам такого бота, а может и не бота, чтобы можно было послушать статейки и Вастрика шутейки. Обожаю его шутейки.

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

В продолжении темы "послушать" - создал вопрос про TTS сервис в разделе вопросы. И что? Ни одного ответа. Либо ответ очевиден и всем влом писать, либо очевидного ответа нет.

  Развернуть 1 комментарий
Maximus, Электрический инженер 14 августа 2020

Кстати, бот - молодец!

Справился хорошо вот и с этим нетипичным форматированием:

https://www.nordbayern.de/region/nuernberg/gutaussehend-und-modern-nurnbergs-neue-u-bahn-zuge-1.10347777

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

Естественно, что автор бота - еще молодчее! 😁

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

😎

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

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


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