Футбольный телеграм бот

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

В одной из футбольных телеграм-групп “сломался” бот, через который люди собирались на игры. Я загуглил его по названию, нашел статью на хабре от автора. Увидев, что бот написан на Node.js, перехотел смотреть исходники. Решил почитать как в целом они пишутся, и какие у них есть возможности.

И так залип, что не мог остановиться, пока к ночи не сделал уже рабочий вариант на python, которым можно было бы пользоваться в группе. Меня затянуло то, что можно было сделать бот намного интересней. И с кнопками в дополнение к текстовым командам, и с фиксацией всех отмен заявок (и их времени), и с возможностью установки лимита на количество участников, и с ведением статистики.

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

https://github.com/KMiNT21/telegram-sport-event-bot

Много пришлось подумать и над структурой базы данных, чтобы все было оптимально, и над интерфейсными удобствами. Например, добавил парсинг date-time ивента в любом формате и в свободной форме, чтобы людям не пришлось каждый раз вспоминать правильный формат. Даже локализацию сделал через GNU gettext (LC_MESSAGES/.mo/.po) и добавил сразу португальский язык :) .

Telegram Bot

Позже была мысль переписать все на Nim, чтобы скомпилировать сразу в один бинарник. Но на это уже мотивации не хватило.