@Baga12324
Учу Python

Где ошибка в коде?

Ошибка в том что бот ничего не присылает и никак не реагирует на 'поцеловать'

rp=bool

@bot.message_handler(commands=['rp'])
def RP(message):
    global rp
    try:
        mod=mode(message.text)
        if mod == 'on':
            bot.reply_to(message, 'RP включен!')
            rp = True
        elif mod == 'off':
            bot.reply_to(message, 'RP выключен!')
            rp = False
    except:
        bot.reply_to(message, parse_mode='html', text=f'<b> \n{message.from_user.first_name} укажите параметр!</b> (<code>on</code>/<code>off</code>)')


@bot.message_handler(content_types='text')
def rp(message):
    global rp
    if rp == True:
        try:
            if message.text.lower() == 'Поцеловать':
                poc = open('D:\GX download\gifs\poc.gif' , 'rb')
                bot.send_video(message.chat.id, poc, caption=f'\n{message.from_user.first_name} поцеловал {message.reply_to_message.from_user.first_name}')
                poc.close()
        except:
            bot.reply_to(message, parse_mode='html', text=f'<b> \n{message.from_user.first_name} ошибка!</b>')
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
GavriKos
@GavriKos
Чувак, второй вопрос за час - может стоит учебник открыть?
По вопросу - lower приводит к нижнему регистру, а сравниваешь ты с текстом в котором есть буквы верхнего регистра.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
yupiter7575
@yupiter7575
Python программист
Из уважения к людям, которые будут смотреть на последующие вопросы автора, напишу:
rp=bool

Вы создали новый класс! Жаль что вы потом его нигде не использовали и это строка так и останется говнокодом
global rp

Всегда мечтал посмотреть в глаза тому самоучке, который в своем "БлОг пО PyThOn", так уродует код.
УДАЛИТЕ этот ужас из кода...

В прошлом вопросе уже писали что лучше сделать проверку на none и убрать проверку на ошибку. А если у вас в коде будет какая то не предвиденная ошибка? Например сервер разорвал соединение, то у вас все равно будет работать код, который без соединения работать не будет.

Да кстати, вам нормально с двумя функциями у которых одинаковые названия? Ну ну
Мало того что у вас уже обьявлена глобальная переменная, так вы еще раз ее обьявляете! Мне жаль ваш интерпретатор...

if rp == True:

Вы знали что можно просто написать if rp: ?

Еще один try except не в тему...

poc = open('D:\GX download\gifs\poc.gif' , 'rb')

Пишите ботов - самое время знать, что в python'e открывают файлы через with ... as

p.s. Прочитайте хотя бы укус питона, для общего развития
Ответ написан
Ваш ответ на вопрос

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

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