kinopoisk_unofficial.client.exception.bad_request.BadRequest

бот телеграмм 1 раз отвечает на запрос к кинопоиску, далее надо перезапускать, чтобы работало. Выдает такую ошибку: kinopoisk_unofficial.client.exception.bad_request.BadRequest





from aiogram import Bot, Dispatcher, executor, types
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
from aiogram.types import Message
import logging
import sqlite3
import config
import keyboard
from telnetlib import TELNET_PORT
from aiogram.types import ReplyKeyboardRemove, \
    ReplyKeyboardMarkup, KeyboardButton, \
    InlineKeyboardMarkup, InlineKeyboardButton
from yarl import URL

from kinopoisk_unofficial.kinopoisk_api_client import KinopoiskApiClient
from kinopoisk_unofficial.model.filter_country import FilterCountry
from kinopoisk_unofficial.model.filter_order import FilterOrder
from kinopoisk_unofficial.model.filter_genre import FilterGenre
from kinopoisk_unofficial.request.films.film_search_by_filters_request import FilmSearchByFiltersRequest
from kinopoisk_unofficial.kinopoisk_api_client import KinopoiskApiClient
from kinopoisk_unofficial.request.films.film_request import FilmRequest


ids = 0
zanr = str()
zik = 0
TOKEN = config.TOKEN1
CHANNEL_ID = config.CHANNEL_ID

bot = Bot(token=TOKEN)
dp = Dispatcher(bot)

api_client = KinopoiskApiClient(config.APITOKEN)

def check_sub_channel(chat_member):
    if chat_member['status'] != 'left':
        return True
    else:
        return False

@dp.message_handler(commands=['start'])
async def process_start_command(message: types.Message):
    if message.chat.type == 'private':
        if check_sub_channel(await bot.get_chat_member(chat_id=CHANNEL_ID, user_id=message.from_user.id)):
            await bot.send_message(message.from_user.id, "Cпасибо, вот наш функционал?", reply_markup=keyboard.homemenu)
        else:
            await bot.send_message(message.from_user.id, "Привет, чтобы начать пользоваться нашим ботом, подпишись на эти каналы?" , reply_markup=keyboard.checksub)

@dp.message_handler()
async def bot_message(message: types.Message):
    global ids
    global zanr
    if message.text == 'ПОДПИСАЛСЯ':
        await bot.delete_message(message.from_user.id, message.message.message_id)
        if check_sub_channel(await bot.get_chat_member(chat_id=CHANNEL_ID, user_id=message.from_user.id)):
            await bot.send_message(message.from_user.id, "Cпасибо, вот наш функционал?", reply_markup=keyboard.homemenu)
        else:
            await bot.send_message(message.from_user.id, "Привет, чтобы начать пользоваться нашим ботом, подпишись на эти каналы?" , reply_markup=keyboard.checksub)
    elif message.text == 'ЧТО ПОСМОТРЕТЬ??':
        await bot.send_message(message.from_user.id, "Какой жанр хочешь посмотреть?", reply_markup=keyboard.firstquestion)
    elif message.text == 'Комедия':
        zanr = 'комедия'
        ids=13
        await bot.send_message(message.from_user.id, "Кинопроизводство какой страны интересно вам?", reply_markup=keyboard.strana)
    elif message.text == 'Ужасы':
        zanr = 'ужасы'
        ids = 17
        await bot.send_message(message.from_user.id, "Кинопроизводство какой страны интересно вам?", reply_markup=keyboard.strana)
    elif message.text == 'Мультфильмы':
        zanr = 'мультфильм'
        ids = 18
        await bot.send_message(message.from_user.id, "Кинопроизводство какой страны интересно вам?", reply_markup=keyboard.strana)
    elif message.text == 'Фантастика':
        zanr = 'фантастика'
        ids = 6
        await bot.send_message(message.from_user.id, "Кинопроизводство какой страны интересно вам?", reply_markup=keyboard.strana)
    elif message.text == 'Триллеры':
        zanr = 'триллер'
        ids = 1
        await bot.send_message(message.from_user.id, "Кинопроизводство какой страны интересно вам?", reply_markup=keyboard.strana)
    elif message.text == 'Боевики':
        zanr = 'боевики'
        ids = 11
        await bot.send_message(message.from_user.id, "Кинопроизводство какой страны интересно вам?", reply_markup=keyboard.strana)
    elif message.text == 'Мелодрамы':
        zanr = 'мелодрама'
        ids = 4
        await bot.send_message(message.from_user.id, "Кинопроизводство какой страны интересно вам?", reply_markup=keyboard.strana)
    elif message.text == 'Детективы':
        zanr = 'детективы'
        ids = 5
        await bot.send_message(message.from_user.id, "Кинопроизводство какой страны интересно вам?", reply_markup=keyboard.strana)
    elif message.text == 'Приключения':
        zanr = 'приключения'
        ids = 7
        await bot.send_message(message.from_user.id, "Кинопроизводство какой страны интересно вам?", reply_markup=keyboard.strana)
    elif message.text == 'Фэнтази':
        zanr = 'фэнтази'
        ids = 12
        await bot.send_message(message.from_user.id, "Кинопроизводство какой страны интересно вам?", reply_markup=keyboard.strana)
    elif message.text == 'Военные':
        zanr = 'военный'
        ids = 14
        await bot.send_message(message.from_user.id, "Кинопроизводство какой страны интересно вам?", reply_markup=keyboard.strana)
    elif message.text == 'Семейные':
        zanr = 'семейный'
        ids = 19
        await bot.send_message(message.from_user.id, "Кинопроизводство какой страны интересно вам?", reply_markup=keyboard.strana)
    elif message.text == 'США':
        print(ids)
        stran = 'США'
        global zik
        zik = 0
        request = FilmSearchByFiltersRequest()
        request.add_genre(FilterGenre(int(ids),str(zanr)))
        request.order = FilterOrder.RATING
        request.year_from = 2017
        request.add_country(FilterCountry(1, 'США'))

        response = api_client.films.send_film_search_by_filters_request(request)

        kod = (response.items[zik].kinopoisk_id )

        request = FilmRequest(kod)
        response = api_client.films.send_film_request(request)
        namefilm = (response.film.name_ru)
        opisanie = (response.film.short_description)
        img = (response.film.poster_url)

    
        
        
        await bot.send_message(message.from_user.id, f'Вот фильм, который ты можешь посмотреть?\n \n {namefilm} \n \n {opisanie}\n\n\n {img}' , reply_markup=keyboard.viborfilm)
    elif message.text == 'Другой фильм':
        
        zik = zik + 1
        request = FilmSearchByFiltersRequest()
        request.add_genre(FilterGenre(int(ids),str(zanr)))
        request.order = FilterOrder.RATING
        request.year_from = 2017
        request.add_country(FilterCountry(1, 'США'))

        response = api_client.films.send_film_search_by_filters_request(request)

        kod = (response.items[zik].kinopoisk_id )

        request = FilmRequest(kod)
        response = api_client.films.send_film_request(request)
        namefilm = (response.film.name_ru)
        opisanie = (response.film.short_description)
        img = (response.film.poster_url)

    
        
        
        await bot.send_message(message.from_user.id, f'Вот фильм, который ты можешь посмотреть?\n \n {namefilm} \n \n {opisanie}\n\n\n {img}' , reply_markup=keyboard.viborfilm)




if __name__ == '__main__':
    executor.start_polling(dp, skip_updates=True)





Ответы (0 шт):