1.3.10 • Published 10 months ago

@openmoviedb/kinopoiskdev_client v1.3.10

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

TS/JS клиент для kinopoisk.dev API (@openmoviedb/kinopoiskdev_client)

Эта библиотека позволяет взаимодействовать с неофициальным API kinopoisk, обеспечивая удобный доступ к таким сущностям как:

  • Фильмы (movie)
  • Сезоны (season)
  • Персоны (person)
  • Ключевые слова (keyword)
  • Студии (studio)
  • Изображения (image)
  • Отзывы (review)

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

  1. Получите токен у телеграм бота @kinopoiskdev_bot.
  2. Изучите документацию. Она выполнена в формате OpenAPI и поможет вам понять, какие данные можно получить и какие параметры можно передать в запросе.

Установка

Установите библиотеку через npm:

npm i @openmoviedb/kinopoiskdev_client

или yarn:

yarn add @openmoviedb/kinopoiskdev_client

Использование

Сначала инициализируйте клиент и передайте в него ваш токен:

import { KinopoiskDev } from '@openmoviedb/kinopoiskdev_client';

const kp = new KinopoiskDev('ВАШ ТОКЕН');

Взаимодействие с сущностями

После инициализации клиента вы можете начать взаимодействовать с различными сущностями. Вот пример того, как можно получить информацию о фильме по его ID:

const {data} = await kp.movie.getById(666);
console.log(data);

Использование Query Builder

QueryBuilder это специальный инструмент, который помогает вам создавать сложные запросы без написания их вручную. QueryBuilder позволяет вам добавлять различные параметры в ваш запрос, такие как сортировка, фильтрация, пагинация и выбор конкретных полей для возвращения. Этот инструмент валидирует поля, которые вы передаете, и подсвечивает подсказки, что облегчает использование.

Вот пример использования QueryBuilder для получения списка фильмов с определенными параметрами:

import {
  KinopoiskDev,
  MovieQueryBuilder,
  SPECIAL_VALUE,
  SORT_TYPE,
} from '@openmoviedb/kinopoiskdev_client';

const kp = new KinopoiskDev('ВАШ ТОКЕН');

const getRelatedByQueryBuilderMovies = async () => {
  const queryBuilder = new MovieQueryBuilder();

  const query = queryBuilder
    .select(['id', 'name', 'rating', 'poster', 'year'])
    .filterRange('year', [2020, 2023])
    .filterRange('rating.kp', [7.5, 10])
    .filterExact('poster.url', SPECIAL_VALUE.NOT_NULL)
    .sort('rating.kp', SORT_TYPE.DESC)
    .paginate(1, 10)
    .build();

  const { data, error, message } = await kp.movie.search(query);

  console.log(data, error, message);
};

getRelatedByQueryBuilderMovies();

Обратите внимание, что QueryBuilder совместим с axios и другими HTTP клиентами. Если вам нужно использовать другой HTTP клиент, вы можете сделать это. Библиотека предоставляет все необходимые типы для этого.

Также вы можете взаимодействовать с API без использования QueryBuilder, просто составив запрос самостоятельно или в интерфейсе документации API. Пример:

import { KinopoiskDev, Filter, MovieFields } from '@openmoviedb/kinopoiskdev_client';

const kp = new KinopoiskDev('ВАШ ТОКЕН');

const getRelatedWithoutQueryBuilderMovies = async () => {
  const query: Filter<MovieFields> = {
    selectFields: ['id', 'name', 'rating', 'poster', 'year'],
    year: '2020-2023',
    'rating.kp': '7.5-10',
    'poster.url': '!null',
    sortField: 'rating.kp',
    sortType: '-1',
    page: 1,
    limit: 10,
  };

  const { data, error, message } = await kp.movie.getByFilters(query);

  console.log(data, error, message);
};

getRelatedWithoutQueryBuilderMovies();

Подробные примеры

Для более детальных примеров использования библиотеки, пожалуйста, обратитесь к директории examples в репозитории проекта. Там вы найдете примеры работы с каждой из доступных сущностей.

1.3.10

10 months ago

1.3.9

10 months ago

1.3.8

10 months ago

1.3.7

11 months ago

1.3.6

11 months ago

1.3.5

11 months ago

1.3.4

11 months ago

1.3.3

11 months ago

1.3.2

11 months ago

1.3.1

11 months ago

1.3.0

11 months ago

1.0.0

11 months ago