Leia, faça e hash verifique os torrents com node.js!
const nt = require ( 'nt' ) ;
nt . read ( 'path/to/file.torrent' , ( err , torrent ) => {
if ( err ) throw err ;
console . log ( 'Info hash:' , torrent . infoHash ( ) ) ;
} ) ;
let rs = nt . make ( 'http://myannounce.net/url' , __dirname + '/files' ) ;
rs . pipe ( fs . createWriteStream ( 'mytorrent.torrent' ) ) ;
// callback style
nt . makeWrite ( 'outputfile' , 'http://announce.me' , __dirname + '/files' ,
[ 'somefile.ext' , 'another.one' , 'inside/afolder.mkv' , 'afolder' ] ,
( err , torrent ) => {
if ( err ) throw err ;
console . log ( 'Finished writing torrent!' ) ;
} ) ;
let hasher = torrent . hashCheck ( file ) ;
let p ;
hasher . on ( 'match' , ( i , hash , percent ) => {
p = percent ;
} ) ;
hasher . on ( 'end' , ( ) => {
console . log ( 'Hash Check:' , p + '%' , 'matched' ) ;
} ) ;
Lê um arquivo local ou um fluxo legível. Retorna o fluxo legível.
Um erro pode ser retornado se a torrent for formatada incorretamente. Não verifica se os dictonários estão listados em ordem alfabética. Consulte a especificação BitTorrent para obter mais informações sobre o Torrent Metainfo.
Faz uma nova torrente. dir
é o diretório raiz do torrent. A matriz files
será relativamente lida arquivos a partir daí. Se os arquivos forem omitidos, adicionará implicitamente todos os arquivos no dir
ao torrent, incluindo os dos subdiretos. options
podem ter o seguinte:
announceList
- Uma variedade de matrizes de URLs de anúncio adicionais.comment
name
- pode ser usado apenas no modo multi -arquivo. Se não for fornecido, os padrões para nome do diretório.pieceLength
- Como quebrar as peças. Deve ser um número inteiro n
que diz que o comprimento da peça será 2^n
. O padrão é 256kb, ou 2^18.private
- Defina verdadeiro se este for um torrente privado.moreInfo
- Eles entram no Dicionário de info
da torrent. Útil se você deseja fazer uma torrent, tenha um hash de informações exclusivas de um determinado rastreador.maxFiles
- arquivos max para abrir durante o hash de peça. Padrões para 250. callback
é chamado com um possível Error
e um objeto Torrent
quando o hash é concluído.
make
devoluções um objeto Hashher que emite eventos data
brutos de dados.
Um atalho que bombeia o fluxo legível retornado do make
para um fluxo gravável que aponta para a output
do arquivo. Retorna um objeto Hashher.
A read
e make
funções chamam seu retorno de chamada com um objeto de torrent.
Contém metadados da torrente. Exemplo:
{
announce : 'udp://tracker.publicbt.com:80' ,
'announce-list' : [
[ 'udp://tracker.publicbt.com:80' ] ,
[ 'udp://tracker.ccc.de:80' ] ,
[ 'udp://tracker.openbittorrent.com:80' ] ,
[ 'http://tracker.thepiratebay.org/announce' ]
] ,
comment : 'Torrent downloaded from http://thepiratebay.org' ,
'creation date' : 1303979726 ,
info : { length : 718583808 ,
name : 'ubuntu-11.04-desktop-i386.iso' ,
'piece length' : 524288 ,
pieces : < Buffer e5 7 a . . . >
}
}
Obtenha um hash de informações de torrent.
Cria uma transmissão readableStrenda que emite dados brutos para esta torrent. Retorna o fluxo legível.
Atalho que coloca o fluxo de Torrent#createReadStream()
para um fluxo de arquivo gravável. Retorna o fluxo gravável.
Hash verifica torrent contra arquivos no dir
. Retorna um objeto Hashher. options
Hash pode ter maxFiles
para abrir durante a hash. Padrões para 250
. Retorna um objeto Hashher.
Um objeto Hasher é retornado quando uma torrent é criada com make
e quando Torrent#hashCheck
é chamado. Herda do readableStream.
Pausa verificando hash.
Retoma a verificação de hash.
Continua hash se pausado ou pausas, se não.
Pare completamente o hashing. Fecha os descritores de arquivos e não emite mais eventos.
Terminou em examinar os arquivos a serem hash e prontos para começar o conteúdo.
Buffer
- dados Emite dados de torrent abodados em bruto somente quando o hasher é retornado da função make
.
number
- porcentagemnumber
- velocidadenumber
- AVGSPEED Emite o progresso calculado pela quantidade de bytes lidos nos arquivos. speed
e avgSpeed
estão em bytes.
number
- Índicestring
- Hashstring
- arquivonumber
- Posiçãonumber
- comprimentoEmitido quando uma peça é hash, juntamente com a posição e a fonte do hash.
number
- Índicestring
- Hashnumber
- porcentagemstring
- arquivonumber
- Posiçãonumber
- comprimento Emitido quando uma peça corresponde ao seu index
, a peça e a porcentagem de peças correspondentes até agora.
number
- Índicestring
- arquivonumber
- Posiçãonumber
- comprimentoEmitido quando uma peça não corresponde.
Error
- errERRO HASH CHECKING.
A verificação de hash está concluída.
npm install nt
Os testes são escritos com votos
npm test