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' ) ;
} ) ;
ローカルファイル、または読み取り可能なストリームを読み取ります。読み取り可能なストリームを返します。
トレントが誤ってフォーマットされている場合、エラーを返すことができます。ディクトンがアルファベット順にリストされているかどうかを確認しません。 Torrent Metainfoの詳細については、BitTorrent仕様を参照してください。
新しい急流を作ります。 dir
トレントのルートディレクトリです。 files
配列は、そこからファイルを比較的読み取ります。ファイルが省略されている場合、サブディレクトリのファイルを含むファイルをTorrentにdir
的に追加します。 options
次のことができます。
announceList
- 追加のアナウンスURLの配列の配列。comment
name
- マルチファイルモードでのみ使用できます。指定されていない場合、デフォルトはディレクトリの名前になります。pieceLength
ピースを分解する方法。ピースの長さは2^n
であると言う整数n
でなければなりません。デフォルトは256kb、または2^18です。private
- これがプライベートトレントである場合はtrueを設定します。moreInfo
これらはトレントのinfo
辞書に入ります。トレントを作成したい場合に便利です。特定のトラッカーからのユニークな情報ハッシュがあります。maxFiles
ハッシュ中に開く最大ファイル。デフォルトは250です。 callback
可能なError
と、ハッシュが終了したときにTorrent
オブジェクトで呼び出されます。
生のベンコードされたdata
イベントを発するよりhasherオブジェクトを返しmake
。
返された読み取り可能なストリームをmake
からWritable 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
-AvgSpeedファイルから読み取られたバイトの量によって計算された進捗を発します。 speed
とavgSpeed
はバイトです。
number
- インデックスstring
- ハッシュstring
- ファイルnumber
- 位置number
- 長さハッシュの位置とソースとともにピースがハッシュされたときに放出されます。
number
- インデックスstring
- ハッシュnumber
- パーセントマッチstring
- ファイルnumber
- 位置number
- 長さピースがindex
、ピース、およびこれまでに一致したピースの割合と一致するときに放出されます。
number
- インデックスstring
- ファイルnumber
- 位置number
- 長さピースが一致しないときに放出されます。
Error
-ERRエラーハッシュチェック。
ハッシュチェックが終了します。
npm install nt
テストは誓いで書かれています
npm test