kat-cr — это простое и гибкое приложение CLI и модуль узла, который ищет торренты на kat.cr. JSON API больше не полностью поддерживается Kickass Torrents, также отсутствует RSS-канал. Основная поисковая система на основе браузера, предоставляемая Kickass Torrents, предлагает большинство функций, поэтому это приложение использует ее для поиска торрентов.
Чтобы использовать приложение CLI, используйте
npm install -g kat-cr
Это установит исполняемый файл kickass
в ваш PATH
.
Чтобы использовать в качестве модуля, установите в свой проект с помощью
npm install --save kat-cr
Базовый поиск торрентов будет выглядеть примерно так:
kickass -c tv south park
В этом примере был передан необязательный флаг -c для указания категории поиска. kat.cr возвращает результаты поиска в наборах по 25 и ограничивает результаты до 10 000. Вы можете указать номер страницы, которую хотите вернуть, передав флаг -p. Итак, если вы хотите перейти на вторую страницу торрентов South Park TV, вы должны запустить
kickass south park -c tv -p 2
По умолчанию kickass
отображает прямые торрент-ссылки, но если вы укажете опцию -m
или --magnet
, возвращаемые ссылки будут магнитными ссылками. В качестве примера:
kickass south park -c tv -p 2 -m
Названия торрентов будут выделены жирным желтым шрифтом, если они опубликованы проверенным участником Kickass Torrents, а перед любыми торрентами, опубликованными элитным участником Kickass Torrents, будет стоять фиолетовый квалификатор ELITE
.
И это все, что нужно. По умолчанию приложение и модуль упорядочивают торренты по раздателям в порядке убывания. Чтобы изменить это поведение, передайте флаг -f/--field или флаг -s/--sorder (подробнее о возможных значениях этих параметров см. ниже). Обратите внимание: вам не обязательно заключать поисковый запрос, состоящий из нескольких слов, в кавычки.
Чтобы использовать этот модуль в своем приложении, установите его в свой проект и используйте
var kickass = require('kat-cr');
kat-cr
использует Promise API; вы можете выполнить базовый поиск с помощью
kickass('search query').then(function (results) {
// do something with results
}, function (err) {
// handle error
});
Вы можете выполнить расширенный поиск, передав в функцию объект вместо строки. Объект может содержать следующие ключи
search
{строка}: поисковый запрос.category
{строка}: Категория поиска.page
{номер}: номер страницы возвращаемых результатов.field
{строка}: поле, по которому сортируются результаты, по умолчанию — «сидеры». Другие возможности включают «time_add», «files_count», «size» и «личеры».sorder
{строка}: порядок отображения результатов, по умолчанию — «по убыванию». Альтернативно вы можете использовать «по возрастанию» Объект, разрешенный этим обещанием, предназначен для имитации ответа JSON, возвращаемого текущим функциональным JSON API Kickass Torrent, но фактический объект представляет собой пользовательский объект KickassResultGroup
, который на данном этапе не имеет никаких методов в своем прототипе, но содержит некоторые свойства, относящиеся ко всему результату поиска:
results.total_results
{number}: общее количество результатов торрентов.results.link
{строка}: всегда «http://kat.cr».results.language
{строка}: Используя этот модуль, вы всегда получите «en-us».results.list
{Array}: Массив, содержащий торренты и их информацию. Основная часть информации будет находиться в results.list
. Свойства торрент-объекта:
title
{строка}: Название торрента.category
{строка}: Категория торрента.link
{строка}: Ссылка на торрент-страницу на kat.cr.pubDate
{Date}: экземпляр Date, представляющий дату публикации торрента.torrentLink
{строка}: прямая http-ссылка на торрент-файл.magnetLink
{строка}: магнитная ссылка, связанная с торрентом.files
{number}: количество файлов, связанных с торрентом.comments
{number}: количество комментариев, полученных торрентом на kat.cr.hash
{number}: хеш-дайджест торрента.peers
{number}: количество пиров, связанных с торрентом.seeds
{число}: количество раздающих, связанных с торрентом.leechs
{number}: количество пиявок, загружающих торрент.size
{number}: Размер файлов, предоставляемых торрентом, в байтах.verified
{boolean}: был ли торрент опубликован проверенным пользователем Kickass Torrents.elite
{логическое значение}: был ли торрент опубликован элитным пользователем Kickass Torrents.id
{строка}: идентификатор торрента на kat.cr, который можно использовать для вызова функций API. Каждый элемент в results.list
на самом деле является объектом KickassResult
, прототип которого на данный момент имеет следующие методы:
KickassResult#getComments()
: возвращает обещание, которое разрешается с помощью массива объектов комментариев, у которых есть owner
и свойство comment
представляющее экранное имя автора комментария и содержимое комментария соответственно.KickassResult#getDetails()
: выполнить HTTP-запрос к выделенной веб-странице, связанной с результатом торрента, и вернуть обещание, которое разрешается с помощью объекта, содержащего дополнительные сведения о торренте. На этом этапе единственная дополнительная информация, предоставляемая разрешенным объектом, сохраняется в свойстве description
, которое содержит только текстовую версию описания торрента. Зарегистрируйте магнитную ссылку и получите комментарии к самому популярному торренту Южного парка:
kickass({
search: 'south park',
field: 'seeders',
sorder: 'desc',
category: 'tv'
}).then(function (results) {
console.log(results.list[0].magnetLink);
results.list[0].getComments().then(function (comments) {
// do something with comments
});
});
Ожидается, что URL-адрес Kickass Torrents изменится. Если он еще не обновлен, поместите новый URL в config/kickass-url.json
Всегда обновляйте свой глобальный пакет kat-cr
.
kat-cr — это модуль веб-скрапинга, поэтому он зависит от структуры поискового ответа Kickass Torrents, а также от текущего доменного имени торрент-сервера Kickass. В случае обновлений Kickass Torrents запустите
npm test
в каталоге проекта будет указано, что именно пошло не так при попытке преобразовать поисковый ответ Kickass Torrents в объект KickassResultGroup
, а участникам предлагается отправлять запросы на включение, исправляющие конечные точки API, имя домена или селекторы CSS.
Убедитесь, что mocha
установлен глобально и что вы запустили npm install
в каталоге проекта, прежде чем пытаться запустить тесты.
Исходный код полностью документирован. Чтобы собрать документацию, убедитесь, что пакет grunt-cli
установлен глобально и что вы запустили npm install
в каталоге проекта, а затем запустите
grunt
в каталоге проекта. Чтобы просмотреть документацию по исходному коду, откройте doc/index.html в своем любимом веб-браузере.
Массачусетский технологический институт. Не стесняйтесь изменять и распространять.
Раймонд Пулвер IV