Почему-то при очередном тестировании бота он перестал работать в определённой точке (место остановки отмечено комментарием ниже)
import telebot
import sqlite3
from telebot import types
from clickupython import client
import strings
from telebot.types import InlineKeyboardMarkup, InlineKeyboardButton
bot = telebot.TeleBot(strings.token)
conn = sqlite3.connect('db/clickup.db', check_same_thread=False)
cursor = conn.cursor()
user_api = {}
user_id = {}
user_list_id = {}
user_password = {}
user_name = {}
user_description = {}
user_date = {}
user_clickup = {}
user_list = {}
user_name1 = {}
user_descr = {}
user_aidi = {}
def db_table_val(user_id: int, api: str, list_id: str, password: str, organis: str):
cursor.execute('INSERT INTO clickup (user_id, api, list_id, password, oranis) VALUES (?, ?, ?, ?, ?)',
(user_id, api, list_id, password, organis))
conn.commit()
@bot.message_handler(commands=['start'])
def button_message(message):
print(message.chat.id)
bot.send_message(message.chat.id,
f'Здравствуйте, {message.from_user.first_name} {message.from_user.last_name}! Позвольте мне помочь вам интегрировать ваше рабочее пространство ClickUp. Первое, что вам нужно сделать, это зарегистрироваться (/register) или авторизоваться (/login).')
@bot.message_handler(commands=['register'])
def reg(message):
reg = bot.send_message(message.chat.id,
"Введите ваш токен. Для этого вам необходимо войти в свою учетную запись ClickUp, нажать на кружок с вашим аватаром в левом нижнем углу, выбрать «Приложения» и нажать кнопку «Копировать» в поле токена API. После вставить его в наш диалог и отправить.")
bot.register_next_step_handler(reg, reg2)
def reg2(message):
user_api[message.chat.id] = message.text
user_id[message.chat.id] = message.from_user.id
reg2 = bot.send_message(message.chat.id, "Введите ваш лист. Для этого вам необходимо войти в свою учетную запись ClickUp, нажать на 3 точки у вашего листа под пространством, нажать на кнопку 'Скопировать ссылку' (Copy link), вставить ее в браузер и скопировать в ней крайние цифры после 'слэша' (/)")
bot.register_next_step_handler(reg2, reg3)
def reg3(message):
user_list_id[message.chat.id] = message.text
reg3 = bot.send_message(message.chat.id, "Придумайте пароль и отправьте его")
bot.register_next_step_handler(reg3, reg4)
def reg4(message):
user_password[message.chat.id] = message.text
db_table_val(user_id=user_id[message.chat.id], api=user_api[message.chat.id], list_id=user_list_id[message.message.chat.id], password=user_password[message.chat.id])
bot.send_message(message.chat.id, "Супер! Теперь Вы можете войти, используя команду /login")
@bot.message_handler(commands=['login'])
def login(message):
Variable = message.from_user.id
cursor.execute("SELECT * FROM clickup WHERE user_id=?", (Variable,))
rows = cursor.fetchall()
if len(rows) == 0:
bot.send_message(message.chat.id, 'Вас нет в базе данных. Зарегистрируйтесь, введя команду /register')
else:
login = bot.send_message(message.chat.id, "Введите ваш пароль")
bot.register_next_step_handler(login, login2)
def login2(message):
user_password[message.chat.id] = message.text
us_id = message.from_user.id
cursor.execute("SELECT * FROM clickup WHERE user_id=? AND password=?", (us_id, user_password[message.chat.id],))
password = cursor.fetchall()
if len(password) == 0:
bot.send_message(message.chat.id, "Не верный пароль!")
login(message)
else:
print(user_password)
bot.send_message(message.chat.id, "Вы вошли в систему! Введите /menu, чтобы перейти в меню")
us_id = message.from_user.id
cursor.execute("SELECT * FROM clickup WHERE user_id=?", (us_id,))
password = cursor.fetchall()
for row in password:
user_clickup[message.chat.id] = row[2]
user_list[message.chat.id] = row[3]
print(user_clickup, user_list)
@bot.message_handler(commands=['help'])
def help(message):
bot.send_message(message.chat.id, "/register")
@bot.message_handler(commands=['menu'])
def button_message(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
item1 = types.KeyboardButton("Просмотреть задачи")
item2 = types.KeyboardButton("Создать задачу")
markup.add(item1, item2)
bot.send_message(message.chat.id, 'Выберите действие:', reply_markup=markup)
message_reply(message)
@bot.message_handler(func=lambda call: True)
def message_reply(message):
if message.text == "Просмотреть задачи": #здесь он тормозит и не выполняет if
mark = InlineKeyboardMarkup()
mark.row_width = 1
mark.add(InlineKeyboardButton("Изменить задачу", callback_data="chng_tsk"),
InlineKeyboardButton("Удалить задачу", callback_data="del_tsk"))
c = client.ClickUpClient(user_clickup[message.chat.id])
tasks = c.get_tasks(str(user_list[message.chat.id]), subtasks=True)
for task in tasks:
bot.send_message(message.chat.id,
f"ID: {task.id} \n Имя: {task.name} \n Описание: {task.description} \n Статус: {task.status.status} \n Создатель: {task.creator.username} \n Приоритет: {task.priority} \n Ответственные: \n Ссылка: {task.url}",
reply_markup=mark)
print(tasks)
elif message.text == "Создать задачу": #но почему-то этот шаг спокойно выполняется
sent = bot.send_message(message.chat.id, "Введите имя задачи")
bot.register_next_step_handler(sent, descr)
Но почему-то шаг "Создать задачу" выполняется. С чем это может быть связано и как это исправить?