kat-cr é um aplicativo CLI simples e flexível e um módulo de nó que pesquisa torrents no kat.cr. A API JSON não é mais totalmente suportada pelo Kickass Torrents e o feed RSS também está ausente. O principal mecanismo de pesquisa baseado em navegador fornecido pelo Kickass Torrents oferece mais recursos, e é isso que este aplicativo usa para pesquisar torrents.
Para usar o aplicativo CLI, use
npm install -g kat-cr
Isso instalará um executável kickass
em seu PATH
.
Para usar como módulo, instale em seu projeto com
npm install --save kat-cr
Uma pesquisa básica de torrent seria algo como
kickass -c tv south park
Neste exemplo, o sinalizador opcional -c foi passado para especificar a categoria de pesquisa. kat.cr retorna resultados de pesquisa em conjuntos de 25 e limita os resultados a 10.000. Você pode especificar o número da página que deseja retornar passando o sinalizador -p. Então, se você quisesse ir para a segunda página dos torrents da South Park TV, você executaria
kickass south park -c tv -p 2
Por padrão, kickass
exibirá links diretos de torrent, mas se você fornecer a opção -m
ou --magnet
, os links retornados serão os links magnéticos. Por exemplo:
kickass south park -c tv -p 2 -m
Os títulos de torrent serão exibidos em negrito amarelo se forem torrents postados por um membro verificado do Kickass Torrents, e haverá um qualificador ELITE
roxo antes de qualquer torrent postado por um membro de elite do Kickass Torrents.
E isso é tudo. O aplicativo e o módulo ordenam torrents por seeders em ordem decrescente por padrão. Para alterar esse comportamento, passe o sinalizador -f/--field ou o sinalizador -s/--sorder (detalhes sobre os valores possíveis para essas opções abaixo). Observe que você não precisa colocar uma consulta de pesquisa com várias palavras entre aspas.
Para usar este módulo em sua aplicação, instale-o em seu projeto e use
var kickass = require('kat-cr');
kat-cr
usa uma API Promise; você pode realizar uma pesquisa básica com
kickass('search query').then(function (results) {
// do something with results
}, function (err) {
// handle error
});
Você pode realizar uma pesquisa avançada passando um objeto para a função em vez de uma string. O objeto pode conter as seguintes chaves
search
{string}: a consulta de pesquisacategory
{string}: a categoria de pesquisapage
{número}: o número da página dos resultados retornadosfield
{string}: O campo pelo qual os resultados são classificados, o padrão é 'semeadores'. Outras possibilidades incluem 'time_add', 'files_count', 'size' e 'leechers'sorder
{string}: A ordem em que os resultados são exibidos, o padrão é 'desc'. Alternativamente, você pode usar 'asc' O objeto resolvido por esta promessa foi projetado para imitar a resposta JSON retornada pela API Kickass Torrent JSON atualmente com deficiência de recursos, mas o objeto real é um objeto KickassResultGroup
personalizado, que neste estágio não possui nenhum método em seu protótipo, mas contém algumas propriedades relevantes para todo o resultado da pesquisa:
results.total_results
{number}: a quantidade total de resultados de torrentresults.link
{string}: Sempre 'http://kat.cr'results.language
{string}: Usando este módulo você sempre obterá 'en-us'results.list
{Array}: um array contendo os torrents e suas informações A maior parte das informações estará em results.list
. As propriedades de um objeto torrent são:
title
{string}: O título do torrentcategory
{string}: a categoria do torrentlink
{string}: O link para a página do torrent em kat.crpubDate
{Date}: uma instância de Date que representa a data em que o torrent foi publicadotorrentLink
{string}: O link http direto para o arquivo torrentmagnetLink
{string}: O link magnético associado ao torrentfiles
{número}: a quantidade de arquivos associados ao torrentcomments
{número}: a quantidade de comentários que o torrent recebeu em kat.crhash
{número}: um resumo hash do torrentpeers
{número}: a quantidade de pares associados ao torrentseeds
{número}: A quantidade de seeders associados ao torrentleechs
{número}: A quantidade de sanguessugas baixando o torrentsize
{number}: O tamanho dos arquivos fornecidos pelo torrent, em bytesverified
{boolean}: se o torrent foi postado ou não por um usuário verificado do Kickass Torrentselite
{boolean}: Se o torrent foi postado ou não por um usuário elite do Kickass Torrentsid
{string}: o ID do torrent em kat.cr que pode ser usado para chamar funções da API Cada item em results.list
é na verdade um objeto KickassResult
, que atualmente possui os seguintes métodos em seu protótipo:
KickassResult#getComments()
: Retorna uma promessa que resolve com uma matriz de objetos de comentário, que possuem um owner
e uma propriedade comment
representando o nome de tela do postador do comentário e o conteúdo do comentário, respectivamenteKickassResult#getDetails()
: Faça uma solicitação HTTP para a página dedicada associada ao resultado do torrent e retorne uma promessa que resolve com um objeto contendo detalhes adicionais sobre o torrent. Nesta fase, o único detalhe adicional fornecido pelo objeto resolvido é armazenado na propriedade description
, que contém a versão somente texto da descrição do torrent. Acesse o link magnético e obtenha os comentários para o torrent mais propagado 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
});
});
Espera-se que o URL do Kickass Torrents mude. Caso ainda não tenha sido atualizado, coloque a nova URL em config/kickass-url.json
Sempre mantenha seu pacote global kat-cr
atualizado.
kat-cr é um módulo de web scraping e, portanto, depende da estrutura da resposta de pesquisa do Kickass Torrents, bem como do nome de domínio atual do servidor de torrents Kickass. Em caso de atualizações no Kickass Torrents, executando
npm test
no diretório do projeto indicará o que exatamente deu errado com a tentativa de converter uma resposta de pesquisa do Kickass Torrents em um objeto KickassResultGroup
, e os contribuidores são convidados a enviar solicitações pull corrigindo os endpoints da API, nome de domínio ou seletores CSS.
Certifique-se de que mocha
esteja instalado globalmente e de executar npm install
no diretório do projeto antes de tentar executar os testes.
O código fonte está totalmente documentado. Para construir a documentação, certifique-se de que o pacote grunt-cli
esteja instalado globalmente e que você tenha executado npm install
no diretório do projeto e, em seguida, execute
grunt
no diretório do projeto. Para visualizar a documentação do código-fonte, abra doc/index.html em seu navegador favorito.
MIT. Sinta-se à vontade para modificar e distribuir.
Raymond Pulver IV