/**
 * 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;
}