2017 © Pedro Peláez
 

library laravel-bencode

A BEncode Wrapper for Laravel

image

bhutanio/laravel-bencode

A BEncode Wrapper for Laravel

  • Monday, October 27, 2014
  • by abixalmon
  • Repository
  • 2 Watchers
  • 2 Stars
  • 1,016 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 4 Forks
  • 1 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

Bencode for Laravel 4

Also see - torrent-bencode

Bencode (pronounced like B encode) is the encoding used by the peer-to-peer file sharing system BitTorrent for storing and transmitting loosely structured data., (*1)

It supports four different types of values: * byte strings, * integers, * lists, and * dictionaries (associative arrays)., (*2)

Bencoding is most commonly used in torrent files. These metadata files are simply bencoded dictionaries., (*3)

While less efficient than a pure binary encoding, bencoding is simple and (because numbers are encoded as text in decimal notation) is unaffected by endianness, which is important for a cross-platform application like BitTorrent. It is also fairly flexible, as long as applications ignore unexpected dictionary keys, so that new ones can be added without creating incompatibilities., (*4)

Requirements

Apache or Nginx = Latest production version
PHP >= 5.4.0 (with MCrypt PHP Extension)
Laravel >= 4.0

Installation

Require this package in your composer.json and update composer., (*5)

"bhutanio/laravel-bencode": "dev-master"

Update Composer, (*6)

composer update or php composer.phar update, (*7)

Register the Class and Facade, (*8)

In app/config/app.php add a provider and an aliase., (*9)

'providers' => array(
  'Bhutanio\BEncode\ServiceProvider',
);


'aliases' => array(
  'BEncode'         => 'Bhutanio\BEncode\Facade',
);

Usage

Simple Example, (*10)

    $bcoder = new BEncode;
    $bcoder->set([
        'announce'=>'http://www.private-tracker.com',
        'comment'=>'Downloaded from Private Tracker',
        'created_by'=>'PrivateTracker v1.0'
    ]);

    // decode Torrent file
    $torrent = $bcoder->bdecode( File::get('AwesomeMovie.torrent'));
    print_r($torrent);

    // show Torrent contents
    $files = $bcoder->filelist( $torrent );
    print_r($files);

    // make Torrent private
    $torrent = $bcoder->make_private($torrent);
    print_r($torrent);

    $infohash = sha1($bcoder->bencode($torrent["info"]));
    $binhash = pack("H*", $bcoder->bencode($torrent["info"])));

Static Method, (*11)

BEncode::set([
        'announce'=>'http://www.private-tracker.com',
        'comment'=>'Downloaded from Private Tracker',
        'created_by'=>'PrivateTracker v1.0'
    ]);

$torrent = BEncode::bdecode( File::get('AwesomeMovie.torrent'));
$torrent = BEncode::make_private($torrent);
$infohash = sha1(BEncode::bencode($torrent["info"]));
$binhash = pack("H*", sha1(BEncode::bencode($torrent["info"])));

print_r($torrent);

Functions

/**
 * Data Setter
 * @param array $data [array of public variables]
 * eg:
 *  $bcoder = new \Bhutanio\BEncode;
 *  $bcoder->set([
 *      'announce'=>'http://www.example.com',
 *      'comment'=>'Downloaded from example.com',
 *      'created_by'=>'TorrentSite v1.0'
 *  ]);
 */
public function set($data=array()) {}

/**
 * Decode a torrent file into Bencoded data
 * @param  string  $s   [link to torrent file]
 * @param  integer $pos [file position pointer]
 * @return array/null   [Array of Bencoded data]
 * eg:
 *      $bcoder = new \Bhutanio\BEncode;
 *      $torrent = $bcoder->bdecode( File::get('MyAwesomeTorrent.torrent'));
 *      var_dump($torrent);
 */
public function bdecode($s, &$pos=0) {}

/**
 * Created Torrent file from Bencoded data
 * @param  array $d [array data of a decoded torrent file]
 * @return string   [data can be downloaded as torrent]
 */
public function bencode(&$d) {}

/**
 * Decode a torrent file into Bencoded data
 * @param  string $filename     [File Path]
 * @return array/null           [Array of Bencoded data]
 */
public function bdecode_file($filename) {}

/**
 * Generate list of files in a torrent
 * @param  array $data  [array data of a decoded torrent file]
 * @return array        [list of files in an array]
 */
public function filelist($data) {}

/**
 * Replace array data on Decoded torrent data so that it can be bencoded into a private torrent file.
 * Provide the custom data using $this->set();
 * @param  array $data  [array data of a decoded torrent file]
 * @return array        [array data for torrent file]
 */
public function make_private($data) {}

The Versions

27/10 2014

dev-master

9999999-dev

A BEncode Wrapper for Laravel

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

by Abi Xalmon

laravel bencode bdecode bdecode_file

27/12 2013

dev-laravel-4.0

dev-laravel-4.0

A BEncode Wrapper for Laravel

  Sources   Download

MIT

The Requires

 

by Abi Xalmon

laravel bencode bdecode bdecode_file

24/09 2013

1.0

1.0.0.0

A BEncode Wrapper for Laravel

  Sources   Download

MIT

The Requires

 

by Abi Xalmon

laravel bencode bdecode bdecode_file