Baca, buat, dan hash periksa torrents dengan 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' ) ;
} ) ;
Membaca file lokal, atau aliran yang dapat dibaca. Mengembalikan aliran yang dapat dibaca.
Kesalahan dapat dikembalikan jika torrent diformat secara tidak benar. Tidak memeriksa apakah diktoner terdaftar secara abjad. Lihat spesifikasi BitTorrent untuk info lebih lanjut tentang torrent metainfo.
Membuat torrent baru. dir
adalah direktori root dari torrent. Array files
akan relatif membaca file dari sana. Jika file dihilangkan, secara implisit menambahkan semua file dalam dir
ke torrent, termasuk yang ada di subdirektori. options
dapat memiliki yang berikut:
announceList
- serangkaian array URL pengumuman tambahan.comment
name
- hanya dapat digunakan dalam mode multi file. Jika tidak diberikan, default ke nama direktori.pieceLength
- Cara memecah potongan -potongan itu. Harus bilangan n
dan panjang potongannya akan menjadi 2^n
. Default adalah 256kb, atau 2^18.private
- Tetapkan true jika ini adalah torrent pribadi.moreInfo
- Ini masuk ke Kamus info
Torrent. Berguna jika Anda ingin membuat torrent memiliki hash info unik dari pelacak tertentu.maxFiles
- File Max untuk dibuka selama Hashing. Default ke 250. callback
dipanggil dengan kemungkinan Error
, dan objek Torrent
saat hashing selesai.
make
pengembalian objek hasher yang memancarkan peristiwa data
Bencoded mentah.
Pintasan yang memompa aliran yang dapat dibaca yang dikembalikan dari make
Into A Writable Stream yang menunjuk ke output
file. Mengembalikan objek hasher.
Fungsi read
dan make
semua memanggil panggilan balik mereka dengan objek torrent.
Berisi metadata torrent. Contoh:
{
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 . . . >
}
}
Dapatkan hash info torrent.
Membuat ReadableStream yang memancarkan data Bencoded mentah untuk torrent ini. Mengembalikan aliran yang dapat dibaca.
Pintasan yang menyalurkan aliran dari Torrent#createReadStream()
ke aliran file yang dapat ditulis. Mengembalikan aliran yang dapat ditulis.
Hash memeriksa torrent terhadap file di dir
. Mengembalikan objek hasher. options
hash dapat memiliki maxFiles
untuk dibuka selama hashing. Default ke 250
. Mengembalikan objek hasher.
Objek hasher dikembalikan ketika torrent dibuat dengan make
dan ketika Torrent#hashCheck
dipanggil. Ini mewarisi dari ReadableStream.
Jeda hash checking.
Melanjutkan pemeriksaan hash.
Terus hashing jika dijeda atau berhenti jika tidak.
Berhenti hashing sepenuhnya. Menutup deskriptor file dan tidak memancarkan acara lagi.
Selesai memeriksa file untuk hash dan siap untuk memulai hashing isinya.
Buffer
- Data Memancarkan data torrent bencoded mentah hanya ketika hasher dikembalikan dari fungsi make
.
number
- Persennumber
- Kecepatannumber
- AVGSPEED Memancarkan kemajuan yang dihitung dengan jumlah byte yang dibaca dari file. speed
dan avgSpeed
ada dalam byte.
number
- Indeksstring
- hashstring
- Filenumber
- Posisinumber
- panjangDipancarkan ketika sebuah karya hash bersama dengan posisi dan sumber hash.
number
- Indeksstring
- hashnumber
- Persentasikanstring
- Filenumber
- Posisinumber
- panjang Dipancarkan ketika sepotong cocok dengan index
, potongan, dan persentase potongan yang cocok sejauh ini.
number
- Indeksstring
- Filenumber
- Posisinumber
- panjangDipancarkan saat sebuah karya tidak cocok.
Error
- errKesalahan memeriksa hash.
Pemeriksaan hash selesai.
npm install nt
Tes ditulis dengan sumpah
npm test