aboutsummaryrefslogtreecommitdiff
path: root/bridges/AnimeUltimeBridge.php
diff options
context:
space:
mode:
Diffstat (limited to 'bridges/AnimeUltimeBridge.php')
-rw-r--r--bridges/AnimeUltimeBridge.php278
1 files changed, 139 insertions, 139 deletions
diff --git a/bridges/AnimeUltimeBridge.php b/bridges/AnimeUltimeBridge.php
index c18821aa..23d093a6 100644
--- a/bridges/AnimeUltimeBridge.php
+++ b/bridges/AnimeUltimeBridge.php
@@ -1,141 +1,141 @@
<?php
-class AnimeUltimeBridge extends BridgeAbstract {
-
- const MAINTAINER = 'ORelio';
- const NAME = 'Anime-Ultime';
- const URI = 'http://www.anime-ultime.net/';
- const CACHE_TIMEOUT = 10800; // 3h
- const DESCRIPTION = 'Returns the newest releases posted on Anime-Ultime.';
- const PARAMETERS = array( array(
- 'type' => array(
- 'name' => 'Type',
- 'type' => 'list',
- 'values' => array(
- 'Everything' => '',
- 'Anime' => 'A',
- 'Drama' => 'D',
- 'Tokusatsu' => 'T'
- )
- )
- ));
-
- private $filter = 'Releases';
-
- public function collectData(){
-
- //Add type filter if provided
- $typeFilter = array_search(
- $this->getInput('type'),
- self::PARAMETERS[$this->queriedContext]['type']['values']
- );
-
- //Build date and filters for making requests
- $thismonth = date('mY') . $typeFilter;
- $lastmonth = date('mY', mktime(0, 0, 0, date('n') - 1, 1, date('Y'))) . $typeFilter;
-
- //Process each HTML page until having 10 releases
- $processedOK = 0;
- foreach (array($thismonth, $lastmonth) as $requestFilter) {
-
- $url = self::URI . 'history-0-1/' . $requestFilter;
- $html = getContents($url);
- // Convert html from iso-8859-1 => utf8
- $html = utf8_encode($html);
- $html = str_get_html($html);
-
- //Relases are sorted by day : process each day individually
- foreach($html->find('div.history', 0)->find('h3') as $daySection) {
-
- //Retrieve day and build date information
- $dateString = $daySection->plaintext;
- $day = intval(substr($dateString, strpos($dateString, ' ') + 1, 2));
- $item_date = strtotime(str_pad($day, 2, '0', STR_PAD_LEFT)
- . '-'
- . substr($requestFilter, 0, 2)
- . '-'
- . substr($requestFilter, 2, 4));
-
- //<h3>day</h3><br /><table><tr> <-- useful data in table rows
- $release = $daySection->next_sibling()->next_sibling()->first_child();
-
- //Process each release of that day, ignoring first table row: contains table headers
- while(!is_null($release = $release->next_sibling())) {
- if(count($release->find('td')) > 0) {
-
- //Retrieve metadata from table columns
- $item_link_element = $release->find('td', 0)->find('a', 0);
- $item_uri = self::URI . $item_link_element->href;
- $item_name = html_entity_decode($item_link_element->plaintext);
-
- $item_image = self::URI . substr(
- $item_link_element->onmouseover,
- 37,
- strpos($item_link_element->onmouseover, ' ', 37) - 37
- );
-
- $item_episode = html_entity_decode(
- str_pad(
- $release->find('td', 1)->plaintext,
- 2,
- '0',
- STR_PAD_LEFT
- )
- );
-
- $item_fansub = $release->find('td', 2)->plaintext;
- $item_type = $release->find('td', 4)->plaintext;
-
- if(!empty($item_uri)) {
-
- // Retrieve description from description page
- $html_item = getContents($item_uri);
- // Convert html from iso-8859-1 => utf8
- $html_item = utf8_encode($html_item);
- $item_description = substr(
- $html_item,
- strpos($html_item, 'class="principal_contain" align="center">') + 41
- );
- $item_description = substr($item_description,
- 0,
- strpos($item_description, '<div id="table">')
- );
-
- // Convert relative image src into absolute image src, remove line breaks
- $item_description = defaultLinkTo($item_description, self::URI);
- $item_description = str_replace("\r", '', $item_description);
- $item_description = str_replace("\n", '', $item_description);
-
- //Build and add final item
- $item = array();
- $item['uri'] = $item_uri;
- $item['title'] = $item_name . ' ' . $item_type . ' ' . $item_episode;
- $item['author'] = $item_fansub;
- $item['timestamp'] = $item_date;
- $item['enclosures'] = array($item_image);
- $item['content'] = $item_description;
- $this->items[] = $item;
- $processedOK++;
-
- //Stop processing once limit is reached
- if ($processedOK >= 10)
- return;
- }
- }
- }
- }
- }
- }
-
- public function getName() {
- if(!is_null($this->getInput('type'))) {
- $typeFilter = array_search(
- $this->getInput('type'),
- self::PARAMETERS[$this->queriedContext]['type']['values']
- );
-
- return 'Latest ' . $typeFilter . ' - Anime-Ultime Bridge';
- }
-
- return parent::getName();
- }
+
+class AnimeUltimeBridge extends BridgeAbstract
+{
+ const MAINTAINER = 'ORelio';
+ const NAME = 'Anime-Ultime';
+ const URI = 'http://www.anime-ultime.net/';
+ const CACHE_TIMEOUT = 10800; // 3h
+ const DESCRIPTION = 'Returns the newest releases posted on Anime-Ultime.';
+ const PARAMETERS = [ [
+ 'type' => [
+ 'name' => 'Type',
+ 'type' => 'list',
+ 'values' => [
+ 'Everything' => '',
+ 'Anime' => 'A',
+ 'Drama' => 'D',
+ 'Tokusatsu' => 'T'
+ ]
+ ]
+ ]];
+
+ private $filter = 'Releases';
+
+ public function collectData()
+ {
+ //Add type filter if provided
+ $typeFilter = array_search(
+ $this->getInput('type'),
+ self::PARAMETERS[$this->queriedContext]['type']['values']
+ );
+
+ //Build date and filters for making requests
+ $thismonth = date('mY') . $typeFilter;
+ $lastmonth = date('mY', mktime(0, 0, 0, date('n') - 1, 1, date('Y'))) . $typeFilter;
+
+ //Process each HTML page until having 10 releases
+ $processedOK = 0;
+ foreach ([$thismonth, $lastmonth] as $requestFilter) {
+ $url = self::URI . 'history-0-1/' . $requestFilter;
+ $html = getContents($url);
+ // Convert html from iso-8859-1 => utf8
+ $html = utf8_encode($html);
+ $html = str_get_html($html);
+
+ //Relases are sorted by day : process each day individually
+ foreach ($html->find('div.history', 0)->find('h3') as $daySection) {
+ //Retrieve day and build date information
+ $dateString = $daySection->plaintext;
+ $day = intval(substr($dateString, strpos($dateString, ' ') + 1, 2));
+ $item_date = strtotime(str_pad($day, 2, '0', STR_PAD_LEFT)
+ . '-'
+ . substr($requestFilter, 0, 2)
+ . '-'
+ . substr($requestFilter, 2, 4));
+
+ //<h3>day</h3><br /><table><tr> <-- useful data in table rows
+ $release = $daySection->next_sibling()->next_sibling()->first_child();
+
+ //Process each release of that day, ignoring first table row: contains table headers
+ while (!is_null($release = $release->next_sibling())) {
+ if (count($release->find('td')) > 0) {
+ //Retrieve metadata from table columns
+ $item_link_element = $release->find('td', 0)->find('a', 0);
+ $item_uri = self::URI . $item_link_element->href;
+ $item_name = html_entity_decode($item_link_element->plaintext);
+
+ $item_image = self::URI . substr(
+ $item_link_element->onmouseover,
+ 37,
+ strpos($item_link_element->onmouseover, ' ', 37) - 37
+ );
+
+ $item_episode = html_entity_decode(
+ str_pad(
+ $release->find('td', 1)->plaintext,
+ 2,
+ '0',
+ STR_PAD_LEFT
+ )
+ );
+
+ $item_fansub = $release->find('td', 2)->plaintext;
+ $item_type = $release->find('td', 4)->plaintext;
+
+ if (!empty($item_uri)) {
+ // Retrieve description from description page
+ $html_item = getContents($item_uri);
+ // Convert html from iso-8859-1 => utf8
+ $html_item = utf8_encode($html_item);
+ $item_description = substr(
+ $html_item,
+ strpos($html_item, 'class="principal_contain" align="center">') + 41
+ );
+ $item_description = substr(
+ $item_description,
+ 0,
+ strpos($item_description, '<div id="table">')
+ );
+
+ // Convert relative image src into absolute image src, remove line breaks
+ $item_description = defaultLinkTo($item_description, self::URI);
+ $item_description = str_replace("\r", '', $item_description);
+ $item_description = str_replace("\n", '', $item_description);
+
+ //Build and add final item
+ $item = [];
+ $item['uri'] = $item_uri;
+ $item['title'] = $item_name . ' ' . $item_type . ' ' . $item_episode;
+ $item['author'] = $item_fansub;
+ $item['timestamp'] = $item_date;
+ $item['enclosures'] = [$item_image];
+ $item['content'] = $item_description;
+ $this->items[] = $item;
+ $processedOK++;
+
+ //Stop processing once limit is reached
+ if ($processedOK >= 10) {
+ return;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ public function getName()
+ {
+ if (!is_null($this->getInput('type'))) {
+ $typeFilter = array_search(
+ $this->getInput('type'),
+ self::PARAMETERS[$this->queriedContext]['type']['values']
+ );
+
+ return 'Latest ' . $typeFilter . ' - Anime-Ultime Bridge';
+ }
+
+ return parent::getName();
+ }
}