vohof / transmission
Awesome PHP JSON-RPC client library for Transmission
Installs: 1 709
Dependents: 0
Suggesters: 0
Security: 0
Stars: 18
Watchers: 5
Forks: 2
Open Issues: 4
Requires
- php: >=5.3.0
- guzzle/guzzle: 3.7.1
Requires (Dev)
- mockery/mockery: 0.8.*
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-12-16 15:25:57 UTC
README
A fully-tested PHP JSON-RPC client library for Transmission
Table of Contents
Installation
Install through Composer:
{ "require": { "vohof/transmission": "1.0.*" } }
Example Usage
$config = array( 'host' => 'http://127.0.0.1', 'endpoint' => '/transmission/rpc', 'username' => 'foo', // Optional 'password' => 'bar' // Optional ); $transmission = new Vohof\Transmission($config); // Add a torrent $torrent = $transmission->add('magnet:?xt=urn:btih:335990d615594b9be409ccfeb95864e24ec702c7&dn=Ubuntu+12.10+Quantal+Quetzal+%2832+bits%29&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.istole.it%3A6969&tr=udp%3A%2F%2Ftracker.ccc.de%3A80&tr=udp%3A%2F%2Fopen.demonii.com%3A1337'); // or $content = base64_encode(file_get_contents('MyTorrent.torrent')); $torrent = $transmission->add($content, true); // Stop a torrent $transmission->action('stop', $torrent['id']); // Limit download speed $transmission->set($torrent['id'], array('downloadLimit' => 100)); // Get torrent size $transmission->get($torrent['id'], array('totalSize')); // Remove torrent $transmission->remove($torrent['id']);); // Remove torrent and its files $transmission->remove($torrent['id'], true); // Stats $transmission->getStats();
See the tests for more usage
Use Transmission with Laravel
Add the service provider and alias the package in config/app.php
'providers' => array( ... 'Vohof\TransmissionServiceProvider' ), 'aliases' => array( ... 'Transmission' => 'Vohof\TransmissionFacade' )
Publish config and modify app/config/packages/transmission/config.php
$ php artisan config:publish transmission --path=vendor/vohof/transmission/src/config
Use the library:
Transmission::add($base64EncodedTorrent, true); Torrent::stats();
Advanced
The library uses Guzzle as it's HTTP Client but you can choose to swap it with something else if you want (eg. Buzz)
class BuzzClient extends \Vohof\ClientAbstract { ... } $transmission = new Vohof\Transmission($config, new BuzzClient);
To-Do
- torrent-rename-path, blocklist-update
License
See LICENSE