diff options
| author | Quentin Aristote <quentin@aristote.fr> | 2022-12-20 22:29:55 +0100 |
|---|---|---|
| committer | Quentin Aristote <quentin@aristote.fr> | 2022-12-20 22:29:55 +0100 |
| commit | 95644485ac1402a8dc84c520a3ded7b29720f950 (patch) | |
| tree | c124a795dba03106cadff1645c532f6251898f86 /config/services/web/rss/WhatsOnMubiBridge.php | |
| parent | 51df83cffaa45130f94bf5ab78b6b14fbb37ec4d (diff) | |
| parent | 9bde3c4624eb916bafcf9a18792edb42e3a25a17 (diff) | |
Merge branch 'master' into searx-engine-alternativeto
Diffstat (limited to 'config/services/web/rss/WhatsOnMubiBridge.php')
| -rw-r--r-- | config/services/web/rss/WhatsOnMubiBridge.php | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/config/services/web/rss/WhatsOnMubiBridge.php b/config/services/web/rss/WhatsOnMubiBridge.php new file mode 100644 index 0000000..4cf7718 --- /dev/null +++ b/config/services/web/rss/WhatsOnMubiBridge.php @@ -0,0 +1,49 @@ +<?php + +class WhatsOnMubiBridge extends XPathAbstract { + const NAME = 'What\'s on Mubi Bridge'; + const URI = 'https://whatsonmubi.com/?catalogue=ns&sort=expires-desc'; + const DESCRIPTION = 'Movies currently showing on Mubi.'; + const MAINTAINER = 'Quentin Aristote'; + const CACHE_TIMEOUT = 21800; // 6h + + const PARAMETERS = [ + '' => [ + 'country' => [ + 'name' => 'Country', + 'type' => 'text', + 'exampleValue' => 'fr', + 'defaultValue' => 'fr', + ] + ] + ]; + + const XPATH_EXPRESSION_ITEM = '//div[@class="film"]'; + const XPATH_EXPRESSION_ITEM_TITLE = './/h2'; + const XPATH_EXPRESSION_ITEM_CONTENT = './/div[@class="film_details flex flex-col flex-1"]'; + const XPATH_EXPRESSION_ITEM_URI = './/a[@class="relative film_thumbnail"]/@href'; + const XPATH_EXPRESSION_ITEM_AUTHOR = './@data-directors'; + const XPATH_EXPRESSION_ITEM_TIMESTAMP = './/p[@class="hidden film-expires"]'; + const XPATH_EXPRESSION_ITEM_ENCLOSURES = './/a[@class="relative film_thumbnail"]/img/@src'; + const XPATH_EXPRESSION_ITEM_CATEGORIES = './/div[@class="film_details flex flex-col flex-1"]//div[@class="mt-3 flex flex-wrap"]'; + + public function getSourceUrl() { + return self::URI . '&showing=' . $this->getInput('country'); + } + + public function getIcon() { + return 'https://whatsonmubi.com/favicon.ico'; + } + + protected function formatItemTimestamp($value) { + return strtotime('today +' . $value); + } + + protected function formatItemContent($value) { + $text = preg_replace("/\s{2}\s+/", "\n", $value); + $lines = array_map("trim", explode("\n", $text)); + $title = $lines[0]; + $director = $lines[1]; + return $director . ' ' . $title; + } +} |
