?> <img alt="" src="<?php print $poster; ?> " /> <div id="info_<?php print $showID; ?> "> <h1<?php print strtolower($show->status) == $config['index']['status_ended'] ? ' class="ended"' : ''; ?> > <div class="icons"> <a href="<?php print build_newzbin_search_string($show->name, $show->language, $show->format, $show->source, false); ?> " target="_blank" title="newzbin"><img alt="" src="images/newzbin.png" /></a> <a href="<?php print $show->url; ?> " target="_blank" title="tvrage"><img alt="" src="images/info.png" /></a> <?php if (!empty($show->attributes()->id)) { ?> <a href="#" title="edit" id="edit_<?php print $showID; ?> _link" class="editShow"><img alt="" src="images/edit.png" /></a> <a href="#" title="delete?" id="<?php print $showID;
function search_nzb($params) { global $config; $q_debug = $params['show'] . ' - ' . $params['season'] . 'x' . sprintf('%02d', $params['episode']); print date($config['logging']['date_format']) . ' searching ' . $config['nzb_site'] . ' for ' . $q_debug . $config['debug_separator']; switch ($config['nzb_site']) { case 'tvnzb': //cache rss feed //-- //search feed //-- break; case 'nzbmatrix': //split out airdate for nzbmatrix format if ($params['airdate']) { //$airdate = explode('-',$params['airdate']); //$nzbmatrixdate= $airdate[0]."-".$airdate[1]." ".$airdate[2]; //should look like '"House S02E16" or "House 2006-12-13"' $q = '"' . $params['show'] . ' S' . sprintf('%02d', $params['season']) . 'E' . sprintf('%02d', $params['episode']) . '" or '; $q .= '"' . $params['show'] . ' ' . $params['airdate'] . '"'; //$q = '+"'.$params['show'] . '" and ("' . 'S' . sprintf('%02d', $params['season']) . 'E' . sprintf('%02d', $params['episode']).'" or "'.$nzbmatrixdate.'")'; } else { //clean query $showClean = str_replace($config['nzbmatrix']['strip_chars'], '', $params['show']); //main query $q = $showClean . ' ' . 'S' . sprintf('%02d', $params['season']) . 'E' . sprintf('%02d', $params['episode']); } //formatted query $query = build_nzbmatrix_search_string(array('term' => $q, 'format' => $params['format'])); //wait for next call if too son if (!empty($GLOBALS['nzbmatrix_timestamp'])) { $elapsed = time() - $GLOBALS['nzbmatrix_timestamp']; if ($elapsed < $config['nzbmatrix']['wait_time']) { $wait = $config['nzbmatrix']['wait_time'] - $elapsed; print 'waiting ' . $wait . 's for the API' . $config['debug_separator']; sleep($wait); } } //print "\n $query \n"; //send to nzbmatrix if ($result = @file_get_contents($query, 'r')) { $GLOBALS['nzbmatrix_timestamp'] = time(); //api rate limited exceeded, so wait the required time and try again if (preg_match('/please_wait_(\\d+)/', $result, $matches)) { $sec = intval($matches[1]); print 'FAIL (too many requests, retrying in ' . $sec . "s)\n"; sleep($sec); return search_nzb($params); } $result = str_replace("\n", '', $result); $results = explode('|', $result); /* NZBID:444027; = NZB ID On Site NZBNAME:mandriva linux 2009; = NZB Name On Site LINK:nzbmatrix.com/nzb-details.php?id=444027&hit=1; = Link To NZB Details PAge SIZE:1469988208.64; = Size in bytes INDEX_DATE:2009-02-14 09:08:55; = Indexed By Site (Date/Time GMT) USENET_DATE:2009-02-12 2:48:47; = Posted To Usenet (Date/Time GMT) CATEGORY:TV > Divx/Xvid; = NZB Post Category GROUP:alt.binaries.linux; = Usenet Newsgroup COMMENTS:0; = Number Of Comments Posted HITS:174; = Number Of Hits (Views) NFO:yes; = NFO Present REGION:0; = Region Coding (See notes) */ foreach ($results as $result) { $lines = explode(';', $result); $parts = array(); foreach ($lines as $line) { @(list($key, $value) = @explode(':', $line)); $parts[$key] = $value; } $name_ok = true; if (isset($parts['NZBNAME'])) { //check name has these terms if (!empty($config['nzbmatrix_hasterms'])) { foreach ($config['nzbmatrix_hasterms'] as $term) { if (stripos($parts['NZBNAME'], $term) === false) { $name_ok = false; } } } //check it doesn't have these ones if ($name_ok && !empty($config['nbzmatrix_noterms'])) { foreach ($config['nbzmatrix_noterms'] as $term) { if (stripos($parts['NZBNAME'], $term) !== false) { $name_ok = false; } } } } else { $name_ok = false; } //found if ($name_ok) { print 'found nzb ID ' . $parts['NZBID'] . $config['debug_separator']; return array('id' => $parts['NZBID'], 'title' => $parts['NZBNAME'], 'url' => $config['nzbmatrix']['protocol'] . $parts['LINK']); } } print 'nzb ID not found' . $config['debug_separator']; return false; } break; case 'newzbin': //main query $q = '"' . str_replace('"', '\\"', $params['show']) . ' - ' . $params['season'] . 'x' . sprintf('%02d', $params['episode']); $q .= '" OR "' . str_replace('"', '\\"', $params['show']) . ' (' . $params['year'] . ') - ' . $params['season'] . 'x' . sprintf('%02d', $params['episode']); $q .= '" OR "' . str_replace('"', '\\"', $show) . ' - ' . $params['airdate'] . '"'; $q_debug = $show . ' - ' . $season . 'x' . sprintf('%02d', $episode); //formatted query $query = build_newzbin_search_string($q, $params['language'], $params['format'], $params['source'], true, true); //send to newzbin if ($fp = @fopen($query, 'r')) { $line = @fgetcsv($fp); /* 0: posted date 1: nzb id 2: nzb title 3: newzbin url 4: tv url 5: newsgroup names (separated by +) */ //newzbin id found if ($line[1] > 0) { print 'found nzb ID ' . $line[1] . $config['debug_separator']; return array('id' => $line[1], 'title' => $line[2]); } else { print 'nzb ID not found' . $config['debug_separator']; return false; } } break; } }
function search_newzbin($show, $year, $season, $episode, $language, $format, $source) { global $config; //main query $q = '"' . str_replace('"', '\\"', $show) . ' - ' . $season . 'x' . sprintf('%02d', $episode) . '" OR "' . str_replace('"', '\\"', $show) . ' (' . $year . ') - ' . $season . 'x' . sprintf('%02d', $episode) . '"'; $q_debug = $show . ' - ' . $season . 'x' . sprintf('%02d', $episode); print date($config['logging']['date_format']) . ' searching newzbin for ' . $q_debug . $config['debug_separator']; //formatted query $query = build_newzbin_search_string($q, $language, $format, $source, true, true); //send to newzbin if ($fp = @fopen($query, 'r')) { $line = @fgetcsv($fp); /* 0: posted date 1: nzb id 2: nzb title 3: newzbin url 4: tv url 5: newsgroup names (separated by +) */ //newzbin id found if ($line[1] > 0) { print 'found nzb ID ' . $line[1] . $config['debug_separator']; return array('id' => $line[1], 'title' => $line[2]); } else { print 'nzb ID not found' . $config['debug_separator']; return false; } } }