From 3562ed767dbddfbcac321c7006962e1283eb63af Mon Sep 17 00:00:00 2001 From: Andrew Guschin Date: Tue, 15 Oct 2024 19:57:34 +0400 Subject: add files for rye project manager --- .gitignore | 2 ++ .python-version | 1 + bot.py | 2 +- config.example.py | 3 +++ pyproject.toml | 26 ++++++++++++++++++++++++++ requirements-dev.lock | 35 +++++++++++++++++++++++++++++++++++ requirements.lock | 35 +++++++++++++++++++++++++++++++++++ requirements.txt | 13 ------------- rules.jpg | Bin 3721798 -> 0 bytes src/basealt_bot_frontend/__init__.py | 2 ++ states.py | 28 ++++++++++++---------------- 11 files changed, 117 insertions(+), 30 deletions(-) create mode 100644 .python-version create mode 100644 config.example.py create mode 100644 pyproject.toml create mode 100644 requirements-dev.lock create mode 100644 requirements.lock delete mode 100644 requirements.txt delete mode 100644 rules.jpg create mode 100644 src/basealt_bot_frontend/__init__.py diff --git a/.gitignore b/.gitignore index 1cace06..14e0a5f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ .* !.gitignore +!.dockerignore +!.python-version logs __pycache__ config.py diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..7671800 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.8.20 diff --git a/bot.py b/bot.py index 2218c48..37e0ac8 100644 --- a/bot.py +++ b/bot.py @@ -23,7 +23,7 @@ def start(bot: Bot, update: Update, user_data: dict): user_data.update({"chosen_task": None}) update.message.reply_text( - "Квиз для дня работодателей", + "Квиз Базальт СПО на День работодателя КНиИТ СГУ", reply_markup=ReplyKeyboardRemove() ) diff --git a/config.example.py b/config.example.py new file mode 100644 index 0000000..ba0e5bc --- /dev/null +++ b/config.example.py @@ -0,0 +1,3 @@ +TG_TOKEN = "" +REQUEST_KWARGS = {} +BACKEND_URL = "http://localhost:8000" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..e9088fd --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,26 @@ +[project] +name = "basealt-bot-frontend" +version = "0.1.0" +description = "Add your description here" +authors = [ + { name = "Andrew Guschin", email = "guschin@altlinux.org" } +] +dependencies = [ + "python-telegram-bot==12.3.0", + "requests==2.22.0", +] +requires-python = ">= 3.8" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.rye] +managed = true +dev-dependencies = [] + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["src/basealt_bot_frontend"] diff --git a/requirements-dev.lock b/requirements-dev.lock new file mode 100644 index 0000000..a600326 --- /dev/null +++ b/requirements-dev.lock @@ -0,0 +1,35 @@ +# generated by rye +# use `rye lock` or `rye sync` to update this lockfile +# +# last locked with the following flags: +# pre: false +# features: [] +# all-features: false +# with-sources: false +# generate-hashes: false +# universal: false + +-e file:. +certifi==2024.8.30 + # via python-telegram-bot + # via requests +cffi==1.17.1 + # via cryptography +chardet==3.0.4 + # via requests +cryptography==43.0.1 + # via python-telegram-bot +future==1.0.0 + # via python-telegram-bot +idna==2.8 + # via requests +pycparser==2.22 + # via cffi +python-telegram-bot==12.3.0 + # via basealt-bot-frontend +requests==2.22.0 + # via basealt-bot-frontend +tornado==6.4.1 + # via python-telegram-bot +urllib3==1.25.8 + # via requests diff --git a/requirements.lock b/requirements.lock new file mode 100644 index 0000000..a600326 --- /dev/null +++ b/requirements.lock @@ -0,0 +1,35 @@ +# generated by rye +# use `rye lock` or `rye sync` to update this lockfile +# +# last locked with the following flags: +# pre: false +# features: [] +# all-features: false +# with-sources: false +# generate-hashes: false +# universal: false + +-e file:. +certifi==2024.8.30 + # via python-telegram-bot + # via requests +cffi==1.17.1 + # via cryptography +chardet==3.0.4 + # via requests +cryptography==43.0.1 + # via python-telegram-bot +future==1.0.0 + # via python-telegram-bot +idna==2.8 + # via requests +pycparser==2.22 + # via cffi +python-telegram-bot==12.3.0 + # via basealt-bot-frontend +requests==2.22.0 + # via basealt-bot-frontend +tornado==6.4.1 + # via python-telegram-bot +urllib3==1.25.8 + # via requests diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 039891d..0000000 --- a/requirements.txt +++ /dev/null @@ -1,13 +0,0 @@ -certifi==2019.11.28 -cffi==1.17.1 -chardet==3.0.4 -cryptography==43.0.1 -future==0.18.2 -idna==2.8 -pycparser==2.19 -PySocks==1.7.1 -python-telegram-bot==12.3.0 -requests==2.22.0 -six==1.14.0 -tornado==6.0.3 -urllib3==1.25.8 diff --git a/rules.jpg b/rules.jpg deleted file mode 100644 index e0032a3..0000000 Binary files a/rules.jpg and /dev/null differ diff --git a/src/basealt_bot_frontend/__init__.py b/src/basealt_bot_frontend/__init__.py new file mode 100644 index 0000000..4268070 --- /dev/null +++ b/src/basealt_bot_frontend/__init__.py @@ -0,0 +1,2 @@ +def hello() -> str: + return "Hello from basealt-bot-frontend!" diff --git a/states.py b/states.py index 316357f..afb00cb 100644 --- a/states.py +++ b/states.py @@ -141,10 +141,11 @@ class States: update.message.reply_text("\n".join(menu_text), parse_mode="Markdown") - update.message.reply_text( - "*У тебя решены все задачи! Подойди к нам, чтобы получить приз.*", - parse_mode="Markdown" - ) + if solved: + update.message.reply_text( + "*У тебя решены все задачи! Подойди к нам, чтобы получить приз.*", + parse_mode="Markdown" + ) update.message.reply_text( "Выбери следующее действие...", @@ -239,16 +240,11 @@ class States: @staticmethod @save_state def rules(bot: Bot, update: Update, user_data: dict): - r = """Вот несколько ПрАвИл, которые следует соблюдать, мой ДоРоГоЙ друг: -1) После того, как появится задача, у тебя есть целых 24 часа, чтобы решить её! Затем она закроется и получить за неё баллы будет нельзя. -2) Пожалуйста, постарайся решить каждую задачу самостоятельно и никому не подсказывать, ведь так гораздно интереснее решать! -3) Каждая задача может отличаться от другой своей сложностью, так что если у тебя не получается одолеть эту задачу, попробуй решить следующую! -4) В любой момент ты можешь посмотреть Топ-10 лучших участников квиза! -5) Помни - чем скорее ты решишь задачу, тем больше получишь за неё баллов, а значит, приблизишься к победе! -6) Ближе к концу недели, а именно ко дню рождения факультета - 28 февраля - станут известны результаты и имя победителя! Не волнуйся, вся информация об этом будет в группе КНиИТа: https://vk.com/sgu_kniit или https://vk.com/20yearscsit -7) Награждение будет проходить в процессе мероприятия, поэтому приглашаем вас 28-го февраля в 10 корпус СГУ на ул. Астраханской, начало - 16.00 -8) Если возникнут какие-то проблемы с задачами или с отправкой ответа, нажми "Задать вопрос" и опиши свою проблему, наша администрация ответит тебе в ближайшее время! -9) Если возникнут проблемы с интерфейсом, попробуй написать /stop, а затем /start, чтобы я перезапустился""" + r = """Вот несколько правил, которые следует соблюдать: +1) Всего в квизе 5 задач - после решения который можно получить призы. +2) Пожалуйста, постарайся решить каждую задачу самостоятельно и никому не подсказывать! +3) Если есть какие-то вопросы к нам, либо проблемы с задачами, нажми "Связаться с Базальт СПО" и напиши свой вопрос, мы ответим тебе в ближайшее время! +4) Если возникнут проблемы с интерфейсом, попробуй написать /stop, а затем /start, чтобы общение с ботом перезапустилось. Прогресс решённых задач никуда не пропадёт.""" # with open("rules.jpg", "rb") as f: # try: # print(update.message.reply_photo(f, timeout=5)) @@ -358,9 +354,9 @@ class States: answer = update.message.text status_code, task = backend_api.get_task(user_data["chosen_task"]) if status_code == 200: - backend_api.create_attempt(update.message.from_user.id, user_data["chosen_task"], answer) + backend_api.create_attempt(update.message.from_user.id, user_data["chosen_task"], answer.lower()) - if answer == task["answer"]: + if answer.lower() == task["answer"].lower(): update.message.reply_text( "Ты ввел правильный ответ! Возвращаемся в главное меню." ) -- cgit v1.2.3