eignatenkov / chgk_bot Goto Github PK
View Code? Open in Web Editor NEWtelegram bot for playing CHGK
telegram bot for playing CHGK
По /play 50 выдается не пятидесятый турнир, а какой-то другой.
Похоже, что play путается с ask. Надо переименовать. В game?
Переписать все уныние в xml-разборе с чистого lxml на BeautifulSoup
Сортировать выдачу /search по дате турнира
https://db.chgk.info/sites/default/files/kabachok_7_1.jpg - works
https://i.imgur.com/nWZJdVq.jpg -- doesn't work
Поддержать команду /answer, по которой в случае, если был задан вопрос, срубалось время и сразу выводился ответ.
Переводы строк, раздаточные материалы, etc.
Добавить возможность отвечать без ввода /answer каждый раз.
Сейчас картинки отправляются как текст со ссылкой, которая открывается только из-за того, что телеграм очень умный. Надо посылать картинкой, будет красивее.
Вынести весь шлак по инициализации турнира по умолчанию в команду /start. /start должна показывать список последних турниров, инициализироваться самым последним. /Recent - только обновляет список турниров, играющийся сейчас турнир оставляет как был.
http://db.chgk.info/question/umpal16.3/6, ответ не выводится.
telegram.error.BadRequest: "Bad Request: Can't parse message text: Can't find end of the entity starting at byte offset 388"
Авторы, комментарии, вот это все.
We are so outdated right now
По команде /nexttour или типа того срубать текущий вопрос (если он играется) и переходить к первому вопросу следующего тура.
сделать все по-взрослому, через классы
По команде /search запускать поиск турниров по базе с переданными параметрами
Если текст вопроса начинается со слова дуплет, задавать по частям, давать по 30 секунд на каждый. Возможно, для половинок будут свои картинки, тоже надо учесть.
Список турниров должен с какой-то периодичностью обновляться. Например, за счет списка последних турниров.
Писать в json-файл информацию о текущем состоянии игр, чтобы при перезапуске бота можно было его восстановить.
В связи с переходом на запуск бота как сервиса надо писать лог в файл, а не в stdout
Реализовать команду /broadcast, при вызове которой (если она отправлена с моего id) всем пользователям отправляется сообщение, идущее после команды.
сделать команду, по которой можно просить давать дополнительную минуту. Срабатывает только до появления ответа.
В ответ на /ask после того, как был задан 11-й вопрос 1-го тура ОКР-2008 (X кубок) получаем
Выберите турнир - /play [номер турнира]
Пример - it-кубок, 3 тур 3 вопрос
Dear Egor, I'm a huge fan of your bot. What do you think about the following feature? I'd be happy to submit a PR. You might also have better ideas about the implemention.
Feature. Bring up specific messages with /message <message-id>
.
Use case. A want to share the questions I liked with my team chat and let them play.
http://db.chgk.info/question/bien16.4/2/xml - из комментария пропали [] вокруг Джетро Талл. Надо поиграться с супом.
Вынести токены в какие-нибудь параметры, например, внешние, которые не будут лежать в репозитории
Поддержать возможность перехода по /ask к конкретному вопросу турнира.
Если во время отыгрыша вопроса пришла команда /ask, старый вопрос срубается, задается новый.
Выводить информацию по последнему сыгранному вопросу: турнир, тур, номер вопроса.
В базе тире, видимо, задается html-тэгом типа —, который вычищается во время очистки текста от тэгов. Надо предварительно заменять на -.
Там все круто и прям надо пользоваться.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.