@txreser

Не получается присоединить api и текст пользователя Telegram Bot?

нужно сделать чтобы пользователь отправлял сообщение и api искало и отправляло сообщение пользователю
import telebot 
import random 
from telebot import types 
bot = telebot.TeleBot("token") 
keyboard = telebot.types.ReplyKeyboardMarkup(True) 
keyboard.row('Фильмы') 
from kinopoisk_api import KP 
 
kinopoisk = KP(token='token') 
search = kinopoisk.search("") 
for item in search: 
    print(item.ru_name, item.year) 
    print(", ".join(item.genres)) 
    print(", ".join(item.countries)) 
 
@bot.message_handler(commands=["start"]) 
def start(m, res=False): 
        # Добавляем две кнопки 
        markup=types.ReplyKeyboardMarkup(resize_keyboard=True) 
        item1=types.KeyboardButton('Фильмы') 
        item2=types.KeyboardButton("Аниме") 
        markup.add(item1) 
        markup.add(item2) 
        bot.send_message(m.chat.id,'нажми: \n\n ', reply_markup=markup) 
@bot.message_handler(content_types=['text']) 
def after_text(message): 
    if message.text == 'Фильмы': 
        bot.send_message(message.from_user.id, ' Введите название фильма:   ' , reply_markup =keyboard) 
     
bot.polling(none_stop=True, interval=0)
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
@Novenkij
1) Нужно создать функцию, которая будет искать фильмы. Например
kinopoisk = KP(token='token') 
    def find_film(query):
    search = kinopoisk.search(query) 
    return search

2) Нужно обработать сообщение, которое пришло от пользователя и вызвать функцию с передачей в нее текста
...
list_of_films = find_film(message.text)

3) Нужно отправить пользователю сообщение со тем, что есть в списке list_of_films или сообщение, что ничего не нашлось, если список пустой.

Удачи!

PS.
bot.send_message(message.from_user.id, ' Введите название фильма:   ' , reply_markup =keyboard)

тут reply_markup =keyboard лишнее, так как от пользователя ожидается не нажатие кнопки, а произвольный текст.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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