Кратко о том, как я телеграм-бота по BG&E делал

Кратко о том, как я телеграм-бота по BG&E делал

Предисловие

Итак, телеграм-бот значит.
Почему я вообще решил создать телеграм-бота?
Сразу скажу, чтобы отрезать все домыслы - это не реклама бота, а просто история его создания.
Почему не реклама узнаете, если прочитаете статью.
С самим телеграмом у меня достаточно теплые отношения прямиком из 2017 года.
Это была новая тогда и быстро набиравшая популярность соцсеть, что-то вроде Whats app, только круче в разы.
Когда стали популярны сами телеграм-боты я не помню, просто не уследил за трендом и моментом.
Так что запрыгнуть на этот, как говорится на молодёжном сленге, хайп-трэин(а может и так уже не говорят?🤷) я решил только сейчас.

Кратко о том, как я телеграм-бота по BG&E делал

Почему бот?

Сам я учусь на программиста.
Для тех кто в теме, я Администратор баз данных(БД) и совсем немножко Системный Администратор - основной упор делается на БД, SQL, PHP My Admin, сами СУБД: Microsoft Access, MySQL, PostgreSQL.
А остальные популярные СУБД, такие как Oracle и MongoDB я собираюсь изучить в дальнейшем самостоятельно.
В принципе обучение в этом колледже мне не особо по душе, но и неплохо с другой стороны.
В стенах заведения мы проходим всё как-то вскользь и поверхностно.
Я уж сам начал всё это изучать по интернету: Python, знаю его пока что на уровне beginner.
SQL доизучал уже дома, потому что как студент не понял ничего.
И конечно начал изучать C-sharp, Unity движок и планирую заняться как хобби 3D - моделированием в Blender, и даже может в 3dsMax.
Болезнь программиста - каждый день что-то изучаешь и остановиться сложно.
Собственно, почему я решил создать бота?
Удивительно, но я сам черт его знает почему.
Я смотрел ТВ утром, вспомнил про Beyond Good & Evil, вспомнил про то, что когда-нибудь хотел бы запилить свой сайт.
Подумал, может сделать фан-сайт по игре?
Но, знаний моих HTML и CSS совсем ноль(но уже начал изучение), я решил заняться телеграм-ботом по игре.
А потом уж после можно и сайтом заняться.

Кратко о том, как я телеграм-бота по BG&E делал

Почему Beyond Good & Evil?

В своей первой статье на Дзене я уже поведал вам об этой игре.
Почему же BG&E? Всё просто.
Во время просмотра того самого ТВ ко мне пришла гениальная мысль.
Я вспомнил про так называемый "Каталог Хиллийской фауны".
Подумал, а почему бы не выложить его в сеть?
Заснять все 56 видов животных и выложить куда-нибудь.
Да ещё и саму про планету Хиллия написать, да и про сам научный центр.
А может ещё, как бонус, рассказать о сопротивлении ИРИС?
Пользователь продолжает пароль: "В крепости-раковине жемчужина плывёт по **** ****(воле волн)" и получает информацию о каждом участнике ИРИС?
В моей голове это звучало крайне круто.
Да ещё и под рамки телеграм-бота, как оказалось, неплохо вписывалось.
Вот я и начал творить свой проект)

Кратко о том, как я телеграм-бота по BG&E делал

Как я его сделал?

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

Кратко о том, как я телеграм-бота по BG&E делал

Ну это конечно далеко не все.
Главное: добавить меню, запрограммировать определённые команды и тогда уже можно будет выдохнуть.
Писать я решил на Python, просто потому что так проще, чем на JavaScript.И об разработке бота на питоне информации в интернете будет поболее.
Так что выбор был очевиден.
Писал код в среде PyCharm от JetBrains и в принципе, в ней мне всё зашло на ура.
Разрабатывал я примерно 5 дней, по полтора часа в день.
Но самым сложным испытанием заставить бота отправлять пользователю случайную картинку из каталога фауны.
А ещё все 56 добавить. Я ведь совсем забыл, что чтобы добыть все фото, нужно пройти игру.
На это у меня времени увы не было и, как выяснилось, в сети этот каталог уже был.Им я и воспользовался - он тут на клике.
Затем преобразовал все 56 webp в jpg.
И 2 часа ломал голову, как же настроить этот рандом и указать путь к файлу. Всё делал правильно, но ничего не выходило.
В итоге, с божьей помощью всё получилось.
"я просто неправильно указывал путь к jpg-файлам, да и неправильно саму команду обращение писал"

Главное меню
Главное меню
Информация о Хиллии
Информация о Хиллии
Где найти М-диски?
Где найти М-диски?
Информация о научном центре
Информация о научном центре

Я создал меню, наполнил их инфой, добавил фото.
Пять дней даром не прошли и оставалось всего лишь где-нибудь задеплоить бота, чтобы он работал на постоянной основе.
Постоянно держать бота включенным на собственным ПК, что бы в телеграме он работал - это полный моветон.
Ну и это, наряду с самим каталогом, было тем ещё испытанием.
Я с полной уверенностью думал, что сейчас на сервисе Хероку через Git я заставлю моего телеграм-бота работать, но.....
Из-за нынешней ситуации в стране, о которой вы прекрасно знаете, Хероку больше к себе не подпускает.
Сказать, что я был ошарашен - ничего не сказать.
Я судорожно стал искать другой сервис, например виртуальные сервера, но либо тоже облом, либо цены кусались.
А вкладывать деньги в этот проект я изначально не планировал.
С горем пополам я настроил уже наверное 7-ой vpn, через который я всё-таки попал на Хероку.
И вот, спустя 10 минут, всё работает онлайн.
Радости моей не было предела.
Только вот почему он не работает поздней ночью не понятно, но с 5 утра он начинает действовать.

Кратко о том, как я телеграм-бота по BG&E делал

Плохая концовка?

Может быть в самом Хероку проблема.
Может быть я что-то накосячил, но та самая кнопка под названием "Полистать каталог с фауной" просто не работает.
Почему так? Я так и не смог разобраться.
Со моей стороны нет никаких нареканий.
Я всё внимательно тестил перед онлайн-запуском и всё работало безукоризненно.
В итоге, по неизвестным причинам, работают только кнопки с информацией, а кнопки, ради которых я делал этот проект: "Устав Карлсона и Питерса", "Каталог с фауной", "Секретная Информация" не реагируют.
Я перезаливал бота на Хероку, но это проблему не решило.
Остальные решения я не буду использовать, потому что они требуют вложений - а стоит ли оно того? Не думаю.
В итоге, этот проект принёс мне только боль и разочарования.
Если хотите, конечно, можете зайти и сами посмотреть на мою работу, хоть и ломанную, бессмысленную и кривую. - Планета Хиллия - P.S. уже не работает.
Я собираюсь залить этого бота на GitHub и оставить всё это просто как жизненный опыт.

Кратко о том, как я телеграм-бота по BG&E делал

Итог:

Опыт в разработке телеграм-бота оказался неплохим и выкидывать его так я не буду.
Может быть, кто-нибудь отроет его на GitHub, доработает и задеплоит вместо меня.
Разбираться с ним у меня уже нет сил, я выгорел.
Разработку телеграм-ботов я наверное не заброшу, потому что тема интересная.
Продолжу учиться, и делать их лучше, ну и заливать на GitHub.
Как увлечение - это интересно.
Странное и утомляющее, но радующее мозг увлечение.

Пользуйтесь:

1515
15 комментариев

Комментарий недоступен

2

Молодец конечно что учишься новому,но главное не считать после этого что ты способен делать нормальных ботов и идти на фриланс, потому что проблем в коде навалом и тебе явно стоит изучить основы языка а не бросаться в разработку ботов

1

Да какой фриланс, просто хобби

Нормальная тема как для опыта. Несколько советов:
1. Распыляться нет смысла, тебя заебет превозмогать каждый раз. Шарп/юнити, и тут же боты в телеге — это всё хорошо, но лучше сосредочиться на том, что нравится и качаться в нем. Иметь широкий кругозор != браться за все подряд, особенно вначале. Добей базу типа SQL + ЯП по выбору и там потрогать алгоритмы, структуры данных и тд. Есть база, которая немного отличается в зависимоти от ЯП, но актуальна всегда.
2. Хероку в любом случае в ноябре закрывает бесплатный тир. Есть аналоги, но я их еще не пробовал. Думаю попробовать ближе к ноябрю. Например, https://fly.io/
3. Субъективно — геймдев это про еблю за гроши. Think about it. Ну и сначала желательно всё же computer science базу подтянуть, а потом уже лезть в нужную область.
4. Познакомься с тулами и прочей херней для своего любимого языка и юзай их активно. В питоне есть пеп8, это набор общепринятых практик в питоне. В хороших проектах он тебе должен генерировать предупреждения как ошибки (treat warnings as errors) чтобы качество кода не проседало. Наверняка еще есть какие-то анализаторы, но я не питонист, сильно не лез.
5. Если продолжишь тему с ботами или другими веб-сервисами/воркерами, то есть смысл почитать про CI/CD, что-то супербазовое. Грубо говоря не руками всё закидывать, а автоматом на определенные события (новый коммит в мастер ветке).

Удачи ;)

1

Знаю, что относится не к блогу "Игры", просто забыл поменять.

Ссылка неверная на github,исправлю.