функция callback_query мешает функции call
Прошу помочь с кодом, не понимаю почему функция def coefficient(call): не работает (бот в моменте в который она должна запускаться не отвечает), но если их поменять местами эта функция будет работать а функция def add_delete_users(callback_query): не будет работать Прилагаю код:
import random
from datetime import datetime, timedelta
import telebot
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
from telebot.types import InlineKeyboardMarkup, InlineKeyboardButton
bot = telebot.TeleBot("6443563567:AAEQaIAm_bGjZ0g2mCFHVm8rhamJ8b4euJY")
registered_users = []
admins = []
@bot.message_handler(commands=['start'])
def handle_start(message):
user_id = message.from_user.id
if user_id in admins:
markup = InlineKeyboardMarkup()
markup.row(InlineKeyboardButton("Добавить пользователя", callback_data='add_user'))
markup.row(InlineKeyboardButton("Удалить пользователя", callback_data='delete_user'))
markup.row(InlineKeyboardButton("Показать список пользователей", callback_data='show_list'))
bot.send_message(user_id,
f"Режим администратора", parse_mode="HTML", reply_markup=markup)
elif user_id in registered_users:
markup = InlineKeyboardMarkup()
markup.row(InlineKeyboardButton("Регистрация", url="https://www.online-python.com/"))
markup.row(InlineKeyboardButton("Зарегистрировался", callback_data='reg_user'))
bot.send_message(user_id,
f"Регистрация ",
parse_mode="HTML", reply_markup=markup)
else:
bot.send_message(user_id, "У вас нет действующей подписки\n\nДля покупки подписки напишите сюда:")
@bot.callback_query_handler(func=lambda call: True)
def add_delete_users(callback_query):
user_id = callback_query.from_user.id
if callback_query.data == "add_user":
bot.send_message(user_id, "Введите id пользователя")
bot.register_next_step_handler(callback_query.message, add_user)
elif callback_query.data == "delete_user":
bot.send_message(user_id, "Введите id пользователя")
bot.register_next_step_handler(callback_query.message, delete_user)
elif callback_query.data == "show_list":
bot.send_message(user_id, f"Список пользователей: {registered_users}", parse_mode="HTML")
def coefficient(call):
current_datetime = datetime.now()
new_datetime = current_datetime + timedelta(minutes=2)
new_datetime_str = new_datetime.strftime("%Y-%m-%d %H:%M:%S")
if random.random() < 0.85:
random_number = round(random.uniform(1.00, 10.45), 2)
else:
random_number = round(random.uniform(10.46, 55.23), 2)
font_path = "gadugi-bold.ttf"
font_size = 55
font = ImageFont.truetype(font_path, font_size)
text_position = (223, 98)
text_color = (148, 78, 245)
text = f'{random_number}'
img = Image.open('descpic12.png')
draw = ImageDraw.Draw(img)
draw.text(text_position, text, text_color, font)
img.save('newdeskri.png')
if call.data == "reg_user":
markup = InlineKeyboardMarkup()
markup.row(InlineKeyboardButton("Следующее фото", callback_data='nextkef'))
image_path = 'newdeskri.png'
image = open(image_path, 'rb')
message = bot.send_photo(chat_id=call.message.chat.id, photo=image,
caption=f"Описание",
parse_mode='HTML', reply_markup=markup)
return message.chat.id, message.message_id
elif call.data == "nextkef":
markup = InlineKeyboardMarkup()
markup.row(InlineKeyboardButton("Следующее фото", callback_data='nextkef'))
image_path = 'newdeskri.png'
image = open(image_path, 'rb')
message = bot.send_photo(chat_id=call.message.chat.id, photo=image,
caption=f"Описание",
parse_mode='HTML', reply_markup=markup)
return message.chat.id, message.message_id
def add_user(message):
if int(message.text) not in registered_users:
registered_users.append(int(message.text))
bot.send_message(message.chat.id,
f"Добавлен пользователь с id: {message.text}\n\nТекущий список пользователей: {registered_users}")
else:
bot.send_message(message.chat.id, "Пользователь уже существует")
def delete_user(message):
if int(message.text) in registered_users:
registered_users.remove(int(message.text))
bot.send_message(message.chat.id,
f"Удален пользователь с id: {message.text}\n\nТекущий список пользователей: {registered_users}")
else:
bot.send_message(message.chat.id, "Пользователь не найден")
bot.polling()