public function getTransmission() { if (null === $this->transmission) { $client = new Client($this->params->getRpcHost(), $this->params->getRpcPort()); if ($this->params->doAuthentication()) { $client->authenticate($this->params->getRpcUser(), $this->params->getRpcPass()); } $transmission = new Transmission($this->params->getRpcHost(), $this->params->getRpcPort()); $transmission->setClient($client); $this->transmission = $transmission; } return $this->transmission; }
public function processAction(Request $request) { // Initialize filesystem Manager $filesystem = new Filesystem(); // init var $user_username = ""; $user_password = ""; $transmission_dir = ""; $transmission_tmp = ""; $transmission_hostname = "127.0.0.1"; $transmission_port = "9091"; $transmission_authentication = ""; $transmission_username = ""; $transmission_password = ""; // Load Core if INSTALL doesn't exist if (!$filesystem->exists('../INSTALL')) { return $this->redirect($this->generateUrl('app_feather_login')); } else { // Check transmissions settings if ($request->isMethod('POST')) { if ($request->request->get('_transmission_lostinfo') == true) { $transmission_hostname = "127.0.0.1"; $transmission_port = "9091"; $transmission_authentication = true; $transmission_username = "******"; $transmission_password = "******"; } else { if ($request->request->get('_transmission_hostname')) { $transmission_hostname = $request->request->get('_transmission_hostname'); } if ($request->request->get('_transmission_port')) { $transmission_port = $request->request->get('_transmission_port'); } if ($request->request->get('_transmission_authentication') == true) { $transmission_username = $request->request->get('_transmission_username'); $transmission_password = $request->request->get('_transmission_password'); } } // Set username and password value $user_username = $request->request->get('_user_username'); $user_password = $request->request->get('_user_password'); // Set dir and tmp value $transmission_dir = $request->request->get('_transmission_dir'); $transmission_tmp = $transmission_dir . "/tmp"; // Turn on/off authentication transmission if ($transmission_authentication == true) { // Initialize client infos $client = new Client($transmission_hostname, $transmission_port); $client->authenticate($transmission_username, $transmission_password); // Intialize transmission $transmission = new Transmission(); $transmission->setClient($client); } else { $transmission = new Transmission(); } // Instance of basepath $this->basepath = $this->container->get('kernel')->getRootdir() . "/config"; // Instance of form setting $this->_user_username = $user_username; $this->_user_password = $user_password; $this->_transmission_dir = $transmission_dir; $this->_transmission_tmp = $transmission_tmp; $this->_transmission_hostname = $transmission_hostname; $this->_transmission_port = $transmission_port; if ($transmission_authentication == true) { $this->_transmission_authentication = "true"; } else { $this->_transmission_authentication = "false"; } $this->_transmission_username = $transmission_username; $this->_transmission_password = $transmission_password; // Create download repository if (!is_dir($this->_transmission_dir)) { if (!@mkdir($this->_transmission_dir)) { // Return flashbag info_box $session = $request->getSession(); $session->getFlashBag()->add('error', 'Vous n\'avez pas les permissions suffisantes pour créer ce dossier de téléchargement. Veuiller en choisir un autre ou vous autoriser les droit de création!'); return $this->redirect($this->generateUrl('app_feather_install_step')); } else { $filesystem->mkdir($this->_transmission_dir, $mode = 0777); } if (!is_dir($this->_transmission_tmp)) { $filesystem->mkdir($this->_transmission_tmp, $mode = 0777); } } // Redirect to the next step if all checkpoints is green return $this->processexecAction(); } else { // Return flashbag info_box $session = $request->getSession(); $session->getFlashBag()->add('error', 'Merci de saisir correctements les informations.'); return $this->redirect($this->generateUrl('app_feather_install_step')); } } }
/** * @param string $method * @param array $arguments */ protected function call($method, $arguments) { if ($this->client) { ResponseValidator::validate($method, $this->client->call($method, $arguments)); } }
public function stopAction($id) { // Convert string($id) to integer $id = intval($id); // Checking authentication parameter $transmission_authentication = $this->container->getParameter('transmission_authentication'); // Get download and temporary path $transmission_dir = $this->container->getParameter('transmission_dir'); $transmission_tmp = $this->container->getParameter('transmission_tmp'); // Checking if transmission authentication is enabled if ($transmission_authentication == true) { $this->username = $this->container->getParameter('transmission_username'); $this->password = $this->container->getParameter('transmission_password'); // Initialize Client if (!isset($client)) { $client = new Client(); $client->authenticate($this->username, $this->password); } } // Initialize Transmission Connector $transmission = new Transmission(); $transmission->setClient($client); // Configuring many var of transmission and save as session $session = $transmission->getSession(); $session->setDownloadDir($transmission_dir); $session->setIncompleteDir($transmission_tmp); $session->setIncompleteDirEnabled(true); $session->save(); // Remove torrent with get id $transmission->get($id)->stop(); // Sleep 2 seconds for update transmission infos sleep(2); // Return redirect uri to the core controller return $this->redirect($this->generateUrl('app_feather_core')); }