kat-cr es una aplicación CLI simple y flexible y un módulo de nodo que busca torrents en kat.cr. La API JSON ya no es totalmente compatible con Kickass Torrents y también falta el feed RSS. El principal motor de búsqueda basado en navegador proporcionado por Kickass Torrents ofrece la mayor cantidad de funciones, por lo que es lo que utiliza esta aplicación para buscar torrents.
Para utilizar la aplicación CLI, utilice
npm install -g kat-cr
Esto instalará un kickass
ejecutable en su PATH
.
Para usarlo como módulo, instálelo en su proyecto con
npm install --save kat-cr
Una búsqueda básica de torrents se vería así
kickass -c tv south park
En este ejemplo, se pasó el indicador opcional -c para especificar la categoría de búsqueda. kat.cr devuelve resultados de búsqueda en conjuntos de 25 y limita los resultados a 10000. Puede especificar el número de página que desea obtener pasando el indicador -p. Entonces, si quisieras ir a la segunda página de torrents de South Park TV, ejecutarías
kickass south park -c tv -p 2
De forma predeterminada, kickass
mostrará enlaces directos de torrents, pero si proporciona la opción -m
o --magnet
, los enlaces devueltos serán enlaces magnéticos. Como ejemplo:
kickass south park -c tv -p 2 -m
Los títulos de los torrents se mostrarán en negrita amarilla si son torrents publicados por un miembro verificado de Kickass Torrents, y habrá un calificador ELITE
morado antes de cualquier torrent publicado por un miembro elite de Kickass Torrents.
Y eso es todo. La aplicación y el módulo ordenan los torrents por seeders en orden descendente de forma predeterminada. Para cambiar este comportamiento, pase el indicador -f/--field o el indicador -s/--sorder (detalles sobre los posibles valores para estas opciones a continuación). Tenga en cuenta que no es necesario que escriba una consulta de búsqueda de varias palabras entre comillas.
Para usar este módulo en su aplicación, instálelo en su proyecto y use
var kickass = require('kat-cr');
kat-cr
utiliza una API de promesa; puedes realizar una búsqueda básica con
kickass('search query').then(function (results) {
// do something with results
}, function (err) {
// handle error
});
Puede realizar una búsqueda avanzada pasando un objeto a la función en lugar de una cadena. El objeto puede contener las siguientes claves.
search
{cadena}: la consulta de búsquedacategory
{cadena}: la categoría de búsquedapage
{número}: el número de página de los resultados devueltos.field
{cadena}: el campo por el cual se ordenan los resultados, el valor predeterminado es 'seeders'. Otras posibilidades incluyen 'time_add', 'files_count', 'size' y 'leechers'sorder
{cadena}: el orden en que se muestran los resultados, el valor predeterminado es 'desc'. Alternativamente puedes usar 'asc' El objeto resuelto por esta promesa está diseñado para imitar la respuesta JSON devuelta por la API Kickass Torrent JSON actualmente deficiente en funciones, pero el objeto real es un objeto KickassResultGroup
personalizado, que en esta etapa no tiene ningún método en su prototipo, pero contiene algunas propiedades relevantes para todo el resultado de la búsqueda:
results.total_results
{número}: la cantidad total de resultados de torrentresults.link
{cadena}: Siempre 'http://kat.cr'results.language
{string}: Al usar este módulo, siempre obtendrás 'en-us'results.list
{Array}: una matriz que contiene los torrents y su información. La mayor parte de la información estará en results.list
. Las propiedades de un objeto torrent son:
title
{string}: El título del torrentcategory
{cadena}: La categoría de torrentlink
{string}: El enlace a la página de torrent en kat.crpubDate
{Fecha}: una instancia de Fecha que representa la fecha en que se publicó el torrenttorrentLink
{string}: el enlace http directo al archivo torrentmagnetLink
{string}: el enlace magnético asociado con el torrentfiles
{número}: La cantidad de archivos asociados con el torrentcomments
{número}: La cantidad de comentarios que recibió el torrent en kat.crhash
{número}: un resumen hash del torrentpeers
{número}: la cantidad de pares asociados con el torrentseeds
{número}: La cantidad de seeders asociados al torrentleechs
{número}: La cantidad de sanguijuelas que descargan el torrentsize
{número}: El tamaño de los archivos proporcionados por el torrent, en bytesverified
{booleano}: si el torrent fue publicado o no por un usuario verificado de Kickass Torrentselite
{boolean}: si el torrent fue publicado o no por un usuario elite de Kickass Torrentsid
{string}: el ID de torrent en kat.cr que se puede usar para llamar a funciones API Cada elemento en results.list
es en realidad un objeto KickassResult
, que actualmente tiene los siguientes métodos en su prototipo:
KickassResult#getComments()
: Devuelve una promesa que se resuelve con una matriz de objetos de comentario, que tienen un owner
y una propiedad comment
que representa el nombre de pantalla del autor del comentario y el contenido del comentario, respectivamente.KickassResult#getDetails()
: realiza una solicitud HTTP a la página web dedicada asociada con el resultado del torrent y devuelve una promesa que se resuelve con un objeto que contiene detalles adicionales sobre el torrent. En esta etapa, el único detalle adicional proporcionado por el objeto resuelto se almacena en la propiedad description
, que contiene la versión de solo texto de la descripción del torrent. Registre el enlace magnético y obtenga los comentarios del torrent más popular de South Park:
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
});
});
Se espera que cambie la URL de Kickass Torrents. En caso de que aún no se haya actualizado, coloque la nueva URL en config/kickass-url.json
Mantenga siempre actualizado su paquete kat-cr
global.
kat-cr es un módulo de web scraping y, por lo tanto, depende de la estructura de la respuesta de búsqueda de Kickass Torrents, así como del nombre de dominio actual del servidor de Kickass torrents. En caso de actualizaciones de Kickass Torrents, ejecutándose
npm test
en el directorio del proyecto indicará qué salió mal exactamente al intentar convertir una respuesta de búsqueda de Kickass Torrents en un objeto KickassResultGroup
, y se invita a los contribuyentes a enviar solicitudes de extracción corrigiendo los puntos finales de API, el nombre de dominio o los selectores de CSS.
Asegúrese de que mocha
esté instalado globalmente y de ejecutar npm install
en el directorio del proyecto antes de intentar ejecutar las pruebas.
El código fuente está completamente documentado. Para compilar la documentación, asegúrese de que el paquete grunt-cli
esté instalado globalmente y de haber ejecutado npm install
en el directorio del proyecto, luego ejecute
grunt
en el directorio del proyecto. Para ver la documentación del código fuente, abra doc/index.html en su navegador web favorito.
MIT. Siéntase libre de modificarlo y distribuirlo.
Raymond Pulver IV