def main():
updater = Updater(
"Token"
)
dp = updater.dispatcher
dp.add_handler(CommandHandler("start", start))
dp.add_handler(MessageHandler(filters.text & ~filters.command, answer_questions))
dp.add_handler(MessageHandler(filters.regex(r"^(Одобрить|Отказать)$"), decision))
dp.add_handler(MessageHandler(filters.all, handle_invalid_message))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
при попытке запуска выводит ошибку
File "d:\CARTIER GANG BOT\main.py", line 108, in <module>
main()
File "d:\CARTIER GANG BOT\main.py", line 97, in main
updater = Updater(
TypeError: Updater.__init__() missing 1 required positional argument: 'update_queue'
добавляю это
updater = Updater(
"Token", update_queue=telegram.ext.Queue()
)
После выводит ошибку
Traceback (most recent call last):
File "d:\CARTIER GANG BOT\main.py", line 108, in
main()
File "d:\CARTIER GANG BOT\main.py", line 98, in main
"Token", update_queue=telegram.ext.Queue()
AttributeError: module 'telegram.ext' has no attribute 'Queue'
Но после прописал use_context=True так как она мне нужна
updater = Updater(
"Token", use_context=True
)
после выводит ошибку
Traceback (most recent call last):
File "d:\CARTIER GANG BOT\main.py", line 108, in
main()
File "d:\CARTIER GANG BOT\main.py", line 97, in main
updater = Updater(
TypeError: Updater.__init__() got an unexpected keyword argument 'use_context'
Сможете помочь почему эти ошибки выходят?
В новой версии импортирование Filters не рабоает, если вместо F написать f то проблема не выходит
Traceback (most recent call last):
File "d:\CARTIER GANG BOT\main.py", line 2, in
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
ImportError: cannot import name 'Filters' from 'telegram.ext'
Может быть из за этого выводит ошибку, и сейчас я когда убрал use_context просит update_queue, с той же ошибкой
Traceback (most recent call last):
File "d:\CARTIER GANG BOT\main.py", line 108, in
main()
File "d:\CARTIER GANG BOT\main.py", line 97, in main
updater = Updater(
TypeError: Updater.__init__() missing 1 required positional argument: 'update_queue'
Или же связано с другой стороны кода, вот весь код
spoilerimport telegram
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
from telegram import ReplyKeyboardMarkup, ReplyKeyboardRemove
# Обработчик команды /start
def start(update, context):
reply_text = "Здарова, я как понял ты хочешь вступить в нашу семью CARTIER GANG?\n" \
"Отлично, но тут у нас принимаются по определенным критериям\n" \
"Ответь на вопросы, если ты нам подходишь мы примим тебя в нашу семью CARTIER GANG"
reply_markup = ReplyKeyboardMarkup([["Согласен"]], one_time_keyboard=True)
update.message.reply_text(reply_text, reply_markup=reply_markup)
# Обработчик ответа пользователя на вопросы
def answer_questions(update, context):
message = update.message.text
if message == "Согласен":
context.user_data["username"] = None
context.user_data["years_in_state"] = None
context.user_data["lawfulness"] = None
context.user_data["rp_terms"] = None
context.user_data["age"] = None
context.user_data["adequacy_help"] = None
reply_text = "Для начала мне бы узнать твой ник в игре\nПример: Mahmud_Uzbekov"
update.message.reply_text(reply_text)
elif context.user_data["username"] is None:
if "_" not in message:
update.message.reply_text("Напиши свой ник через _")
elif any(char.isdigit() for char in message):
update.message.reply_text("В твоем нике не должна быть цифра")
else:
context.user_data["username"] = message
update.message.reply_text(f"{message}\nАха, запомнил")
reply_text = "Следующий вопрос, сколько лет проживаете в штате?\nОткрой инвентарь и посмотрите через паспорт"
update.message.reply_text(reply_text)
elif context.user_data["years_in_state"] is None:
if not message.isdigit():
update.message.reply_text("К сожалению ты нам не подходишь, так как ты в нашем штате недавно, и еще не ознакомлен с местностью")
elif int(message) < 5:
update.message.reply_text("К сожалению ты нам не подходишь, так как ты в нашем штате недавно, и еще не ознакомлен с местностью")
else:
context.user_data["years_in_state"] = message
update.message.reply_text("То что нужно, продолжаем вопрос")
reply_text = "Скажи ка мне свое законопослушность\nОткрой инвентарь и посмотрите через паспорт"
update.message.reply_text(reply_text)
elif context.user_data["lawfulness"] is None:
if not message.isdigit():
update.message.reply_text("К сожалению ты нам не подходишь, так как нам нужны законный члены семьи")
elif int(message) < 50:
update.message.reply_text("К сожалению ты нам не подходишь, так как нам нужны законный члены семьи")
else:
context.user_data["lawfulness"] = message
update.message.reply_text("Молодец не нарушаешь")
reply_text = "Теперь проверим твои знание на РП термины\n" \
"Что означает СК, ДМ, ТК - Напиши кратко и понятно"
update.message.reply_text(reply_text)
elif context.user_data["rp_terms"] is None:
context.user_data["rp_terms"] = message
update.message.reply_text("Хорошо, записал твой ответ")
reply_text = "Скажи ка свой возраст в реальности"
update.message.reply_text(reply_text)
elif context.user_data["age"] is None:
if not message.isdigit():
update.message.reply_text("К сожалению ты мал для нашей семьи")
elif int(message) < 14:
update.message.reply_text("К сожалению ты мал для нашей семьи")
else:
context.user_data["age"] = message
update.message.reply_text("Так-с записал")
reply_text = "Как вы оцениваете свое адекватность и будете ли помогать развивать семью?"
update.message.reply_text(reply_text)
elif context.user_data["adequacy_help"] is None:
context.user_data["adequacy_help"] = message
update.message.reply_text("И это тоже записал")
reply_text = "Теперь ожидайте одобрение от старшего в семье, мы сообщим вам если вас одобрят"
update.message.reply_text(reply_text)
# Отправка информации старшим пользователям
user_info = f"1.Ник: {context.user_data['username']}\n" \
f"2.В штате: {context.user_data['years_in_state']}\n" \
f"3.Законопослушности: {context.user_data['lawfulness']}\n" \
f"4.Рп термин: {context.user_data['rp_terms']}\n" \
f"5.Возраст: {context.user_data['age']}\n" \
f"Адекват и помощь: {context.user_data['adequacy_help']}"
context.bot.send_message(chat_id="@aziz_muhammadjonov", text=user_info)
context.bot.send_message(chat_id="@Akmal2337", text=user_info)
reply_markup = ReplyKeyboardMarkup([["Одобрить", "Отказать"]], one_time_keyboard=True)
update.message.reply_text("Ожидайте одобрение...", reply_markup=reply_markup)
# Обработчик кнопок "Одобрить" и "Отказать"
def decision(update, context):
message = update.message.text
if message == "Одобрить":
reply_text = "Вы были приняты в семью, ожидаем вас у нашего дома пока нету"
else:
reply_text = "К сожалению вы нам не подходите"
update.message.reply_text(reply_text, reply_markup=ReplyKeyboardRemove())
# Обработчик некорректных сообщений
def handle_invalid_message(update, context):
update.message.reply_text("Извините, я не понимаю ваш ответ.")
def main():
updater = Updater(
"Token"
)
dp = updater.dispatcher
dp.add_handler(CommandHandler("start", start))
dp.add_handler(MessageHandler(Filters.text() & ~Filters.command, answer_questions))
dp.add_handler(MessageHandler(Filters.regex(r"^(Одобрить|Отказать)$"), decision))
dp.add_handler(MessageHandler(Filters.all, handle_invalid_message))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()