Telegram Bot Dashboard

gravityperson

Резидент
Статус
offline
Регистрация
17.04.2020
Сообщения
320
Репутация
139
Всем привет!
Не так давно я пытался найти себе какую-то работу. Точнее не так, я пытался найти себе какое-то занятия в сфере разработки.
Зачем искал? Нет прямого ответа, но порой, очень скучно и надоедает делать одно и то же (работа) - вот и хочется позаниматься чем-то интересным.

Увы, но никаких дельных предложений не было, а я, напомню, не искал разработку лендингов и так далее. Мне было интересно разработка чего-то более масштабного и интересного.
Одно из главных условий было то, что весь результат будет в открытом доступе, open source, то есть. Это и послужило фактором отсутствия предложений, наверное.

Собственно, занятие я уже себе нашел. Как я и писал в теме - я решил сделать некую сферическую админку для некого/неких Telegram ботов.
Я это и начал делать, прогресс небольшой и скорость тоже не быстрая, но это проект для души, заказчик я сам, поэтому, быстроты я тут даже не ожидаю.

Собственно, зачем эта тема? Я понимаю, никому не интересно, но дабы не разбрасывать по форуму разные темы (даже если это никому не интересно) я буду освещать новости проекта именно здесь, его релизы и новый функционал. Напомню-все в открытом доступе и никаких ограничений.

Самым первым сообщением (этим) я просто поделюсь мыслями и некоторыми ссылками.
В данный момент проект состоит только из API (ссылка на репозиторий). Эта часть нужна для обработки запросов от самой панели (админки), которая будет в будущем. Пока что я сфокусирован на API.
Данное API пока что умеет только запускаться, деплоиться на heroku и выводить логи о пришедших запросах от ботов (в консоли).
Примеры из логов heroku могут быть примерно такими:
1624742015675.png


Собственно, это все, что пока что умеет данный API. Если сделать форк к себе в аккаунт и привязать его к heroku application, то он стартанет безо всяких проблем.
Но, это только начало!

А теперь, что планируется в самое ближайшее время:
1. добавление SQL БД
2. добавление AMQP брокера и асинхронных воркеров для обработки запросов от бота со стороны телеграм
3. добавление истории запросов со стороны телеграма и какой-то базовый UI, чтобы эту историю смотреть
4. контейнеризация приложения для возможности запуска не в IaaS, а на каком-то VPS/VDS
И возможно что-то еще, что я еще пока что не придумал :)

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

Задавайте вопросы, если кому-то это интересно, а так же, буду рад принять идеи на счет функциональности.
 
Последнее редактирование:

gravityperson

Резидент
Статус
offline
Регистрация
17.04.2020
Сообщения
320
Репутация
139
Да, чуть не забыл. Чтобы ваш бот заработал с данным API необходимо установить в качестве вебхука адрес задеплоенной апишки на heroku (или где-то еще).
Делается это проще простого, приведу пример с использованием httpie в Linux:
1624742076442.png


Где:
Код:
{BOT_TOKEN} токен вашего бота
{URL} адрес вашего приложения в heroku

После чего респонс должен быть примерно таким:
1624742170449.png


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

Мой пример тоже уже задеплоин, но из-за невозможности пошарить логи для общего доступа-нет смысла выкладывать здесь адрес. Если кому-то интересно, то пробуйте. Если что-то не выйдет, то пишите-я подскажу как поправить.

В случае ошибок или багов-пишите сюда, или прямо в GitHub Issues
 
Последнее редактирование:

gravityperson

Резидент
Статус
offline
Регистрация
17.04.2020
Сообщения
320
Репутация
139
Ах да, снова чуть не забыл.
Конечно, весь этот ужас может быть протестирован с помощью ngrok. Просто делаете что-то вроде "ngrok http 8080", а потом по команде из сообщения выше указываете в качестве вебхука адрес, который отдал вам ngrok.

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

TakeshiSoft

Участник
Статус
offline
Регистрация
28.04.2021
Сообщения
6
Репутация
19
Я понимаю, никому не интересно

Ну Вас, батенька, понесло! :) Что значит неинтересно? Как раз таки это одна из годнейших тем, при условии, что ты не забросишь начатое!
У меня, правда, другой профиль, тем не менее, на твою тему подписался, так что держи в курсе👍
 

gravityperson

Резидент
Статус
offline
Регистрация
17.04.2020
Сообщения
320
Репутация
139
Всем привет!
Прошло уже достаточно много времени-пора дать немного апдейтов.

Итак, касательно планов: я немного подумал и решил, что стоит начать с веб-части, хотя я уже начал продумывать инфраструктуру и даже создал для этого дела пару новых репозиториев (один, два).
Мне почему-то захотелось вот так :) С невидимой частью все так же: это будет RabbitMQ как брокер + агенты, принимающие команды от телеграма. Но я решил начать с проектирования админки как таковой.

Пока что делов не много там сделано. Я сделал репозиторий и application from scratch, как говорится.
Если немного больше тех. деталей, то это Angular 12, как основной фреймворк, feather icons в роли иконок и, собственно, все.

Если у кого-то есть желание посмотреть именно на Angular часть-не стоит, она выглидт примерно так:
1625260346689.png

Это просто базовая разметка для дальнейших действий.

Что с планами? Дальше у меня по плану взаимодействие с API, а значит, будут доделываться deployment скрипты для API и для UI части. Как и в прошлый раз-упор будет идти на Heroku, буду вытягивать все бесплатные соки :)

За сим разрешите откланяться, до новых встреч!
Ждите новостей
 

gravityperson

Резидент
Статус
offline
Регистрация
17.04.2020
Сообщения
320
Репутация
139
И вообще, если вдруг кто-то по-прежднему ждет и надеется, то вот что я скажу: делать что-то для себя, это очень тяжело. Ты буквально постоянно балансируешь на грани "бросить" и "найти что-то интересное", чтобы снова вернуться в проект.
Поэтому, сроки будут очень большими, а функционал может (и будет) приростать порциями, но с очень рванными интервалами :)

Но я не сдаюсь и пока что запал все еще во мне :)
 

gravityperson

Резидент
Статус
offline
Регистрация
17.04.2020
Сообщения
320
Репутация
139
Всем привет!
Выдался свободный вечерок, а значит-очередная пачка апдейтов для приложения, которое пока что ничего не делает :)

Самая большая новость-у приложения теперь есть свой адрес https://tg-bot-dashboard-ui.herokuapp.com/
Если кто-то не хочет разворачивать сам, есть шанс посмотреть это все в live режиме.

Теперь собственно change log (буду стараться выкладывать именно в таком формате):
* В проект впилена интернационализация (i18n). Пока что особо переводить нечего, но задел сделан. Механизм работает, можно добавлять переводы.
Пока что это английский и русский, но в будущем (если будут переводчики) список может быть дополнен.

* В проекте появилась аутентификация. Я нормальный, поэтому, делал не сам (и не думал), а просто заиспользовал auth0. У них там довольно-таки жирный лимит на бесплатное использование, в общем подходит. Регистрации пока что нет (по понятным причинам), но будет в будущем, конечно.
Собственно, кроме этого были еще мелкие доделки, но это мало кого волнует, я думаю.
В приложении пока что ничего нет и оно пока что ничего не умеет делать, но сделанные шаги уже позволяют закрыть пункты по пользователям, i18n и так далее.

Как попробовать? Очень просто открываем приложение и вводим туда вот эти данные:

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

Это тестовый пользователь, он пока что один (и скоро он умрет, конечно же).

Пару слов про регистрацию: я решил, что она будет доступна любому, то есть, аккаунты можно будет создать в любое время и самому, но это будет немного позже.
На первое время (бета-тест) я буду делать руками по заявкам (я очень надеюсь, что найдутся люди, которым будет это интересно и хоть кто-то будет этим пользоваться), а позже просто сделаем процесс регистрации открытый для всех.

Всем спасибо за внимание, до скорых встреч :)