Example #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);
}
     }
     closedir($handle);
     $sortedflags = array_flip($sortedflags);
     asort($sortedflags);
     $sortedflags = array_flip($sortedflags);
     reset($sortedflags);
     if ($action != "new_lang") {
         echo "&nbsp;&nbsp;&nbsp;<select name=\"v_flagsfile\" id=\"v_flagsfile\" onchange=\"document.getElementById('flag').src=document.getElementById('v_flagsfile').value;\">\n";
         foreach ($sortedflags as $key => $value) {
             $i = $sortedflags[$key];
             echo '<option value="', $flagfiles["path"][$i], '"';
             if ($v_flagsfile == $flagfiles["path"][$i]) {
                 echo ' selected="selected"';
                 $flag_i = $i;
             }
             echo ">", filename_encode($flagfiles["file"][$i]), "</option>\n";
         }
         echo "</select>\n";
     } else {
         foreach ($sortedflags as $key => $value) {
             $i = $sortedflags[$key];
             if ($v_flagsfile == $flagfiles["path"][$i]) {
                 $flag_i = $i;
                 break;
             }
         }
         echo '<input type="hidden" name="v_flagsfile" value="', $v_flagsfile, '">';
         echo $flagfiles["file"][$i];
     }
 }
 if (isset($flag_i) && isset($flagfiles["path"][$flag_i])) {
     }
     closedir($handle);
     $sortedflags = array_flip($sortedflags);
     asort($sortedflags);
     $sortedflags = array_flip($sortedflags);
     reset($sortedflags);
     if ($action != "new_lang") {
         print "&nbsp;&nbsp;&nbsp;<select name=\"v_flagsfile\" id=\"v_flagsfile\" onchange=\"document.getElementById('flag').src=document.getElementById('v_flagsfile').value;\">\n";
         foreach ($sortedflags as $key => $value) {
             $i = $sortedflags[$key];
             print "<option value=\"" . $flagfiles["path"][$i] . "\"";
             if ($v_flagsfile == $flagfiles["path"][$i]) {
                 print " selected=\"selected\"";
                 $flag_i = $i;
             }
             print ">" . filename_encode($flagfiles["file"][$i]) . "</option>\n";
         }
         print "</select>\n";
     } else {
         foreach ($sortedflags as $key => $value) {
             $i = $sortedflags[$key];
             if ($v_flagsfile == $flagfiles["path"][$i]) {
                 $flag_i = $i;
                 break;
             }
         }
         print $flagfiles["file"][$i];
     }
 }
 if (isset($flag_i) && isset($flagfiles["path"][$flag_i])) {
     print "<div style=\"display: inline; padding-left: 7px;\">";
Example #4
0
function transmission_add_torrent($tor, $dest, $title, $seedRatio)
{
    global $config_values;
    // transmission dies with bad folder if it doesn't end in a /
    if (substr($dest, strlen($dest) - 1, 1) != '/') {
        $dest .= '/';
    }
    if (preg_match('/^magnet:/', $tor)) {
        $request = array('method' => 'torrent-add', 'arguments' => array('download-dir' => $dest, 'filename' => $tor));
    } else {
        $request = array('method' => 'torrent-add', 'arguments' => array('download-dir' => $dest, 'metainfo' => base64_encode($tor)));
    }
    $response = transmission_rpc($request);
    $torHash = $response['arguments']['torrent-added']['hashString'];
    if (isset($response['result']) and $response['result'] == 'success') {
        $cache = $config_values['Settings']['Cache Dir'] . "/rss_dl_" . filename_encode($title);
        if ($torHash) {
            $handle = fopen("{$cache}", "w");
            fwrite($handle, $torHash);
            fclose($handle);
        }
        if ($seedRatio >= 0 && $torHash) {
            $request = array('method' => 'torrent-set', 'arguments' => array('ids' => $torHash, 'seedRatioLimit' => $seedRatio, 'seedRatioMode' => 1));
            $response = transmission_rpc($request);
            if ($response['result'] != 'success') {
                _debug("Failed setting ratio limit for {$title}\n");
            }
        }
        return 0;
    } else {
        if ($response['result'] == 'duplicate torrent') {
            return "Duplicate Torrent";
        } else {
            if (!isset($response['result'])) {
                return "Failure connecting to Transmission";
            } else {
                return "Transmission RPC Error: " . print_r($response, TRUE);
            }
        }
    }
}
Example #5
0
function check_cache($title)
{
    global $config_values, $matched;
    if (isset($config_values['Settings']['Cache Dir'])) {
        $cache_file = $config_values['Settings']['Cache Dir'] . '/rss_dl_' . filename_encode($title);
        if (!file_exists($cache_file)) {
            if ($config_values['Settings']['Verify Episode']) {
                return check_cache_episode($title);
            } else {
                return 1;
            }
        } else {
            $matched = "cachehit";
            return 0;
        }
    } else {
        // No Cache, Always download
        return 1;
    }
}