(тут котики потому что иконку мне еще не нарисовали, зато какие! :D)
Привет! Расскажу про бота для Телеги, которого я решил запилить на досуге
Расскажите о себе и сути проекта?
Я обычный питонист-бекендер, который увлекся программированием еще в детстве и всегда делал всякие небольшие проектики, а теперь еще дошел и до того, чтобы показывать их на обозрение (просто родилась не самая бесполезная идея:D)
Суть заключается в том, что бот отправляет каждый день по случайной ссылке из тех, что вы в него закинули. Для чего? Читайте в следующей главе!
Как появилась идея? Что вдохновило?
Одним вечером я сидел за своим ноутбуком и вдруг набрался решимости почистить свои 250+ вкладок в браузере, попутно смотря, что ценного я в них мог оставить. А оставил я там кучу классных статей, которые когда-то решил "отложить на потом" (иногда такие статьи попадают в закладки, но тоже оказываются в лимбе непрочитанного). Поспрашивал своих друзей-знакомых , есть ли у них такая проблема с лимбом непрочитанных статей, оказалось что у большинства - да! Так и родилась идея для бота, который будет "пинать" читать сохраненные статьи и не забывать о них.
Что вошло в прототип и сколько времени на него было потрачено?
Бота я начал делать в августе 2020, когда лежал в ковидном госпитале, но после развивал его очень эпизодически (достаточно посмотреть на историю коммитов, ггг)
Сейчас у него имеется возможность принимать ваши ссылочки посредством отправки их ему в телеге, показывать вашу статистику, и отправлять каждый день в выставленное время (пока что, увы, только МСК) по рандомной ссылке.
Примерно так бот вас приветствует и сразу же предлагает выставить удобное время для получения ежедневной "рассылки":
А так выглядит сама рассылка:
Боту можно закидывать как одну ссылку
Так и сразу несколько!
А еще недавно добавил возможность просматривать непрочитанные ссылки (самым сложным тут было сделать человеческую пагинацию у бота, для aiogram нет готовых решений)
Вот, кстати, stonks
Какой технологический стек вы использовали? Почему?
Python (потому что питонист), aiogram (асинхронная либа для тг-ботов, потому что привычно и асинхронно), tortoise-orm и aerich для миграций (потому что удобно, асинхронно и привычно).
Запускал на своей VPS у Contabo. Никакого особо ci/cd нет, сначала ручками раскатывал, а потом накатал скрипт, который слушает вебхуки с гитхаба (https://github.com/FMajesty/simple-ci) и выполняет скриптик, который гитпуллит, подтягивает обновления зависимостей, запускает миграции и перезапускает сервис.
Как вы запускались и искали первых пользователей?
Порассказывал про бота знакомым, они своим, те своим... и так по цепочке. Рассказывал о боте в русскоязычных каналах тележеньки для людей с СДВГ. Теперь дошел до сюда (потому что снова взялся за бота и напилил дополнительных фич)
С какими самыми неожиданными трудностями пришлось столкнуться?
ПЕРЕНОС БАЗЫ С SQLITE НА POSTGRESQL! Это было больно. Есть готовые решения вроде pgloader чтобы не переносить всё руками, но... у меня Макбук с M1 и ни одна из тулз не заводилась на нём. Пришлось всё переносить ручками и фиксить типы данных, на помощь пришел лишь джетбрейновский DataGrip.
Сколько потратили и заработали? Есть идеи как это можно монетизировать?
Трачу на ВПСку ежемесячно по ~400 рублей. That's it.
Монетизировать бота вообще никак не собираюсь, сделал для себя и людей:)
Какие планы на будущее?
Английская локализация (уже почти что готово!) бота и расширения для браузера, чтобы ПКМнул ссылочку и сразу в бота отправил.
Нужны ли какие-то советы или помощь Клуба?
Наверное, нужна помощь с разработкой расширения, если кто-то готов за это взяться на добровольных началах, просто за идею:)
Какой совет вы бы сами могли дать идущим по вашим стопам?
Да тут никаких особых стоп и нет. Хочется дать совет лишь себе - пиши поменьше говнокода, дружище. Пагинация была страшной.
Репа бота - https://github.com/FMajesty/link-kicker
Спасибо, что дочитали! Открыт к любому фидбеку:)
😱 Комментарий удален его автором...
Большое спасибо за бота, уже скормил ему пачку ссылок. Есть два вопроса:
— Если нужно изменить время, в которое приходит пуш, это можно сделать только через /start и повторный вызов приветственного сообщения?
— Можно ли как-то настроить два интервала? Например, чтобы получать две ссылки в день: одну в обед, а одну вечером после работы.
Привет! Классный бот, спасибо. Я все сохраняю в Pocket и вопрос регулярности чтения решала посредством напоминалки/привычки типа «Прочитать две статьи из Pocket». Попробую теперь эту задачу решать ботом. Глядишь, разгребу бэклог из непрочитанного :)
Клёвая идея! Можно еще напоминать себе перечитывать что-нибудь интересное!)
Возможно попробую в будущем, а пока для сохраненок уже есть табличка в ноушене
которую никогда не открываю.Круто! Интересное совпадение я для себя такого же запилил год назад, а потом решил сделать такого в виде канала для всех. То есть все кидают что угодно в бота, а он это случайно в канал публикует.
Я не программист, собрал на Интегромате и Гугл табличке. Опубликовать и позвать людей — руки не дошли.
Когда все это делал, заметил, что надоедает ожидаемость и добавил эффект случайности.
Предлагаю добавить при выборе времени такую настройку.
Получилось круто!)
Нужен совет от клуба и тех, кто уже начал использовать бота.
Как думаете, каким образом будет удобнее всего выстроить коммуникацию с пользователями чтобы сообщать об обновлениях?
У меня пока что есть два варианта на примете: