Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Task and state classes #9

Merged
merged 1 commit into from
Jan 4, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 67 additions & 8 deletions bot.py
Original file line number Diff line number Diff line change
@@ -1,37 +1,96 @@
#!/usr/bin/env python3

import random
import telebot
from task import Task
from state import State


def main():
# Call on "next" button press
def on_next(user_state):
task = gen_task()
print(task)
user_state.task = task.task
user_state.answer = task.answer


def user_state(user_id):
return ""


def detect_response(text):
result = True
def detect_response(user_state, text):
result = False
if text == user_state.answer:
result = True

if result:
positive_response(user_state)
else:
negative_response(user_state)

return result


def negative_response():
def negative_response(user_state):
user_state.negative_tries += 1
if user_state.negative_tries >= 2:
return "Oops + button"
return "Oops"


def positive_response():
user_state.negative_tries = 0
return "OK!"


def gen_task():
# gen 1st number
a= random.randrange(1, 9, 1)
a = random.randrange(1, 9, 1)
# gen 2nd number
b = random.randrange(1, 9, 1)
return f"{a}x{b}"

t = Task()
t.task = f"{a}x{b}"
t.answer = f"{a*b}"
return t


def get_user_state(user_id):

return State()


def save_user_state(user_state):
return None

# Start Bot
f = open("token.txt", "r")
token = f.read()
bot = telebot.TeleBot(token, parse_mode=None)


@bot.message_handler(commands=['start', 'help'])
def on_start(message):
bot.reply_to(message, "Привет! Давай порешаем примеры?")


@bot.message_handler(func=lambda m: True)
def on_all(message):
user_id = message.from_user.id

state = get_user_state(user_id)

if state.task == None:
# Generate new task, show to user.
task = gen_task()
state.task = task
state.tries = 0
state.user_id = user_id
save_user_state(state)
bot.send_message(message.chat.id, task.task)
else:
# Check answer
bot.send_message(message.chat.id, "Это ответ?")


if __name__ == "__main__":
main()
bot.polling()
Empty file removed gen-task.py
Empty file.
7 changes: 7 additions & 0 deletions state.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
class State:
# Telegram user id
user_id = None
# current task. type Task
task = None
#
tries = 0
5 changes: 5 additions & 0 deletions task.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
class Task:
# "5x7"
task = ""
# "35"
answer = ""