diff options
author | 2024-11-24 18:09:59 +0100 | |
---|---|---|
committer | 2024-11-24 18:09:59 +0100 | |
commit | 74496e23aaa9101ac718a3b12dafa4206921932c (patch) | |
tree | 21c0a9ac06864122c4c7e07720c3d4d94b3bbc9e | |
parent | 83bc3fd7620c161996f06480dbec7197ae2d95e6 (diff) | |
download | rss-bridge-74496e23aaa9101ac718a3b12dafa4206921932c.tar.gz rss-bridge-74496e23aaa9101ac718a3b12dafa4206921932c.tar.zst rss-bridge-74496e23aaa9101ac718a3b12dafa4206921932c.zip |
[MixologyBridge] add new bridge (#4331)
* [MixologyBridge] add new bridge
* [MixologyBridge] change invalid item property tags to categories
* [MixologyBridge] rewrite into FeedExpander
* [MixologyBridge] fix code formatting
-rw-r--r-- | bridges/MixologyBridge.php | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/bridges/MixologyBridge.php b/bridges/MixologyBridge.php new file mode 100644 index 00000000..1246b4db --- /dev/null +++ b/bridges/MixologyBridge.php @@ -0,0 +1,49 @@ +<?php + +class MixologyBridge extends FeedExpander +{ + const MAINTAINER = 'swofl'; + const NAME = 'Mixology'; + const URI = 'https://mixology.eu'; + const CACHE_TIMEOUT = 6 * 60 * 60; // 6h + const DESCRIPTION = 'Get latest blog posts from Mixology'; + const PARAMETERS = [ [ + 'limit' => self::LIMIT, + ] ]; + + public function collectData() + { + $feed_url = self::URI . '/feed'; + $limit = $this->getInput('limit') ?? 10; + $this->collectExpandableDatas($feed_url, $limit); + } + + protected function parseItem(array $item) + { + $article = getSimpleHTMLDOMCached($item['uri']); + + $content = ''; + + $headerImage = $article->find('div.edgtf-full-width img.wp-post-image', 0); + + if (is_object($headerImage)) { + $item['enclosures'] = []; + $item['enclosures'][] = $headerImage->src; + $content .= '<img src="' . $headerImage->src . '"/>'; + } + + foreach ($article->find('article .wpb_content_element > .wpb_wrapper') as $element) { + $content .= $element->innertext; + } + + $item['content'] = $content; + + $item['categories'] = []; + + foreach ($article->find('.edgtf-tags > a') as $tag) { + $item['categories'][] = $tag->plaintext; + } + + return $item; + } +} |