From e116e37648439db730f6c5df7f3b6fdb8e23a17c Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Fri, 13 May 2016 00:31:57 +0200 Subject: [PATCH] Transmission client --- .../Command/TransmissionStatsCommand.php | 2 +- src/Transmission/Transmission.php | 68 +++++++++++++++++++ 2 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 src/Transmission/Transmission.php diff --git a/src/Transmission/Command/TransmissionStatsCommand.php b/src/Transmission/Command/TransmissionStatsCommand.php index 5562602..51fc68e 100644 --- a/src/Transmission/Command/TransmissionStatsCommand.php +++ b/src/Transmission/Command/TransmissionStatsCommand.php @@ -8,9 +8,9 @@ use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Command\Command; use Api\ConfigLoader; use Symfony\Component\Console\Input\ArrayInput; -use Vohof\Transmission; use Transmission\Client\GuzzleClient; use Helper\Formater; +use Transmission\Transmission; class TransmissionStatsCommand extends Command { diff --git a/src/Transmission/Transmission.php b/src/Transmission/Transmission.php new file mode 100644 index 0000000..8c4f871 --- /dev/null +++ b/src/Transmission/Transmission.php @@ -0,0 +1,68 @@ + + */ +class Transmission extends BaseTransmission +{ + public function __construct(array $config, ClientAbstract $client = null) + { + parent::__construct($config, $client); + + $this->config = $config; + + foreach(array('host', 'endpoint') as $requirement) + { + if ( ! isset($config[$requirement])) + { + throw new \InvalidArgumentException("Missing argument: $requirement"); + } + } + + if (is_null($client)) + { + $options = array(); + + if (isset($config['username']) and isset($config['password'])) + { + $options = array( + 'request.options' => array( + 'auth' => array($config['username'], $config['password']) + ) + ); + } + + $this->client = new GuzzleClient($config['host'], $options); + } + else + { + $this->client = $client; + } + + $this->client->setEndpoint($config['endpoint']); + } + + // public function add($url, $isEncoded = false, $options = array()) + // { + // $options[$isEncoded ? 'metainfo' : 'filename'] = $url; + + // return $this->client->request('torrent-add', $options); + // } + + // public function foo() + // { + // $options = [ + // 'fields' => static::$fields, + // 'ids' => ['all'], + // ]; + // + // return $this->client->request('torrent-get', $options); + // } +} +