Читайте, делайте, и хэш проверьте торренты с помощью 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' ) ;
} ) ;
Читает локальный файл или читаемый поток. Возвращает читаемый поток.
Ошибка может быть возвращена, если торрент отформатирован неправильно. Не проверяет, указаны ли диктонари в алфавитном порядке. Обратитесь к спецификации BitTorrent для получения дополнительной информации о Torrent Metainfo.
Делает новый торрент. dir
- корневой каталог торрента. Массив files
будет относительно читать файлы оттуда. Если файлы опущены, он неявно добавляет все файлы в dir
в торрент, в том числе в подкаталах. options
могут иметь следующее:
announceList
- массив массивов дополнительных URL -адресов объявления.comment
name
- может использоваться только в многофакторном режиме. Если не указано, по умолчанию на имя каталога.pieceLength
- Как разбить кусочки. Должно быть целое число n
, которое говорит, что длина часа будет 2^n
. По умолчанию 256 КБ, или 2^18.private
- Установите True, если это частный торрент.moreInfo
- они попадают в info
словарь торрента. Полезно, если вы хотите сделать торрент, иметь уникальный информационный хэш из определенного трекера.maxFiles
- MAX -файлы для открытия во время хеширования. По умолчанию до 250. callback
вызывается с возможной Error
и Torrent
-объектом, когда заканчивается хэшинг.
make
возврат объекта Hasher, который испускает необработанные события data
.
Ярлык, который перекачивает возвращаемый читаемый поток из make
Into Writeable Stream, который указывает на output
файла. Возвращает объект Hasher.
read
и make
функции все называют свой обратный вызов с помощью торрент -объекта.
Содержит метаданные торрента. Пример:
{
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 . . . >
}
}
Получите информационный хэш торрента.
Создает ReadableStream, который издает необработанные данные для этого торрента. Возвращает читаемый поток.
Ярлык, который передает поток от Torrent#createReadStream()
к потоку файла с записи. Возвращает писательский поток.
Хэш проверяет торрент по файлам в dir
. Возвращает объект Hasher. options
у хэша может быть maxFiles
, чтобы открыть во время хэширования. По умолчанию до 250
. Возвращает объект Hasher.
Объект Hasher возвращается, когда торрент создается с помощью make
и когда называется Torrent#hashCheck
. Это наследует от readableStream.
Пауза хэш проверка.
Резюме хеш -проверка.
Продолжает хэширование, если приостановить или приостановить, если нет.
Останавливает хеширование полностью. Закрывает дескрипторы файлов и больше не испускает события.
Завершенные проверки файлов будут хэшировать и готовы начать хэшировать их содержимое.
Buffer
- данные Издает необработанные данные о торренте, только когда Hasher возвращается из функции make
.
number
- процентnumber
- скоростьnumber
- AVSPEED Излучает прогресс, рассчитанное по количеству байтов, считываемых из файлов. speed
и avgSpeed
находятся в байтах.
number
- индексstring
- хэшstring
- файлnumber
- позицияnumber
- длинаИзлучается, когда кусок хэшируется вместе с положением хэша и источником.
number
- индексstring
- хэшnumber
- процентное значениеstring
- файлnumber
- позицияnumber
- длина Излучается, когда пьеса совпадает со своим index
, кусочком и процентом кусочков, соответствующих до сих пор.
number
- индексstring
- файлnumber
- позицияnumber
- длинаИспускается, когда произведение не совпадает.
Error
- ошибкаОшибка хэш -проверка.
Хэш -проверка закончена.
npm install nt
Тесты написаны с клятвами
npm test