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; } } } } }