Coder Social home page Coder Social logo

ninnjah / asyncopoisk Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 47 KB

Async wrapper for unofficial KinopoiskAPI

Home Page: https://pypi.org/project/asyncopoisk/

License: MIT License

Python 100.00%
api async asynchronous kinopoisk movies-api python-api

asyncopoisk's Introduction

PyPI - License PyPI - Version PyPI - Supported versions GitHub Actions Workflow Status

Это асинхронная обертка для Kinopoisk API Unofficial. Создавалась для личного пользования, так как удобной и асинхронной обертки найти не смог. Это был мой первый опыт в написании АПИ обертки, так что PR и Issue приветствуются!

Особенности

В обертки реализованы все методы, что были описаны в документации на момент 2023.21.12 структура запросов сделана так, чтобы минимально отличаться от документации самой АПИ

Начало работы

Перед использованием asyncopoisk вам нужно получить токен. Получить его можно на сайте Kinopoisk API Unofficial

Установите Asyncopoisk

pip install asyncopoisk

Далее создайте экземпляр обертки

from asyncopoisk import KinopoiskAPI
kp = KinopoiskAPI(token="TOKEN")

Теперь с помощью kp вы можете вызывать методы АПИ.

ВАЖНО так как обертка использует асинхронную httpx сессию, вызов всех методов должен происходить асинхронно

Примеры

Получить данные о фильме по kinopoisk id

import asyncio
from asyncopoisk import KinopoiskAPI


async def main(kp_token: str, kp_id: int):
    kp = KinopoiskAPI(token=kp_token)
    # Получаем фильм по id
    film = await kp.films(kp_id)


if __name__ == "__main__":
    asyncio.run(main(kp_token="TOKEN", kp_id=841700))

Получить данные о фильме по imdb id

import asyncio
from asyncopoisk import KinopoiskAPI


async def main(kp_token: str, imdb_id: str):
    kp = KinopoiskAPI(token=kp_token)
    # Получаем фильм по imdb id
    film = await kp.films(imdb_id=imdb_id)


if __name__ == "__main__":
    asyncio.run(main(kp_token="TOKEN", imdb_id="tt3659388"))

Получить список русских сериалов с рейтингом не ниже 6.5 от 2023 года

Номера стран и жанров можно получить используя метод films.filters()

from typing import List

import asyncio
from asyncopoisk import KinopoiskAPI
from asyncopoisk.models.enums import SearchOrder, SearchFilmType


async def main(
	kp_token: str, 
    countries: List[int],
    order: SearchOrder,
    type: SearchFilmType,
    rating_from: float,
    year_from: int,
):
    kp = KinopoiskAPI(token=kp_token)
    # Поиск по фильтрам
    film = await kp.films(
        countries=countries,
        order=order,
        type=type,
        rating_from=rating_from,
        year_from=year_from,
    )


if __name__ == "__main__":
    asyncio.run(
        main(
            kp_token="TOKEN", 
            countries = [34],
            order = SearchOrder.RATING,
            type = SearchFilmType.TV_SERIES,
            rating_from = 6.5,
            year_from = 2023,
        )
    )

Поиск по ключевому слову

import asyncio
from asyncopoisk import KinopoiskAPI
from asyncopoisk.models.enums import SearchOrder, SearchFilmType


async def main(kp_token: str, keyword: str):
    kp = KinopoiskAPI(token=kp_token)
    # Поиск по ключевому слову
    result = await kp.films.search_by_keyword(keyword=keyword)


if __name__ == "__main__":
    asyncio.run(
        main(
            kp_token="2d3c7c68-b288-4fbd-84d8-ccb68e495923",
            keyword="Марсианин",
        )
    )

Зависимости

asyncopoisk's People

Contributors

ninnjah avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.