Lisez, faites et cochez les torrents avec 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' ) ;
} ) ;
Lit un fichier local ou un flux lisible. Renvoie un flux lisible.
Une erreur peut être renvoyée si le torrent est formaté de manière incorrecte. Ne vérifie pas si les dictonaires sont répertoriés par ordre alphabétique. Reportez-vous à la spécification BitTorrent pour plus d'informations sur Torrent Metainfo.
Fait un nouveau torrent. dir
est le répertoire racine du torrent. Le tableau files
lira relativement des fichiers à partir de là. Si les fichiers sont omis, il ajoute implicitement tous les fichiers dans dir
au torrent, y compris ceux des sous-répertoires. options
peuvent avoir ce qui suit:
announceList
- un tableau de tableaux d'URL d'annonce supplémentaire.comment
name
- ne peut être utilisé qu'en mode multi-fichiers. Si ce n'est pas donné, par défaut, le nom du répertoire.pieceLength
- Comment briser les pièces. Doit être un entier n
qui dit que la longueur de la pièce sera 2^n
. La valeur par défaut est de 256 Ko, ou 2 ^ 18.private
- Définissez True s'il s'agit d'un torrent privé.moreInfo
- Ceux-ci vont dans le dictionnaire info
du torrent. Utile si vous souhaitez faire un torrent, avoir un hachage d'informations unique d'un certain tracker.maxFiles
- Fichiers max à ouvrir pendant le hachage de la pièce. Par défaut à 250. callback
est appelé avec une Error
possible et un objet Torrent
lorsque le hachage est terminé.
make
des rendements un objet de hachage qui émet des événements data
Bencoded bruts.
Un raccourci qui pompe le flux lisible retourné de make
en un flux écrivative qui pointe vers la output
du fichier. Renvoie un objet de hachage.
Les fonctions read
et make
appellent toutes leur rappel avec un objet torrent.
Contient des métadonnées du torrent. Exemple:
{
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 . . . >
}
}
Obtenez un hachage d'informations d'un torrent.
Crée unream de LEALBREABLE qui émet des données brutes bencodées pour ce torrent. Renvoie le flux lisible.
Raccourci qui tue le flux de Torrent#createReadStream()
à un flux de fichiers écrivatif. Renvoie le flux écrit.
Hash vérifie le torrent contre les fichiers dans dir
. Renvoie un objet de hachage. options
de hachage peuvent avoir maxFiles
à ouvrir pendant le hachage. Par défaut à 250
. Renvoie un objet de hachage.
Un objet Hasher est retourné lorsqu'un torrent est créé avec make
et lorsque Torrent#hashCheck
est appelé. Il hérite de LiabableStream.
Contrôle de hachage de pause.
Reprend la vérification du hachage.
Continue le hachage s'il est interrompu ou fait une pause sinon.
Arrête le hachage complètement. Ferme des descripteurs de fichiers et n'émet plus d'événements.
Terminé l'examen des fichiers à hacher et prêt à commencer à hacher leur contenu.
Buffer
- données Émet des données torrent brutes Bencoded uniquement lorsque Hasher est renvoyé de la fonction make
.
number
- pour centnumber
- vitessenumber
- AvgSpeed Émet la progression calculée par le montant des octets lus à partir des fichiers. speed
et avgSpeed
sont en octets.
number
- Indexstring
- hachagestring
- fichiernumber
- positionnumber
- longueurÉmis lorsqu'une pièce est hachée avec la position et la source de hachage.
number
- Indexstring
- Hashnumber
- pourcentagestring
- fichiernumber
- positionnumber
- longueur Émis lorsqu'une pièce correspond à son index
, à la pièce et au pourcentage de pièces correspondant jusqu'à présent.
number
- Indexstring
- fichiernumber
- positionnumber
- longueurÉmis lorsqu'une pièce ne correspond pas.
Error
- EuhVérification du hachage d'erreur.
La vérification du hachage est terminée.
npm install nt
Les tests sont écrits avec des vœux
npm test