воскресенье, 5 июня 2016 г.

Telegram bot: Football Scores - EURO 2016 mode!

Well...
Не, в общем тут лучше на русском. 

Ниже немного букв, а это сразу ссылка на бота

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

Дальше немного про технологии,  можно пропустить

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

В итоге выбор пал на Python. Давно руки чесались его изучить и вот теперь настал этот момент. Естественно изучение происходило прямо во время написания бота. Никаких книжек, только документация и одна статья - Статья про Python
По итогам этого процесса отметил для себя пару очень важных пунктиков:
  • без unit-test'ов жизнь - боль. Так как я серверным программированием раньше не занимался, то тесты почти никогда не писал. Но вот теперь понял, что очень даже зря. Надо вкорячивать их при любом удобном случае. 
  • python - крутая технология. Очень приятно работать. 
  • фреймворки решают. Мне очень помог Telepot в плане работы с Telegram Bot API 2.0
  • у Amazon на год дается маленький сервачок бесплатно. На год! А Selectel - жлобы.
  • если писать код после 10 вечера, то получается говно. Но если хватает желания и сил обложить этого говно тестами, то оно как минимум работает.    
  • после двух поражений нужно выходить из Clash Royale

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

Месяц назад для Telegram еще не было нормальных ботов, которые бы показывали адекватно что-то из футбольного мира. Да и сейчас, те боты что вышли, по-моему мнению, не дотягивают до удобства, с которым мне бы хотелось получать информацию об этом виде спорта. Насколько адекватно это получилось у меня - это конечно тоже еще вопрос, думаю по ходу работы бота это удастся выяснить.

В результате бот научился показывать таблицы и транслировать матчи, когда все чемпионаты уже закончились, поэтому второй месяц из двух ушел на то, чтобы адаптировать бота к Чемпионату Европы по футболу, который начинается через 5 дней.

Что получилось - можно оценить здесь - Ссылка на бота. Ниже немного скринов с примерами того, какую информацию и как выдает бот.





Бот умеет показывать текущие таблицы чемпионатов. Почти как google, только у бота они быстрее становятся актуальными. Для этого есть команды /gettable, /getmtable - компактный вид и /gettableall - все турнирные таблицы с поддержкой пролистывания.
Бот умеет транслировать любой матч из чемпионата. Для этого нужно подписаться на команду, для которой хочется получать обновления с помощью команды /follow.
/teaminfo и /myteaminfo служат для того, чтобы получить подробную информацию о команде.

На данный момент бот полностью настроен на Чемпионат Европы 2016. Там доступно все что нужно знать о турнире.

ps: в help есть ссылка с помощью которой можно оценить бота. Буду благодарен за оценку))
psps: если есть интерес по полезной функциональности, нужно смело писать мне