/**
 * print form of index page settings (0-2047)
 *
 * #
 * Torrent
 *
 * User           [0]
 * Size           [1]
 * DLed           [2]
 * ULed           [3]
 *
 * Status         [4]
 * Progress       [5]
 * DL Speed       [6]
 * UL Speed       [7]
 *
 * Seeds          [8]
 * Peers          [9]
 * ETA           [10]
 * TorrentClient [11]
 *
 */
function printIndexPageSettingsForm()
{
    global $cfg;
    $settingsIndexPage = convertIntegerToArray($cfg["index_page_settings"]);
    echo '<table>';
    echo '<tr>';
    echo '<td align="right" nowrap>Owner: <input name="index_page_settings_0" type="Checkbox" value="1"';
    if ($settingsIndexPage[0] == 1) {
        echo ' checked';
    }
    echo '></td>';
    echo '<td align="right" nowrap>Size: <input name="index_page_settings_1" type="Checkbox" value="1"';
    if ($settingsIndexPage[1] == 1) {
        echo ' checked';
    }
    echo '></td>';
    echo '<td align="right" nowrap>Total Down: <input name="index_page_settings_2" type="Checkbox" value="1"';
    if ($settingsIndexPage[2] == 1) {
        echo ' checked';
    }
    echo '></td>';
    echo '<td align="right" nowrap>Total Up: <input name="index_page_settings_3" type="Checkbox" value="1"';
    if ($settingsIndexPage[3] == 1) {
        echo ' checked';
    }
    echo '></td>';
    echo '</tr>';
    echo '<tr>';
    echo '<td align="right" nowrap>Status : <input name="index_page_settings_4" type="Checkbox" value="1"';
    if ($settingsIndexPage[4] == 1) {
        echo ' checked';
    }
    echo '></td>';
    echo '<td align="right" nowrap>Progress : <input name="index_page_settings_5" type="Checkbox" value="1"';
    if ($settingsIndexPage[5] == 1) {
        echo ' checked';
    }
    echo '></td>';
    echo '<td align="right" nowrap>Down-Speed : <input name="index_page_settings_6" type="Checkbox" value="1"';
    if ($settingsIndexPage[6] == 1) {
        echo ' checked';
    }
    echo '></td>';
    echo '<td align="right" nowrap>Up-Speed : <input name="index_page_settings_7" type="Checkbox" value="1"';
    if ($settingsIndexPage[7] == 1) {
        echo ' checked';
    }
    echo '></td>';
    echo '</tr>';
    echo '<tr>';
    echo '<td align="right" nowrap>Seeds : <input name="index_page_settings_8" type="Checkbox" value="1"';
    if ($settingsIndexPage[8] == 1) {
        echo ' checked';
    }
    echo '></td>';
    echo '<td align="right" nowrap>Peers : <input name="index_page_settings_9" type="Checkbox" value="1"';
    if ($settingsIndexPage[9] == 1) {
        echo ' checked';
    }
    echo '></td>';
    echo '<td align="right" nowrap>Estimated Time : <input name="index_page_settings_10" type="Checkbox" value="1"';
    if ($settingsIndexPage[10] == 1) {
        echo ' checked';
    }
    echo '></td>';
    echo '<td align="right" nowrap>Client : <input name="index_page_settings_11" type="Checkbox" value="1"';
    if ($settingsIndexPage[11] == 1) {
        echo ' checked';
    }
    echo '></td>';
    echo '</tr>';
    echo '</table>';
}
/**
 * This method gets the list of transfer
 *
 * @return array
 */
function getTransferListArray()
{
    global $cfg, $db, $transfers;
    $kill_id = "";
    $lastUser = "";
    $arUserTransfers = array();
    $arListTransfers = array();
    // settings
    $settings = convertIntegerToArray($cfg["index_page_settings"]);
    // sortOrder
    $sortOrder = tfb_getRequestVar("so");
    if ($sortOrder == "") {
        $sortOrder = $cfg["index_page_sortorder"];
    }
    if ($cfg["transmission_rpc_enable"] == 2) {
        require_once 'inc/functions/functions.rpc.transmission.php';
        // New method for transmission-daemon transfers
        $result = getUserTransmissionTransfers($cfg['uid']);
        foreach ($result as $aTorrent) {
            if ($aTorrent['status'] == 4 || $aTorrent['status'] == 8) {
                if (!isset($cfg["total_upload"])) {
                    $cfg["total_upload"] = 0;
                }
                if (!isset($cfg["total_download"])) {
                    $cfg["total_download"] = 0;
                }
                $cfg["total_upload"] = $cfg["total_upload"] + GetSpeedValue($aTorrent['rateUpload'] / 1000);
                $cfg["total_download"] = $cfg["total_download"] + GetSpeedValue($aTorrent['rateDownload'] / 1000);
            }
            array_push($arUserTransfers, $aTorrent);
        }
    }
    $arList = getTransferArray($sortOrder);
    foreach ($arList as $transfer) {
        // init some vars
        $displayname = $transfer;
        $show_run = true;
        $transferowner = getOwner($transfer);
        $owner = IsOwner($cfg["user"], $transferowner);
        // stat
        $sf = new StatFile($transfer, $transferowner);
        // settings
        if (isset($transfers['settings'][$transfer])) {
            $settingsAry = $transfers['settings'][$transfer];
        } else {
            $settingsAry = array();
            if (substr(str_replace('.imported', '', $transfer), -8) == ".torrent") {
                // this is a t-client
                $settingsAry['type'] = "torrent";
                $settingsAry['client'] = $cfg["btclient"];
            } else {
                if (substr($transfer, -5) == ".wget") {
                    // this is wget.
                    $settingsAry['type'] = "wget";
                    $settingsAry['client'] = "wget";
                } else {
                    if (substr($transfer, -4) == ".nzb") {
                        // this is nzbperl.
                        $settingsAry['type'] = "nzb";
                        $settingsAry['client'] = "nzbperl";
                    } else {
                        AuditAction($cfg["constants"]["error"], "INVALID TRANSFER: " . $transfer);
                        @error("Invalid Transfer", "", "", array($transfer));
                    }
                }
            }
            $settingsAry['hash'] = "";
            $settingsAry["savepath"] = $cfg["enable_home_dirs"] != 0 ? $cfg["path"] . $transferowner . '/' : $cfg["path"] . $cfg["path_incoming"] . '/';
            $settingsAry['datapath'] = "";
        }
        // cache running-flag in local var. we will access that often
        $transferRunning = $sf->running;
        // cache percent-done in local var. ...
        $percentDone = $sf->percent_done;
        // ---------------------------------------------------------------------
        //XFER: update1: add upload/download stats to the xfer array
        if ($cfg['enable_xfer'] == 1 && $cfg['xfer_realtime'] == 1) {
            @Xfer::update1($transfer, $transferowner, $settingsAry['client'], $settingsAry['hash'], $sf->uptotal, $sf->downtotal);
        }
        // ---------------------------------------------------------------------
        // injects
        if (!file_exists($cfg["transfer_file_path"] . $transfer . ".stat")) {
            $transferRunning = 2;
            $sf->running = "2";
            $sf->size = getTransferSize($transfer);
            injectTransfer($transfer);
        }
        // use default client if client is not set
        if (!isset($settingsAry['client'])) {
            $settingsAry['client'] = $cfg['btclient'];
        }
        // totals-preparation
        // if downtotal + uptotal + progress > 0
        if ($settings[2] + $settings[3] + $settings[5] > 0) {
            $ch = ClientHandler::getInstance($settingsAry['client']);
            $transferTotals = $ch->getTransferTotalOP($transfer, $settingsAry['hash'], $sf->uptotal, $sf->downtotal);
        }
        // ---------------------------------------------------------------------
        // preprocess stat-file and get some vars
        $estTime = "";
        $statusStr = "";
        switch ($transferRunning) {
            case 2:
                // new
                $statusStr = 'New';
                break;
            case 3:
                // queued
                $statusStr = 'Queued';
                $estTime = 'Waiting';
                break;
            default:
                // running + stopped
                // increment the totals
                if (!isset($cfg["total_upload"])) {
                    $cfg["total_upload"] = 0;
                }
                if (!isset($cfg["total_download"])) {
                    $cfg["total_download"] = 0;
                }
                $cfg["total_upload"] += GetSpeedValue($sf->up_speed);
                $cfg["total_download"] += GetSpeedValue($sf->down_speed);
                // $estTime
                if ($transferRunning == 0) {
                    $estTime = $sf->time_left;
                } else {
                    if ($sf->time_left != "" && $sf->time_left != "0") {
                        if ($cfg["display_seeding_time"] == 1 && $sf->percent_done >= 100) {
                            $estTime = $sf->seedlimit > 0 && !empty($sf->up_speed) && intval($sf->up_speed[0]) > 0 ? convertTimeText(($sf->seedlimit / 100 * $sf->size - $sf->uptotal) / GetSpeedInBytes($sf->up_speed)) : '-';
                        } else {
                            $estTime = $sf->time_left;
                        }
                    }
                }
                // $lastUser
                $lastUser = $transferowner;
                // $show_run + $statusStr
                if ($percentDone >= 100) {
                    $statusStr = $transferRunning == 1 && trim($sf->up_speed) != "" ? 'Seeding' : 'Done';
                    $show_run = false;
                } else {
                    if ($percentDone < 0) {
                        $statusStr = 'Stopped';
                        $show_run = true;
                    } else {
                        $statusStr = 'Leeching';
                    }
                }
                break;
        }
        // ---------------------------------------------------------------------
        // fill temp array
        $transferAry = array();
        // ================================================================ name
        array_push($transferAry, $transfer);
        // =============================================================== owner
        if ($settings[0] != 0) {
            array_push($transferAry, $transferowner);
        }
        // ================================================================ size
        if ($settings[1] != 0) {
            array_push($transferAry, @formatBytesTokBMBGBTB($sf->size));
        }
        // =========================================================== downtotal
        if ($settings[2] != 0) {
            array_push($transferAry, @formatBytesTokBMBGBTB($transferTotals["downtotal"]));
        }
        // ============================================================= uptotal
        if ($settings[3] != 0) {
            array_push($transferAry, @formatBytesTokBMBGBTB($transferTotals["uptotal"]));
        }
        // ============================================================== status
        if ($settings[4] != 0) {
            array_push($transferAry, $statusStr);
        }
        // ============================================================ progress
        if ($settings[5] != 0) {
            $percentage = "";
            if ($percentDone >= 100 && trim($sf->up_speed) != "") {
                $percentage = @number_format($transferTotals["uptotal"] / $sf->size * 100, 2) . '%';
            } else {
                if ($percentDone >= 1) {
                    $percentage = $percentDone . '%';
                } else {
                    if ($percentDone < 0) {
                        $percentage = round($percentDone * -1 - 100, 1) . '%';
                    } else {
                        $percentage = '0%';
                    }
                }
            }
            array_push($transferAry, $percentage);
        }
        // ================================================================ down
        if ($settings[6] != 0) {
            $down = "";
            if ($transferRunning == 1) {
                $down = trim($sf->down_speed) != "" ? $sf->down_speed : '0.0 kB/s';
            }
            array_push($transferAry, $down);
        }
        // ================================================================== up
        if ($settings[7] != 0) {
            $up = "";
            if ($transferRunning == 1) {
                $up = trim($sf->up_speed) != "" ? $sf->up_speed : '0.0 kB/s';
            }
            array_push($transferAry, $up);
        }
        // =============================================================== seeds
        if ($settings[8] != 0) {
            $seeds = $transferRunning == 1 ? $sf->seeds : "";
            array_push($transferAry, $seeds);
        }
        // =============================================================== peers
        if ($settings[9] != 0) {
            $peers = $transferRunning == 1 ? $sf->peers : "";
            array_push($transferAry, $peers);
        }
        // ================================================================= ETA
        if ($settings[10] != 0) {
            array_push($transferAry, $estTime);
        }
        // ============================================================== client
        if ($settings[11] != 0) {
            switch ($settingsAry['client']) {
                case "tornado":
                    array_push($transferAry, "B");
                    break;
                case "transmission":
                    array_push($transferAry, "T");
                    break;
                case "transmissionrpc":
                    array_push($transferAry, "Tr");
                    break;
                case "mainline":
                    array_push($transferAry, "M");
                    break;
                case "azureus":
                    array_push($transferAry, "A");
                    break;
                case "vuzerpc":
                    array_push($transferAry, "V");
                    break;
                case "wget":
                    array_push($transferAry, "W");
                    break;
                case "nzbperl":
                    array_push($transferAry, "N");
                    break;
                default:
                    array_push($transferAry, "U");
            }
        }
        // ---------------------------------------------------------------------
        // Is this transfer for the user list or the general list?
        if ($owner) {
            array_push($arUserTransfers, $transferAry);
        } else {
            array_push($arListTransfers, $transferAry);
        }
    }
    //XFER: update 2
    if ($cfg['enable_xfer'] == 1 && $cfg['xfer_realtime'] == 1) {
        @Xfer::update2();
    }
    // -------------------------------------------------------------------------
    // build output-array
    $retVal = array();
    if (sizeof($arUserTransfers) > 0) {
        foreach ($arUserTransfers as $torrentrow) {
            array_push($retVal, $torrentrow);
        }
    }
    $boolCond = true;
    if ($cfg['enable_restrictivetview'] == 1) {
        $boolCond = $cfg['isAdmin'];
    }
    if ($boolCond && sizeof($arListTransfers) > 0) {
        foreach ($arListTransfers as $torrentrow) {
            array_push($retVal, $torrentrow);
        }
    }
    return $retVal;
}
Beispiel #3
0
// queue
$tmpl->setvar('queueActive', FluxdQmgr::isRunning() ? 1 : 0);
// incoming-path
$tmpl->setvar('path_incoming', $cfg["enable_home_dirs"] != 0 ? $cfg["user"] : $cfg["path_incoming"]);
// some configs
$tmpl->setvar('enable_metafile_download', $cfg["enable_metafile_download"]);
$tmpl->setvar('enable_multiops', $cfg["enable_multiops"]);
$tmpl->setvar('twd', $cfg["transfer_window_default"]);
$tmpl->setvar('transfer_delete_data', $cfg["transfer_delete_data"]);
// =============================================================================
// transfer-list
// =============================================================================
$arUserTorrent = array();
$arListTorrent = array();
// settings
$settings = convertIntegerToArray($cfg["index_page_settings"]);
// sortOrder
$sortOrder = tfb_getRequestVar("so");
$tmpl->setvar('sortOrder', empty($sortOrder) ? $cfg["index_page_sortorder"] : $sortOrder);
// t-list
$arList = getTransferArray($sortOrder);
$progress_color = "#22BB22";
$bar_width = "4";
$bUseRPC = false;
// ---------------------------------------------------------------------
if ($cfg["transmission_rpc_enable"]) {
    $bUseRPC = true;
    require_once 'inc/functions/functions.rpc.transmission.php';
    try {
        if ($cfg["transmission_rpc_enable"] == 2) {
            $aTrTorrents = getUserTransmissionTransfers((int) $cfg['uid']);
/**
 * set vars for form of index page settings (0-2047)
 *
 * User			  [0]
 * Size			  [1]
 * DLed			  [2]
 * ULed			  [3]
 * Status		  [4]
 * Progress		  [5]
 * DL Speed		  [6]
 * UL Speed		  [7]
 * Seeds		  [8]
 * Peers		  [9]
 * ETA			 [10]
 * TorrentClient [11]
 *
 */
function tmplSetIndexPageSettingsForm()
{
    global $cfg, $tmpl;
    $settingsIndexPage = convertIntegerToArray($cfg["index_page_settings"]);
    $tmpl->setvar('indexPageSettingsForm_settings_0', $settingsIndexPage[0]);
    $tmpl->setvar('indexPageSettingsForm_settings_1', $settingsIndexPage[1]);
    $tmpl->setvar('indexPageSettingsForm_settings_2', $settingsIndexPage[2]);
    $tmpl->setvar('indexPageSettingsForm_settings_3', $settingsIndexPage[3]);
    $tmpl->setvar('indexPageSettingsForm_settings_4', $settingsIndexPage[4]);
    $tmpl->setvar('indexPageSettingsForm_settings_5', $settingsIndexPage[5]);
    $tmpl->setvar('indexPageSettingsForm_settings_6', $settingsIndexPage[6]);
    $tmpl->setvar('indexPageSettingsForm_settings_7', $settingsIndexPage[7]);
    $tmpl->setvar('indexPageSettingsForm_settings_8', $settingsIndexPage[8]);
    $tmpl->setvar('indexPageSettingsForm_settings_9', $settingsIndexPage[9]);
    $tmpl->setvar('indexPageSettingsForm_settings_10', $settingsIndexPage[10]);
    $tmpl->setvar('indexPageSettingsForm_settings_11', $settingsIndexPage[11]);
}