@art_gara55555

Бот не реагирует на команды ранее все работало поменял токен не помогло Поможете?

Код
import sqlite3
import telebot
from telebot import types
from telebot.types import InlineKeyboardMarkup, InlineKeyboardButton

bot = telebot.TeleBot('');

page = 0
count = 3

korzina = 0
gala ='_'
korzina = 0

usser_id = 2
spisok_img = ["one.jpg","two.jpg","three.jpg"]


#def db_table_val(message):
    #global usser_id
    #if usser_id == usser_id:
        #usser_id = usser_id + 1



    #bot.send_message(message.chat.id, text="Заказ оформлен")
    #name_user = message.text.split()[0]
    #adres_user = message.text.split()[1]
    #num_user = message.text.split()[2]
    #zacaz_user = message.text.split()[3]
    
    #connect = sqlite3.connect('nam.db')
    #cursor = connect.cursor()

   # cursor.execute("""CREATE TABLE IF NOT EXISTS DANON(
       #     user_id INTEGER,
        #    Name TEXT,
        #    Adress TEXt,
        #    Number_u INTEGER,
         #   ZACAZ TEXt
      #  )""")


    #cursor.execute("INSERT INTO 'DANON'  VALUES(?,?,?,?,?);", (usser_id, name_user, adres_user, num_user, zacaz_user))
   # connect.commit()

    # Вывод данных из бд
#def read_sqlite_table():
       
       # sqlite_connection = sqlite3.connect('nam.db')
      #  cursor = sqlite_connection.cursor()
     #   cursor.execute("SELECT * FROM DANON ORDER BY user_id DESC LIMIT 1");
      ##  records = cursor.fetchall()
      #  for row in records:  
      #      print("ID:", row[0])
       #     print("Имя:", row[1])
       #     print("Адресс:", row[2])
       #     print("Номер:", row[3])
      #     print("Заказ:", row[4], end="\n\n")

        
       
#read_sqlite_table()


@bot.message_handler(commands=['start'])
def start(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    btn1 = types.KeyboardButton("Меню")
    btn2 = types.KeyboardButton("Оформить заказ")
    markup.add(btn1, btn2)
def button(message):
    bot.send_message(message.chat.id, text="Привет, я доставка бот чем могу помочь (ипользуй кнопки)".format(message.from_user), reply_markup=markup)
    if (message.text == "Меню"):
        #bot.send_photo(message.chat.id, open(spisok_img[0],'rb'))
        markup = types.InlineKeyboardMarkup(); #наша клавиатур
        #markup.add(InlineKeyboardButton(text=f'Корзина  = {korzina} Купить  |  500P', callback_data='test'))
        markup.add(InlineKeyboardButton(text=f'<--- Назад', callback_data=f'back-page'),InlineKeyboardButton(text=f'{page}/{count}', callback_data=f' '),InlineKeyboardButton(text=f'Вперёд-->', callback_data=f'next-page'))
        #key_s = types.InlineKeyboardButton(text='Назад', callback_data="back-page"); 
        #key_y= types.InlineKeyboardButton(text='Вперед ',  callback_data="next-page");
        #markup.add(key_s, key_y);
        #bot.send_photo(message.chat.id, open("menu.jpg",'rb'))
        bot.send_message(message.chat.id, text="Вот наше Меню", reply_markup=markup )
        @bot.callback_query_handler(func=lambda call:True )
        def callback_query(call):
            req = call.data.split('_')
            global count
            global page
            global spisok_img
            global del_val
            global korzina
            if req[0] == 'test':
                korzina = korzina + 500
            if req[0] == 'next-page':
                if page < count:
                    page = page + 1
                    if page == 1:
                        bot.send_photo(message.chat.id, open(spisok_img[0],'rb'))
                    elif page == 2:
                        bot.send_photo(message.chat.id, open(spisok_img[1],'rb'))
                    elif page == 3:
                        bot.send_photo(message.chat.id, open(spisok_img[2],'rb'))
                    markup = InlineKeyboardMarkup()
                    markup.add(InlineKeyboardButton(text=f'Корзина  = {korzina} Купить  |  500P', callback_data='test'))
                    markup.add(InlineKeyboardButton(text=f'<--- Назад', callback_data=f'back-page'),InlineKeyboardButton(text=f'{page}/{count}', callback_data=f' '),InlineKeyboardButton(text=f'Вперёд --->', callback_data=f'next-page'))
                    bot.edit_message_text(f'Страница {page} из {count}', reply_markup = markup, chat_id=call.message.chat.id, message_id=call.message.message_id)
                    

            #Обработка кнопки - назад
            elif req[0] == 'back-page':
                if page > 1:
                    bot.delete_message(message.chat.id,message.message_id - 1)
                    page = page - 1
                
                    markup = InlineKeyboardMarkup()
                    markup.add(InlineKeyboardButton(text=f'Корзина  = {korzina}   Купить  |  500P', callback_data='test'))
                    markup.add(InlineKeyboardButton(text=f'<--- Назад', callback_data=f'back-page'),InlineKeyboardButton(text=f'{page}/{count}', callback_data=f' '), InlineKeyboardButton(text=f'Вперёд --->', callback_data=f'next-page'))
                    bot.edit_message_text(f'Страница {page} из {count}', reply_markup = markup, chat_id=call.message.chat.id, message_id=call.message.message_id)
                    
                    bot.send_photo(message.chat.id, open("one.jpg",'rb'))
                    


        #Обработчик входящих сообщений
        @bot.message_handler(content_types=['text'])
        def start(m):
            global count
            global page
            markup = InlineKeyboardMarkup()
            markup.add(InlineKeyboardButton(text='Купить  |  500P', callback_data='unseen'))
            markup.add(InlineKeyboardButton(text=f'{page}/{count}', callback_data=f' '),InlineKeyboardButton(text=f'Вперёд --->', callback_data=f'next-page'))
            bot.send_message(m.from_user.id, "Привет!!!", reply_markup = markup)

    elif (message.text == "Оформить заказ"): 
        send = bot.reply_to(message,  text="Введите свои данные: \n Ваше имя \n Ваш адрес (пишите через (_) например Г_Москва_Ул_гвардейцев_дом_2) \n Ваш номер \n Ваш заказ") 
        bot.register_next_step_handler(send, db_table_val)
        





    ##markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
        #button1 = types.KeyboardButton("Меню")
        #button2 = types.KeyboardButton("Оформить заказ")
        #markup.add(button1, button2)
        #bot.send_message(message.chat.id, text="Вы вернулись в главное меню", reply_markup=markup)

    else:
        bot.send_message(message.chat.id, text="На такую комманду я не запрограммирован.. Напишите /start")





bot.polling(none_stop=True, interval=1)

2023-01-15 15:05:01,750 (__init__.py:1083 MainThread) ERROR - TeleBot: "Threaded polling exception: A request to the Telegram API was unsuccessful. Error code: 409. Description: Conflict: terminated by other getUpdates request; make sure that only one bot instance is running"
2023-01-15 15:05:01,751 (__init__.py:1085 MainThread) ERROR - TeleBot: "Exception traceback:
Traceback (most recent call last):
  File "C:\Users\Katana\AppData\Roaming\Python\Python310\site-packages\telebot\__init__.py", line 1073, in __threaded_polling
    polling_thread.raise_exceptions()
  File "C:\Users\Katana\AppData\Roaming\Python\Python310\site-packages\telebot\util.py", line 118, in raise_exceptions
    raise self.exception_info
  File "C:\Users\Katana\AppData\Roaming\Python\Python310\site-packages\telebot\util.py", line 100, in run
    task(*args, **kwargs)
  File "C:\Users\Katana\AppData\Roaming\Python\Python310\site-packages\telebot\__init__.py", line 649, in __retrieve_updates
    updates = self.get_updates(offset=(self.last_update_id + 1),
  File "C:\Users\Katana\AppData\Roaming\Python\Python310\site-packages\telebot\__init__.py", line 623, in get_updates
    json_updates = apihelper.get_updates(self.token, offset, limit, timeout, allowed_updates, long_polling_timeout)
  File "C:\Users\Katana\AppData\Roaming\Python\Python310\site-packages\telebot\apihelper.py", line 321, in get_updates
    return _make_request(token, method_url, params=payload)
  File "C:\Users\Katana\AppData\Roaming\Python\Python310\site-packages\telebot\apihelper.py", line 162, in _make_request
    json_result = _check_result(method_name, result)
  File "C:\Users\Katana\AppData\Roaming\Python\Python310\site-packages\telebot\apihelper.py", line 189, in _check_result
    raise ApiTelegramException(method_name, result, result_json)
telebot.apihelper.ApiTelegramException: A request to the Telegram API was unsuccessful. Error code: 409. Description: Conflict: terminated by other getUpdates request; make sure that only one bot instance is running
"
  • Вопрос задан
  • 519 просмотров
Решения вопроса 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Лучше увеличить интервал, 1 секунда это мало, и при любой ошибке ты скорее всего очень быстро сделаешь второй запрос, который и вызовет подобное поведение. Дефолтные 30 секунд это норма, не надо их менять без очень веских причин.

Long polling так и работает: запрос длится 30 секунд, если приходит событие - запрос завершается досрочно. Это позволяет и события получать быстро, и сервер слишком часто не дёргать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы