Пример #1
0
function atom_perform_matching($atom, $idx, $feedName, $feedLink)
{
    global $config_values, $matched;
    $atom = array_change_key_case_ext($atom, ARRAY_KEY_LOWERCASE);
    if (count($atom['feed']) == 0) {
        return;
    }
    if (isset($config_values['Global']['HTMLOutput']) && $config_values['Settings']['Combine Feeds'] == 0) {
        show_feed_html($idx);
    }
    $alt = 'alt';
    $htmlList = array();
    $items = array_reverse($atom['feed']['entry']);
    foreach ($items as $item) {
        if ($filter = get_item_filter()) {
            $item['title'] = preg_replace($filter, '', $item['title']);
        }
        if (preg_match('/\\b(720p|1080p|1080i)\\b/i', $item['title'])) {
            $item['title'] = preg_replace('/( -)?[_. ]HDTV/', '', $item['title']);
        }
        $torHash = '';
        $matched = "nomatch";
        array_walk($config_values['Favorites'], 'check_for_torrent', array('Obj' => $item, 'URL' => $feedLink));
        $client = $config_values['Settings']['Client'];
        $cache_file = $config_values['Settings']['Cache Dir'] . '/rss_dl_' . filename_encode($item['title']);
        if (file_exists($cache_file)) {
            $torHash = get_torHash($cache_file);
            if ($matched != "match" && $matched != 'cachehit' && file_exists($cache_file)) {
                $matched = 'downloaded';
                _debug("matched: " . $item['title'] . "\n", 1);
            }
        }
        if (isset($config_values['Global']['HTMLOutput'])) {
            if (!$rsnr) {
                $rsnr = 1;
            } else {
                $rsnr++;
            }
            if (strlen($rsnr) <= 1) {
                $rsnr = 0 . $rsnr;
            }
            $id = $idx . $rsnr;
            $htmlItems = array('item' => $item, 'URL' => $feedLink, 'feedName' => $feedName, 'alt' => $alt, 'torHash' => $torHash, 'matched' => $matched, 'id' => $id);
            array_push($htmlList, $htmlItems);
        }
        if ($alt == 'alt') {
            $alt = '';
        } else {
            $alt = 'alt';
        }
    }
    _debug(print_r($htmlList, true));
    $htmlList = array_reverse($htmlList, true);
    foreach ($htmlList as $item) {
        show_torrent_html($item[item], $item[URL], $item[feedName], $item[alt], $item[torHash], $item[matched], $item[id]);
    }
    if (isset($config_values['Global']['HTMLOutput']) && $config_values['Settings']['Combine Feeds'] == 0) {
        close_feed_html($idx, 0);
    }
    unset($item);
}
Пример #2
0
function parse_options()
{
    global $html_out, $config_values;
    $filler = "<br>";
    array_keys($_GET);
    $commands = array_keys($_GET);
    if (empty($commands)) {
        return FALSE;
    }
    if (preg_match("/^\\//", $commands[0])) {
        $commands[0] = preg_replace("/^\\//", '', $commands[0]);
    }
    switch ($commands[0]) {
        case 'getClientData':
            if ($_REQUEST['recent']) {
                $response = getClientData(1);
            } else {
                $response = getClientData(0);
            }
            echo $response;
            exit;
        case 'delTorrent':
            $response = delTorrent($_REQUEST['delTorrent'], $_REQUEST['trash'], $_REQUEST['batch']);
            echo "{$response}";
            exit;
        case 'stopTorrent':
            $response = stopTorrent($_REQUEST['stopTorrent'], $_REQUEST['batch']);
            echo "{$response}";
            exit;
        case 'startTorrent':
            $response = startTorrent($_REQUEST['startTorrent'], $_REQUEST['batch']);
            echo "{$response}";
            exit;
        case 'moveTo':
            $response = moveTorrent($_REQUEST['moveTo'], $_REQUEST['torHash'], $_REQUEST['batch']);
            echo "{$response}";
            exit;
        case 'updateFavorite':
            $response = update_favorite();
            if (preg_match("/^Error:", $response)) {
                echo "<div id=\"fav_error\" class=\"dialog_window\" style=\"display: block\">{$response}</div>";
            }
            break;
        case 'updateFeed':
            update_feed();
            break;
        case 'clearCache':
            clear_cache();
            break;
        case 'setGlobals':
            update_global_config();
            write_config_file();
            break;
        case 'matchTitle':
            $feedLink = $_GET['rss'];
            foreach ($config_values['Feeds'] as $key => $feed) {
                if ($feed['Link'] == "{$feedLink}") {
                    $idx = $key;
                }
            }
            if ($config_values['Feeds'][$idx]['seedRatio']) {
                $seedRatio = $config_values['Feeds'][$idx]['seedRatio'];
            } else {
                $seedRatio = $config_values['Settings']['Default Seed Ratio'];
            }
            if (!$seedRatio) {
                $seedRatio = -1;
            }
            if ($tmp = guess_match(html_entity_decode($_GET['title']), TRUE)) {
                $_GET['name'] = trim(strtr($tmp['key'], "._", "  "));
                if ($config_values['Settings']['MatchStyle'] == "glob") {
                    $_GET['filter'] = trim(strtr($tmp['key'], " ._", "???"));
                    $_GET['filter'] .= '*';
                } else {
                    $_GET['filter'] = trim($tmp['key']);
                }
                $_GET['quality'] = $tmp['data'];
                $_GET['feed'] = $_GET['rss'];
                $_GET['button'] = 'Add';
                $_GET['savein'] = 'Default';
                $_GET['seedratio'] = $seedRatio;
            } else {
                $_GET['name'] = $_GET['title'];
                $_GET['filter'] = $_GET['title'];
                $_GET['quality'] = 'All';
                $_GET['feed'] = $_GET['rss'];
                $_GET['button'] = 'Add';
                $_GET['savein'] = 'Default';
                $_GET['seedratio'] = $seedRatio;
            }
            if ($config_values['Settings']['Default Feed All'] && preg_match('/^(\\d+)x(\\d+)p?$|^(\\d{8})$/i', $tmp['episode'])) {
                $_GET['feed'] = 'All';
            }
            $response = update_favorite();
            if ($response) {
                echo "{$response}";
            }
            //break;
            exit;
        case 'hide':
            $response = add_hidden(ucwords($_GET['hide']));
            if ($response) {
                echo "ERROR:{$response}";
            } else {
                $guess = guess_match(html_entity_decode($_GET['hide']), TRUE);
                echo $guess['key'];
            }
            exit;
        case 'delHidden':
            del_hidden($_GET['unhide']);
            break;
        case 'dlTorrent':
            // Loaded via ajax
            foreach ($config_values['Favorites'] as $fav) {
                $guess = guess_match(html_entity_decode($_GET['title']));
                $name = trim(strtr($guess['key'], "._", "  "));
                if ($name == $fav['Name']) {
                    $downloadDir = $fav['Save In'];
                }
            }
            if ((!isset($downloadDir) || $downloadDir == "Default") && isset($config_values['Settings']['Download Dir'])) {
                $downloadDir = $config_values['Settings']['Download Dir'];
            }
            $r = client_add_torrent(preg_replace('/ /', '%20', trim($_GET['link'])), $downloadDir, $_GET['title'], $_GET['feed']);
            if ($r == "Success") {
                $torHash = get_torHash(add_cache($_GET['title']));
            }
            if (isset($torHash)) {
                echo $torHash;
            } else {
                echo $r;
            }
            exit(0);
            break;
        case 'clearHistory':
            // Loaded via ajax
            if (file_exists($config_values['Settings']['History'])) {
                unlink($config_values['Settings']['History']);
            }
            display_history();
            close_html();
            exit(0);
            break;
        case 'get_client':
            global $config_values;
            echo $config_values['Settings']['Client'];
            exit;
        case 'version_check':
            echo version_check();
            exit;
        case 'post_bug':
            global $tw_version;
            $response = post_bug($_POST['Summary'], $_POST['Name'], $_POST['Email'], $_POST['Priority'], $_POST['Description']);
            echo $response;
            exit;
        case 'get_dialog_data':
            switch ($_GET['get_dialog_data']) {
                case '#favorites':
                    display_favorites();
                    exit;
                case '#configuration':
                    display_global_config();
                    exit;
                case '#hidelist':
                    display_hidelist();
                    exit;
                case '#feeds':
                    display_feeds();
                    exit;
                case '#history':
                    display_history();
                    exit;
                case '#show_legend':
                    display_legend();
                    exit;
                case '#report_bug':
                    report_bug();
                    exit;
                case '#clear_cache':
                    display_clearCache();
                    exit;
                case '#show_transmission':
                    display_transmission();
                    exit;
                case '#show_info':
                    show_info(urldecode($_GET['episode_name']));
                    exit;
                default:
                    exit;
            }
        default:
            $output = "<script type='text/javascript'>alert('Bad Paramaters passed to " . $_SERVER['PHP_SELF'] . ":  " . $_SERVER['REQUEST_URI'] . "');</script>";
    }
    if (isset($exec)) {
        exec($exec, $output);
    }
    if (isset($output)) {
        if (is_array($output)) {
            $output = implode($filler, $output);
        }
        $html_out .= str_replace("\n", "<br>", "<div class='execoutput'>{$output}</div>");
        echo $html_out;
        $html_out = "";
    }
    return;
}