aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Sebastian Wolf <117176763+swofl@users.noreply.github.com> 2024-11-24 18:09:59 +0100
committerGravatar GitHub <noreply@github.com> 2024-11-24 18:09:59 +0100
commit74496e23aaa9101ac718a3b12dafa4206921932c (patch)
tree21c0a9ac06864122c4c7e07720c3d4d94b3bbc9e
parent83bc3fd7620c161996f06480dbec7197ae2d95e6 (diff)
downloadrss-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.php49
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;
+ }
+}