12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- <?php
- class EZTVBridge extends BridgeAbstract {
- const MAINTAINER = "alexAubin";
- const NAME = 'EZTV';
- const URI = 'https://eztv.ch/';
- const DESCRIPTION = 'Returns list of *recent* torrents for a specific show
- on EZTV. Get showID from URLs in https://eztv.ch/shows/showID/show-full-name.';
- const PARAMETERS = array( array(
- 'i' => array(
- 'name' => 'Show ids',
- 'exampleValue' => 'showID1,showID2,…',
- 'required' => true
- )
- ));
- public function collectData(){
- // Make timestamp from relative released time in table
- function makeTimestamp($relativeReleaseTime){
- $relativeDays = 0;
- $relativeHours = 0;
- foreach(explode(" ", $relativeReleaseTime) as $relativeTimeElement) {
- if(substr($relativeTimeElement, -1) == "d") $relativeDays = substr($relativeTimeElement, 0, -1);
- if(substr($relativeTimeElement, -1) == "h") $relativeHours = substr($relativeTimeElement, 0, -1);
- }
- return mktime(date('h') - $relativeHours, 0, 0, date('m'), date('d') - $relativeDays, date('Y'));
- }
- // Loop on show ids
- $showList = explode(",", $this->getInput('i'));
- foreach($showList as $showID) {
- // Get show page
- $html = getSimpleHTMLDOM(self::URI . 'shows/' . rawurlencode($showID) . '/')
- or returnServerError('Could not request EZTV for id "' . $showID . '"');
- // Loop on each element that look like an episode entry...
- foreach($html->find('.forum_header_border') as $element) {
- // Filter entries that are not episode entries
- $ep = $element->find('td', 1);
- if(empty($ep)) continue;
- $epinfo = $ep->find('.epinfo', 0);
- $released = $element->find('td', 3);
- if(empty($epinfo)) continue;
- if(empty($released->plaintext)) continue;
- // Filter entries that are older than 1 week
- if($released->plaintext == '>1 week') continue;
- // Fill item
- $item = array();
- $item['uri'] = self::URI . $epinfo->href;
- $item['id'] = $item['uri'];
- $item['timestamp'] = makeTimestamp($released->plaintext);
- $item['title'] = $epinfo->plaintext;
- $item['content'] = $epinfo->alt;
- if(isset($item['title']))
- $this->items[] = $item;
- }
- }
- }
- }
|