/** * This method adds a Transmission transfer for a certain user in database * * @return array with uid and transmission transfer hash */ function getUserTransmissionTransfers($uid = 0) { $retVal = array(); if ($uid != 0) { $userTransferHashes = getUserTransmissionTransferArrayFromDB($uid); if (empty($userTransferHashes)) { return $retVal; } } require_once 'inc/classes/Transmission.class.php'; $rpc = Transmission::getInstance(); // https://trac.transmissionbt.com/browser/trunk/extras/rpc-spec.txt $fields = array("name", "id", "hashString", "eta", "totalSize", "percentDone", "metadataPercentComplete", "peersConnected", 'peersGettingFromUs', 'peersSendingToUs', "rateDownload", "rateUpload", "status", "uploadLimit", "uploadRatio", "seedRatioLimit", "seedRatioMode", "downloadedEver", "uploadedEver", "error", "errorString"); $result = $rpc->get(array(), $fields); if ($result['result'] !== "success") { rpc_error("Transmission RPC could not get transfers : " . $result['result']); } foreach ($result['arguments']['torrents'] as $transfer) { if ($uid == 0 || in_array($transfer['hashString'], $userTransferHashes)) { $rpcStatus = $transfer['status']; $transfer['status'] = Transmission::status_compat($rpcStatus); //set array keys as hashes $retVal[$transfer['hashString']] = $transfer; } } return $retVal; }