Главная страница
Навигация по странице:

  • smart_split

  • Теги. bot теги. Бот создан, настроен, но как его запустить Если сейчас мы перейдём в нашего бота и запустим его, то мы получим Ничего мы и не получим, т к. мы только создали бота


    Скачать 1.86 Mb.
    НазваниеБот создан, настроен, но как его запустить Если сейчас мы перейдём в нашего бота и запустим его, то мы получим Ничего мы и не получим, т к. мы только создали бота
    Дата22.10.2022
    Размер1.86 Mb.
    Формат файлаodt
    Имя файлаbot теги.odt
    ТипДокументы
    #747707
    страница12 из 27
    1   ...   8   9   10   11   12   13   14   15   ...   27

    Мои любимые треки


    Создайте бота, который после команды /start отправляет 2 callback-кнопки. Первая кнопка - мои любимые песни. Вторая - песни, которые мне не нравятся. При нажатии на первую кнопку отправляйте url-кнопки с ссылками на 2-3 ваших любимых трека. При нажатии на вторую кнопку отправляйте один трек, который вам не нравится.

    Пример работы бота:

    После нажатия на "Мои любимые треки!":



    После нажатия на "Ненавижу эти треки!":


    Изменение callback клавиатуры после нажатия


    Мы научились создавать callback кнопки на клавиатуре и получать callback.data, с помощью которых запускали какие-то участки кода. Также мы научились получать сообщения, имея под рукой только callback с помощью callback.message. Но что делать, если после нажатия на кнопку нам нужно изменить клавиатуру в этом сообщении, а не отправлять новое?

    Для этого мы будем использовать метод edit_message:

    bot.edit_message_text(chat_id=callback.message.chat.id, message_id=callback.message.id, text='Какой-то текст', reply_markup=some_keyboard) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Отправка больших сообщений


    Иногда вам необходимо отправлять сообщения, длина которых превышает 5000 символов. API Telegram не может обрабатывать такое количество символов в одном запросе, поэтому нам нужно разделить сообщение на несколько частей. Вот как это сделать с помощью API:

    from telebot import util large_text = open("large_text.txt", "rb").read() # Делим текст каждые 3000 символов. # split_string возвращает список с разделенным текстом. splitted_text = util.split_string(large_text, 3000) for text in splitted_text: bot.send_message(chat_id, text)

    Или вы можете использовать новую функцию smart_split, чтобы получить более значимые подстроки:

    from telebot import util large_text = open("large_text.txt", "rb").read() # Разбивает одну строку на несколько строк с максимальным количеством `символов на строку` (макс. 4096) # Разбиение происходит на '\n', '.' или ' ' именно с таким приоритетом. # smart_split возвращает список с разделенным текстом. splitted_text = util.smart_split(large_text, chars_per_string=3000) for text in splitted_text: bot.send_message(chat_id, text) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    1   ...   8   9   10   11   12   13   14   15   ...   27


    написать администратору сайта