rss-bridge/bridges/EZTVBridge.php
2016-12-06 01:20:23 +01:00

81 lines
2.8 KiB
PHP

<?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 == '&gt;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;
}
}
}
}
}