Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

kp_api

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

kp_api

  • 0.10.2
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

КиноПоиск API (Gem)

Build Status Gem Version Dependency Status Maintainability

Этот gem создан для упрощения работы с КиноПоиск API в проектах на Ruby. Гем работает через API от кинопоиска. Используется соответственно не официально, прикидываясь андроидом.

Что нового

  • Изменено название гема.
  • Восстановлена работа API использует последнюю версию подписи 5.0.0.
  • Написаны тесты.
  • Добавлен travis-ci.

Установка

Добавьте эту строку в Gemfile вашего приложения:

gem 'kp_api'

Затем выполните:

$ bundle

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

Глобальные функции

api = KpApi::[Class] 
api.status 
#   > true  [Получена следующая станица]
#   > false [Достигли конца пагинации]
#   Оригинальный хеш кинопоиска
api.data 
#   Оригинальный хеш кинопоиска (используется в некоторых классах для дополнительного запроса). 
#   Пример: film.peoples_full)
api.data2 
#   Статус парсинга json 
#   Boolean
api.status 
#   Статус парсинга json дополнительного запроса.
#   Boolean
api.status2

Исключения

При ошибке выбрасывается исключение KpApi::ApiError. Доступные методы.

# http код ответа
e.code
=> "404"
# Тело ответа
e.body
=> [key:false]

Классы

Практически каждый метод имеет отдельный класс. При инициализации класса выполняется запрос к АПИ, возвращая текущий объект или исключение.

Фильм
film = KpApi::Film.new(film_id)
#   Вся информация о фильме(включая rating, rent, budget).
film.view
# Рейтинги фильма и т.д.
film.rating
# Даты премьер и т.д.
film.rent
# Бюджет и сборы.
film.budget
# Люди связанные с фильмом(Не полный список, смотрите ниже).
film.peoples
# Люди связанные с фильмом(Полный список). Генерирует новый запрос к API.
film.peoples_full
Люди(Режиссеры, актеры, операторы и т.д.).

Сервер не выдаёт 404 на не существующего человека. Исключение реализовано проверкой(NameRu, nameEn).

people = KpApi::People.new(people_id)
# Детальная информация о человеке.
people.view
# Фильмы связанные с конкретным человеком.
people.films
# Массив id фильмов связанных с конкретным человеком.
people.films_ids
Категории

Список категорий, не понятно для чего нужен параметр country_id, но без него не проходит запрос. По умолчанию 2(Россия).

category = KpApi::Category.new(country_id=2)
# Страны
category.countries
# Города (требует доп. запроса)
category.cities
# Жанры
category.genres
Сегодня в кино

Список фильмов идущих сегодня в кино. Если города не существует возвращает пустой массив.

  • Параметр city_id не обязательный, по умолчанию 1(Москва).
  • Параметр country_id не обязательный, по умолчанию 2(Россия). Возможно не используется, т.к. первый уникальный, но приложение передает его в заголовках.

Доступны только эти страны:

  • 2 - Россия
  • 62 - Украина
  • 69 - Беларусь
  • 122 - Казахстан
  • 71 - Узбекистан
today = KpApi::Today.new(city_id=1, country_id=2)
#   Список фильмов
today.view
#   Массив id фильмов
today.film_ids

Поиск

Глобальный поиск
search = KpApi::GlobalSearch.new('Бразилия')
#   Найдено ли что-нибудь
search.found?
#   Количество найденных фильмов
search.films_count
#   Количество найденных фильмов
search.peoples_count
#   Скорее всего вы искали этот фильм
search.youmean
#   Остальные найденные фильмы(лимит: 3)
search.films
#   Или даже этих людей
search.peoples
Поиск по фильмам
search = KpApi::FilmSearch.new('Привет')
#   Найдено ли что-нибудь)
search.found?
#   Список фильмов (не более 20)
search.view
#   Количество найденных фильмов
search.films_count
#   Текущая страница
search.current_page
#   Количество страниц
search.page_count
#   Следующая страница(новый запрос к АПИ)
search.next_page
#   > true  [Получена следующая станица]
#   > false [Достигли конца пагинации]
Поиск по людям
search = KpApi::PeopleSearch.new('Андрей')
#   Список людей (не более 20)
search.view
#   Количество найденных фильмов
search.peoples_count
#   Текущая страница
search.current_page
#   Количество страниц
search.page_count
#   Следующая страница
search.next_page
#   > true  [Получена следующая станица]
#   > false [Достигли конца пагинации]
Живой поиск
search = KpApi::PeopleSearch.new('Анд')
#   Найдено ли что-нибудь)
search.found?
#   Массив фильмов/людей в перемешку
# (@todo удалить неиспользуемые поля)
search.items

Топы

Списки лучших

Пока реализованны только:

  • :popular_films
  • :best_films
  • :await_films
  • :popular_people
top = KpApi::Top.new(:popular_films)
#   Массив топов (ограничение 20)
top.view
#   Массив хешей топов (рекурсивно идём по пагинации)
top.view_all(limit=15)
#   Массив Integer топа (рекурсивно идём по пагинации)
top.view_all(limit=15)
Поиск по рейтингу

@todo

Благодарность

Всем кто связывался со мной и помог разобраться с алгоритмом.

License

The gem is available as open source under the terms of the MIT License.

FAQs

Package last updated on 22 Dec 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc