diff options
Diffstat (limited to 'bridges/EZTVBridge.php')
-rw-r--r-- | bridges/EZTVBridge.php | 195 |
1 files changed, 101 insertions, 94 deletions
diff --git a/bridges/EZTVBridge.php b/bridges/EZTVBridge.php index 956776ed..cf969cb5 100644 --- a/bridges/EZTVBridge.php +++ b/bridges/EZTVBridge.php @@ -1,111 +1,118 @@ <?php -class EZTVBridge extends BridgeAbstract { - const MAINTAINER = 'alexAubin'; - const NAME = 'EZTV'; - const URI = 'https://eztv.re/'; - const DESCRIPTION = 'Returns list of torrents for specific show(s) +class EZTVBridge extends BridgeAbstract +{ + const MAINTAINER = 'alexAubin'; + const NAME = 'EZTV'; + const URI = 'https://eztv.re/'; + const DESCRIPTION = 'Returns list of torrents for specific show(s) on EZTV. Get IMDB IDs from IMDB.'; - const PARAMETERS = array( - array( - 'ids' => array( - 'name' => 'Show IMDB IDs', - 'exampleValue' => '8740790,1733785', - 'required' => true, - 'title' => 'One or more IMDB show IDs (can be found in the IMDB show URL)' - ), - 'no480' => array( - 'name' => 'No 480p', - 'type' => 'checkbox', - 'title' => 'Activate to exclude 480p torrents' - ), - 'no720' => array( - 'name' => 'No 720p', - 'type' => 'checkbox', - 'title' => 'Activate to exclude 720p torrents' - ), - 'no1080' => array( - 'name' => 'No 1080p', - 'type' => 'checkbox', - 'title' => 'Activate to exclude 1080p torrents' - ), - 'no2160' => array( - 'name' => 'No 2160p', - 'type' => 'checkbox', - 'title' => 'Activate to exclude 2160p torrents' - ), - 'noUnknownRes' => array( - 'name' => 'No Unknown resolution', - 'type' => 'checkbox', - 'title' => 'Activate to exclude unknown resolution torrents' - ), - ) - ); + const PARAMETERS = [ + [ + 'ids' => [ + 'name' => 'Show IMDB IDs', + 'exampleValue' => '8740790,1733785', + 'required' => true, + 'title' => 'One or more IMDB show IDs (can be found in the IMDB show URL)' + ], + 'no480' => [ + 'name' => 'No 480p', + 'type' => 'checkbox', + 'title' => 'Activate to exclude 480p torrents' + ], + 'no720' => [ + 'name' => 'No 720p', + 'type' => 'checkbox', + 'title' => 'Activate to exclude 720p torrents' + ], + 'no1080' => [ + 'name' => 'No 1080p', + 'type' => 'checkbox', + 'title' => 'Activate to exclude 1080p torrents' + ], + 'no2160' => [ + 'name' => 'No 2160p', + 'type' => 'checkbox', + 'title' => 'Activate to exclude 2160p torrents' + ], + 'noUnknownRes' => [ + 'name' => 'No Unknown resolution', + 'type' => 'checkbox', + 'title' => 'Activate to exclude unknown resolution torrents' + ], + ] + ]; - // Shamelessly lifted from https://stackoverflow.com/a/2510459 - protected function formatBytes($bytes, $precision = 2) { - $units = array('B', 'KB', 'MB', 'GB', 'TB'); + // Shamelessly lifted from https://stackoverflow.com/a/2510459 + protected function formatBytes($bytes, $precision = 2) + { + $units = ['B', 'KB', 'MB', 'GB', 'TB']; - $bytes = max($bytes, 0); - $pow = floor(($bytes ? log($bytes) : 0) / log(1024)); - $pow = min($pow, count($units) - 1); - $bytes /= pow(1024, $pow); + $bytes = max($bytes, 0); + $pow = floor(($bytes ? log($bytes) : 0) / log(1024)); + $pow = min($pow, count($units) - 1); + $bytes /= pow(1024, $pow); - return round($bytes, $precision) . ' ' . $units[$pow]; - } + return round($bytes, $precision) . ' ' . $units[$pow]; + } - protected function getItemFromTorrent($torrent){ - $item = array(); - $item['uri'] = $torrent->episode_url; - $item['author'] = $torrent->imdb_id; - $item['timestamp'] = date('d F Y H:i:s', $torrent->date_released_unix); - $item['title'] = $torrent->title; - $item['enclosures'][] = $torrent->torrent_url; + protected function getItemFromTorrent($torrent) + { + $item = []; + $item['uri'] = $torrent->episode_url; + $item['author'] = $torrent->imdb_id; + $item['timestamp'] = date('d F Y H:i:s', $torrent->date_released_unix); + $item['title'] = $torrent->title; + $item['enclosures'][] = $torrent->torrent_url; - $thumbnailUri = 'https:' . $torrent->small_screenshot; - $torrentSize = $this->formatBytes($torrent->size_bytes); + $thumbnailUri = 'https:' . $torrent->small_screenshot; + $torrentSize = $this->formatBytes($torrent->size_bytes); - $item['content'] = $torrent->filename . '<br>File size: ' - . $torrentSize . '<br><a href="' . $torrent->magnet_url - . '">magnet link</a><br><a href="' . $torrent->torrent_url - . '">torrent link</a><br><img src="' . $thumbnailUri . '" />'; + $item['content'] = $torrent->filename . '<br>File size: ' + . $torrentSize . '<br><a href="' . $torrent->magnet_url + . '">magnet link</a><br><a href="' . $torrent->torrent_url + . '">torrent link</a><br><img src="' . $thumbnailUri . '" />'; - return $item; - } + return $item; + } - private static function compareDate($torrent1, $torrent2) { - return (strtotime($torrent1['timestamp']) < strtotime($torrent2['timestamp']) ? 1 : -1); - } + private static function compareDate($torrent1, $torrent2) + { + return (strtotime($torrent1['timestamp']) < strtotime($torrent2['timestamp']) ? 1 : -1); + } - public function collectData(){ - $showIds = explode(',', $this->getInput('ids')); + public function collectData() + { + $showIds = explode(',', $this->getInput('ids')); - foreach($showIds as $showId) { - $eztvUri = $this->getURI() . 'api/get-torrents?imdb_id=' . $showId; - $content = getContents($eztvUri); - $torrents = json_decode($content)->torrents; - foreach($torrents as $torrent) { - $title = $torrent->title; - $regex480 = '/480p/'; - $regex720 = '/720p/'; - $regex1080 = '/1080p/'; - $regex2160 = '/2160p/'; - $regexUnknown = '/(480p|720p|1080p|2160p)/'; - // Skip unwanted resolution torrents - if ((preg_match($regex480, $title) === 1 && $this->getInput('no480')) - || (preg_match($regex720, $title) === 1 && $this->getInput('no720')) - || (preg_match($regex1080, $title) === 1 && $this->getInput('no1080')) - || (preg_match($regex2160, $title) === 1 && $this->getInput('no2160')) - || (preg_match($regexUnknown, $title) !== 1 && $this->getInput('noUnknownRes'))) { - continue; - } + foreach ($showIds as $showId) { + $eztvUri = $this->getURI() . 'api/get-torrents?imdb_id=' . $showId; + $content = getContents($eztvUri); + $torrents = json_decode($content)->torrents; + foreach ($torrents as $torrent) { + $title = $torrent->title; + $regex480 = '/480p/'; + $regex720 = '/720p/'; + $regex1080 = '/1080p/'; + $regex2160 = '/2160p/'; + $regexUnknown = '/(480p|720p|1080p|2160p)/'; + // Skip unwanted resolution torrents + if ( + (preg_match($regex480, $title) === 1 && $this->getInput('no480')) + || (preg_match($regex720, $title) === 1 && $this->getInput('no720')) + || (preg_match($regex1080, $title) === 1 && $this->getInput('no1080')) + || (preg_match($regex2160, $title) === 1 && $this->getInput('no2160')) + || (preg_match($regexUnknown, $title) !== 1 && $this->getInput('noUnknownRes')) + ) { + continue; + } - $this->items[] = $this->getItemFromTorrent($torrent); - } - } + $this->items[] = $this->getItemFromTorrent($torrent); + } + } - // Sort all torrents in array by date - usort($this->items, array('EZTVBridge', 'compareDate')); - } + // Sort all torrents in array by date + usort($this->items, ['EZTVBridge', 'compareDate']); + } } |