M
M
Maria Hoffman2021-09-05 23:45:17
Python
Maria Hoffman, 2021-09-05 23:45:17

Python tg bot how to fix code?

I've had several fun bots. I want to make one. Everything works except for menus with cookies (I want the piece of code about cookies to work through IF. Tell me how to fix it, refine it. I will accept optimization tips, maybe someone will have ideas)

# -*- coding: utf8 -*-

import telebot
from telebot import types, TeleBot
import time
import random
from email import message

bot = telebot.TeleBot('...')

keyboard_language = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard_language.row('eng', 'rus')

keyboard_rus = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard_rus.row('шутка', 'печеньки', 'астро✨')

keyboard_eng = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard_eng.row('joke', 'cookies', 'astrology✨')


@bot.message_handler(commands=['start'])
def start_message(message):
    bot.send_message(message.chat.id,
                     'Привет  Я Люси. Давай поболтаем. Выбери язык\n\nHey  Im Lucy. Let’s talking! Choose language',
                     reply_markup=keyboard_language)


@bot.message_handler(content_types=['text'])
def send_text(message):
    if message.text.lower() == 'привет':
        bot.send_message(message.chat.id,
                         'Привет  Я Люси. Давай поболтаем. Выбери язык\nHey  Im Lucy. Let’s talking! Choose language',
                         reply_markup=keyboard_language)

    if message.text.lower() == 'rus':
        bot.send_message(message.chat.id,
                         'Окей! Буду рада поболтать с тобой. Я могу рассказать тебе шутку, дать несколько печенек с желаниями или мы можем обсудить астрологию :)',
                         reply_markup=keyboard_rus)

    if message.text.lower() == 'шутка':
        bot.send_message(message.chat.id, 'Дай подумать...Поперечный рассказывал что-то смешное, сейчас скину :)')
        time.sleep(3)  # Сон в 3 секунды
        bot.send_message(message.chat.id, random.choice([
                                                            'Хочу, чтобы всех мужчин гандболистов обязали играть без трусов. Чтобы прошло время, мужчины попытались возмутиться этому, а люди в твиттере писали: "Ебать, а вы думаете мы вас из-за гандбола смотрим? Нам смешно, как у вас писюльки в песке валяются!"',
                                                            'Услышал в каком-то треке панч "ты несёшь хуйню, будто муравьи" и настроение на весь день хорошее!',
                                                            'Сегодня мой мозг, не желающий монтировать второй день подряд, заставил меня пропылесосить диван, перебрать все носки на предмет выкинуть/оставить и зашить ниткой с иголкой разодранные углы лежанки моего пса, убедив меня в том, что эти дела гораздо важнее и первостепеннее монтажа.',
                                                            'Знаете, чего у нас не было в детстве? Сексуального образования. Я недавно задумался: мы поколение, где оно играет важную вещь, но на это положили болт. А потом все такие: «А почему у нас так много педофилов и зоофилов?» Потому что кот не убежит, с кем ещё решать этот вопрос?']))

    # if message.text.lower() == 'печеньки' or 'печеньки':

    if message.text.lower() == 'eng':
        bot.send_message(message.chat.id,
                         'Okey. We can talking about jokes, astrology or i can give u some cookies with predictions',
                         reply_markup=keyboard_eng)



    elif message.text.lower() == 'пока':
        bot.send_message(message.chat.id, 'Хорошего дня тебе! :)')


@bot.message_handler(content_types=['text'])
def inline_key(a):
    if a.text == 'печеньки':
        mainmenu = types.InlineKeyboardMarkup()
        key1 = types.InlineKeyboardButton(text='', callback_data='key1')
        key2 = types.InlineKeyboardButton(text='', callback_data='key2')
        key3 = types.InlineKeyboardButton(text='', callback_data='key3')
        key4 = types.InlineKeyboardButton(text='', callback_data='key4')
        key5 = types.InlineKeyboardButton(text='', callback_data='key5')
        key6 = types.InlineKeyboardButton(text='', callback_data='key6')
        key7 = types.InlineKeyboardButton(text='', callback_data='key7')
        key8 = types.InlineKeyboardButton(text='', callback_data='key8')
        key9 = types.InlineKeyboardButton(text='', callback_data='key9')
        mainmenu.add(key1, key2, key3, key4, key5, key6, key7, key8, key9)
        bot.send_message(a.chat.id, 'Выбери печеньку...', reply_markup=mainmenu)


@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
    if call.data == "mainmenu":
        mainmenu = types.InlineKeyboardMarkup()
        key1 = types.InlineKeyboardButton(text='', callback_data='key1')
        key2 = types.InlineKeyboardButton(text='', callback_data='key2')
        key3 = types.InlineKeyboardButton(text='', callback_data='key3')
        key4 = types.InlineKeyboardButton(text='', callback_data='key4')
        key5 = types.InlineKeyboardButton(text='', callback_data='key5')
        key6 = types.InlineKeyboardButton(text='', callback_data='key6')
        key7 = types.InlineKeyboardButton(text='', callback_data='key7')
        key8 = types.InlineKeyboardButton(text='', callback_data='key8')
        key9 = types.InlineKeyboardButton(text='', callback_data='key9')
        mainmenu.add(key1, key2, key3, key4, key5, key6, key7, key8, key9)
        bot.edit_message_text(text='Выбери печеньку...', chat_id=call.message.chat.id,
                              message_id=call.message.message_id, reply_markup=mainmenu)
    else:
        next_menu = types.InlineKeyboardMarkup()
        back = types.InlineKeyboardButton(text='✨', callback_data='mainmenu')
        next_menu.add(back)
        if call.data == "key1":
            text = 'Лучшее - враг хорошего.'
        elif call.data == "key2":
            text = 'Каждому причитается столько счастья, сколько сам в силах подарить.'
        elif call.data == "key3":
            text = 'Дорога в тысячу миль начинается с первого шага.'
        elif call.data == "key4":
            text = 'Один раз везет только дуракам. Умным везет всегда.'
        elif call.data == "key5":
            text = 'Цель определяет успех.'
        elif call.data == "key6":
            text = 'Секрет успешного продвижения — это начало.'
        elif call.data == "key7":
            text = 'Не позволяйте никому стоять на Вашем пути к счастью.'
        elif call.data == "key8":
            text = 'Если ты родился без крыльев — не мешай им расти.'
        elif call.data == "key9":
            text = 'Помните, что истинное партнерство может существовать только между цельными личностями.'

        bot.edit_message_text(text=text, chat_id=call.message.chat.id, message_id=call.message.message_id,
                              reply_markup=next_menu)


bot.polling(none_stop=True, interval=0)

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question