@motya88

Как решить проблему с ботом telegram?

Добрый день!
Написал бота с которым работают порядка 50 человек.
В ходе работы часто возникают ошибки вот такие:
2020-07-09 07:30:48,431 (util.py:65 WorkerThread4) ERROR - TeleBot: "TypeError occurred, args=("getphoto_left_c() missing 1 required positional argument: 'random_code'",)
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/telebot/util.py", line 59, in run
    task(*args, **kwargs)
TypeError: getphoto_left_c() missing 1 required positional argument: 'random_code'

Ошибка возникает из-за одновременного использования несколькими пользователями?
Как можно поправить и и избавиться от ошибки? пытался найти норм иснормация как переписать на синхронного,но толком инфы не нашел.
Пожалуйста, помогите.
кусок бота ниже:
@bot.message_handler(content_types= ["photo"])

def getphoto_left_c(message, random_code):
    if message.content_type != 'photo':
        msg_r = bot.reply_to(message, 'Сделайте фотограцию короба слева')
        bot.register_next_step_handler(msg_r, getphoto_left_c, random_code)
        return
    bot.forward_message(TO_CHAT_ID, message.chat.id, message.message_id)
    bot.send_message(TO_CHAT_ID, 'Фотография короба слева. КОД: ' + str(random_code))
    msg = bot.send_message(message.chat.id,
                              'ШАГ 2 из 2' + "\n"  +'Сделайте фотографию работающего короба справа, чтобы было видно изображение на коробе.')
    bot.register_next_step_handler(msg, getphoto_right_c, random_code)

def getphoto_right_c(message, random_code):
    if message.content_type != 'photo':
        msg_r = bot.reply_to(message, 'ЖСделайте фотограцию короба справа')
        bot.register_next_step_handler(msg_r, getphoto_right_c, random_code)
        return

    bot.forward_message(TO_CHAT_ID, message.chat.id, message.message_id)
    bot.send_message(TO_CHAT_ID, 'Фотография короба слева. КОД: ' + str(random_code))
    ts = message.date
    datetime_end = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(ts))
    bot.send_message(message.chat.id,
                              'Спасибо за ответы.')
    taxi_bd.update_datetime_end(datetime_end,random_code)


@bot.message_handler(content_types=["text"])

def all(message):
    idm = message.chat.id
    user_check = taxi_bd.check_user(idm)

    
    if message.text == ' Фото после заказа' and user_check is not None:
        print('Сценарий C: ' + message.text)
        scenario = 'Фото после заказа'
        idm = message.chat.id
        ts = message.date
        datetime_start = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(ts))
        first_name = message.chat.first_name
        user_name = message.chat.username
        last_name = message.chat.last_name
        random_code = random.randint(1, 99999999)

        msg = bot.send_message(message.chat.id,
                               'ШАГ 1 из 2' + "\n"  +'Сделайте фотографию работающего короба слева, чтобы было видно изображение на коробе.')
        taxi_bd.insert_taxi_anketa(random_code, idm, first_name, user_name, last_name, scenario, datetime_start)

        bot.register_next_step_handler(msg, getphoto_left_c, random_code)

    

if __name__ == '__main__':
    bot.polling(none_stop=True, timeout=60)
  • Вопрос задан
  • 483 просмотра
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Уберите декоратор отсюда
@bot.message_handler(content_types= ["photo"])
def getphoto_left_c(message, random_code):

и все должно работать
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы