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 " <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 " <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;\">";
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); } } } }
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; } }