yencer

yEnc encoding and decoding

Usage no npm install needed!

<script type="module">
  import yencer from 'https://cdn.skypack.dev/yencer';
</script>

README

Yencer

Yencer encodes and decodes yEnc data

Install

$ npm install yencer

Todo

  • yEnc encoding
  • Multipart support
  • Buffer/String issues

Examples

Get the Yencer class

var Yencer = require('yencer');

Decode a stream

Here I read out a usenet article stored to disk, including headers. Yencer will take care of it.

var fs = require('fs'),
    stream = Yencer.decodeStream();

// Stream the article file into the decoder
fs.createReadStream('/tmp/test.ntx').pipe(stream);

// Stream the decoder output into a new file
stream.pipe(fs.createWriteStream('/tmp/decoded-file'));

Decode an article

Here I read out a usenet article stored to disk, including headers. Yencer will take care of it.


// Get the buffer to the file
var buffer = fs.readFileSync('/tmp/test.ntx');

// Decode the buffer, which returns a YencFile object
var result = Yencer.decodeArticle(buffer);

// Inspect the object
console.log(result);

    // { buffer: <Buffer ff d8 ff 64 ... >, // The thing you want
    //   info:                              // Info from the yEnc headers
    //    { part: 1,
    //      total: '1',
    //      line: 128,
    //      filesize: 315836,
    //      name: '1024x768_1283625878864.jpg',
    //      begin: 1,
    //      end: 315836,
    //      partsize: 315836,
    //      pcrc32: '72182d81' },
    //   ybegin: true,               // If there was a ybegin line
    //   ypart: true,                // If there was a ypart line
    //   yend: true,                 // If there was a yend line
    //   intact: true,               // If the checksums matched
    //   checksum: '72182d81',       // The decoded checksum
    //   index: 315836,              // Last written index
    //   size: 315836 }              // Supposed filesize