• Предмет: Информатика
  • Автор: eremenkosasha07
  • Вопрос задан 4 месяца назад

Срочно!!! Узнать почему в строке main() и updater = Updater(TOKEN, use_context = True) ошибка. Даю 100 балов



import logging

import random

import time

from telegram.ext import Updater, CommandHandler




TOKEN = 'Token' #Я знаю что тут нужен мой токен, но не поставил его сюда для конфиденциальности или как то так


# Настройка логирования

logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)


# Словарь для хранения состояния зверька "Саня"

sanya_state = {

'hunger': 0, # Уровень "Отчимы"

}


# Обработчик команды /start

def start(update, context):

update.message.reply_text("Привет! Я твой зверёк Саня. Корми меня каждые 3 часа командой /feed.")


# Обработчик команды /feed

def feed(update, context):

sanya_state['hunger'] += random.randint(5, 25)

update.message.reply_text("Ммм, спасибо за еду! Моя шкала \"Отчимы\" пополнилась.")


# Функция для проверки уровня "Отчимы" и напоминания о кормежке

def check_hunger():

while True:

time.sleep(10800) # 3 часа = 3 * 60 * 60 секунд

if sanya_state['hunger'] >= 100:

# Зверёк умирает от голода ;(

print("Зверёк Саня умер от голода ;(")


break

else:

# Напоминаем о кормежке

print("Пора покормить зверька Саню!")




# Главная функция

def main():

updater = Updater(TOKEN, use_context = True)

dp = updater.dispatcher


# Добавляем обработчики команд /start и /feed

dp.add_handler(CommandHandler("start", start))

dp.add_handler(CommandHandler("feed", feed))


# Запускаем бота

updater.start_polling()


# Запускаем планировщик для проверки уровня "Отчимы"

check_hunger()


# Бот работает до принудительной остановки

updater.idle()


if __name__ == '__main__':

main()

Ответы

Ответ дал: volodimirf000
0

Объяснение:

Ошибка в строке main() и updater = Updater(TOKEN, use_context = True) вызвана тем, что аргумент use_context не поддерживается в версии python-telegram-bot 12.0.0 и старше. Чтобы исправить это, удалите аргумент use_context из строки updater = Updater(TOKEN, use_context = True).


eremenkosasha07: спасибо, а чем заменить?
volodimirf000: Аргумент use_context не может быть заменен чем-то еще. Просто вырежьте его с кода
eremenkosasha07: ок, спасибо
eremenkosasha07: updater = Updater(TOKEN) ?
volodimirf000: Да, контекст и так по умолчанию True, по этому этот аргумент не нужен
eremenkosasha07: к сожалению не помогло...
volodimirf000: Странно, должно было помочь
Вас заинтересует