@Vasiliy009

При одобрение или отказа от администраторского панеля, не отправляется ответ пользователю в телеграм бот?

После заполнений всех необходимой анкеты администратору отправляется анкета всеми веденными данными, после администратор должен одобрить либо отказать нажав на кнопку или написав боту, но после нечего не происходит, сообщение то что человек принят или отказан не отправляется пользователю, помогите решить эту проблему
Код
import telegram
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
from telegram import ReplyKeyboardMarkup, ReplyKeyboardRemove 
# Обработчик команды /start
ADMIN_ID = "ид админа котору отправляется заполненая анкета для отказа или одобрение" 
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=ADMIN_ID, 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 == "Одобрить":
        context.bot.send_message(message.chat.id,"Вы были приняты в семью, ожидаем вас у нашего дома пока нету")
    else:
        context.bot.send_message(message.chat.id,"К сожалению вы нам не подходите")
# Обработчик некорректных сообщений
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()
  • Вопрос задан
  • 37 просмотров
Пригласить эксперта
Ответы на вопрос 1
nki
@nki
bezkart.ru готовая система лояльности
def decision(update, context):
    message = update.message.text
    if message == "Одобрить":
        context.bot.send_message(message.chat.id,"Вы были приняты в семью, ожидаем вас у нашего дома пока нету")
    else:
        context.bot.send_message(message.chat.id,"К сожалению вы нам не подходите")

Следите за переменной mesage - сначала в нее записываете текст решения (одобрить или отказать), а затем из этой переменной message пытаетесь получить id чата, но там уже текст. Учтите, что вы пытаетесь таким образом отправить сообщение админу, а не пользователю, который заполнил анкету.
Ответ написан
Ваш ответ на вопрос

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

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