قراءة ، وجعل ، والتحقق من السيول مع 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
- تعيين صحيح إذا كان هذا سيل خاص.moreInfo
- هذه تذهب إلى قاموس info
في التورنت. مفيد إذا كنت ترغب في جعل سيلًا ، يكون لديك علامة معلومات فريدة من جهاز تعقب معين.maxFiles
- Max Files لفتحها أثناء التجزئة. الافتراضات إلى 250. يتم استدعاء callback
Error
محتمل ، وكائن Torrent
عند الانتهاء من التجزئة.
make
إرجاع كائن hasher الذي ينبعث من أحداث data
bencoded الخام.
اختصار يضخ الدفق القابل للقراءة المُعود من make
دفق قابل للكتابة يشير إلى 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 الذي ينبعث من بيانات Bencoded الخام لهذا التورنت. إرجاع الدفق القابل للقراءة.
اختصار أنابيب الدفق من 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
- خطأخطأ فحص التجزئة.
تم الانتهاء من فحص التجزئة.
npm install nt
الاختبارات مكتوبة مع الوعود
npm test