aboutsummaryrefslogtreecommitdiff
path: root/bridges/PillowfortBridge.php
diff options
context:
space:
mode:
authorGravatar Dag <me@dvikan.no> 2022-07-01 15:10:30 +0200
committerGravatar GitHub <noreply@github.com> 2022-07-01 15:10:30 +0200
commit4f75591060d95208a301bc6bf460d875631b29cc (patch)
tree4e37d86840e8d990a563ba75d3de6f84a53cc2de /bridges/PillowfortBridge.php
parent66568e3a39c61546c09a47a5688914a0bdf3c60c (diff)
downloadrss-bridge-4f75591060d95208a301bc6bf460d875631b29cc.tar.gz
rss-bridge-4f75591060d95208a301bc6bf460d875631b29cc.tar.zst
rss-bridge-4f75591060d95208a301bc6bf460d875631b29cc.zip
Reformat codebase v4 (#2872)
Reformat code base to PSR12 Co-authored-by: rssbridge <noreply@github.com>
Diffstat (limited to 'bridges/PillowfortBridge.php')
-rw-r--r--bridges/PillowfortBridge.php377
1 files changed, 199 insertions, 178 deletions
diff --git a/bridges/PillowfortBridge.php b/bridges/PillowfortBridge.php
index 527cc1c7..07cdbdd8 100644
--- a/bridges/PillowfortBridge.php
+++ b/bridges/PillowfortBridge.php
@@ -1,98 +1,109 @@
<?php
-class PillowfortBridge extends BridgeAbstract {
- const NAME = 'Pillowfort';
- const URI = 'https://www.pillowfort.social';
- const DESCRIPTION = 'Returns recent posts from a user';
- const MAINTAINER = 'KamaleiZestri';
- const PARAMETERS = array(array(
- 'username' => array(
- 'name' => 'Username',
- 'type' => 'text',
- 'required' => true,
- 'exampleValue' => 'Staff'
- ),
- 'noava' => array(
- 'name' => 'Hide avatar',
- 'type' => 'checkbox',
- 'title' => 'Check to hide user avatars.'
- ),
- 'noreblog' => array(
- 'name' => 'Hide reblogs',
- 'type' => 'checkbox',
- 'title' => 'Check to only show original posts.'
- ),
- 'noretags' => array(
- 'name' => 'Prefer original tags',
- 'type' => 'checkbox',
- 'title' => 'Check to use tags from original post(if available) instead of reblog\'s tags'
- ),
- 'image' => array(
- 'name' => 'Select image type',
- 'type' => 'list',
- 'title' => 'Decides how the image is displayed, if at all.',
- 'values' => array(
- 'None' => 'None',
- 'Small' => 'Small',
- 'Full' => 'Full'
- ),
- 'defaultValue' => 'Full'
- )
- ));
-
- /**
- * The Pillowfort bridge.
- *
- * Pillowfort pages are dynamically generated from a json file
- * which holds the last 20 or so posts from the given user.
- * This bridge uses that json file and HTML/CSS similar
- * to the Twitter bridge for formatting.
- */
- public function collectData() {
- $jsonSite = getContents($this->getJSONURI());
-
- $jsonFile = json_decode($jsonSite, true);
- $posts = $jsonFile['posts'];
-
- foreach($posts as $post) {
- $item = $this->getItemFromPost($post);
-
- //empty when 'noreblogs' is checked and current post is a reblog.
- if(!empty($item))
- $this->items[] = $item;
- }
- }
-
- public function getName() {
- $name = $this -> getUsername();
- if($name != '')
- return $name . ' - ' . self::NAME;
- else
- return parent::getName();
- }
-
- public function getURI() {
- $name = $this -> getUsername();
- if($name != '')
- return self::URI . '/' . $name;
- else
- return parent::getURI();
- }
-
- protected function getJSONURI() {
- return $this -> getURI() . '/json/?p=1';
- }
-
- protected function getUsername() {
- return $this -> getInput('username');
- }
-
- protected function genAvatarText($author, $avatar_url, $title) {
- $noava = $this -> getInput('noava');
-
- if($noava)
- return '';
- else
- return <<<EOD
+
+class PillowfortBridge extends BridgeAbstract
+{
+ const NAME = 'Pillowfort';
+ const URI = 'https://www.pillowfort.social';
+ const DESCRIPTION = 'Returns recent posts from a user';
+ const MAINTAINER = 'KamaleiZestri';
+ const PARAMETERS = [[
+ 'username' => [
+ 'name' => 'Username',
+ 'type' => 'text',
+ 'required' => true,
+ 'exampleValue' => 'Staff'
+ ],
+ 'noava' => [
+ 'name' => 'Hide avatar',
+ 'type' => 'checkbox',
+ 'title' => 'Check to hide user avatars.'
+ ],
+ 'noreblog' => [
+ 'name' => 'Hide reblogs',
+ 'type' => 'checkbox',
+ 'title' => 'Check to only show original posts.'
+ ],
+ 'noretags' => [
+ 'name' => 'Prefer original tags',
+ 'type' => 'checkbox',
+ 'title' => 'Check to use tags from original post(if available) instead of reblog\'s tags'
+ ],
+ 'image' => [
+ 'name' => 'Select image type',
+ 'type' => 'list',
+ 'title' => 'Decides how the image is displayed, if at all.',
+ 'values' => [
+ 'None' => 'None',
+ 'Small' => 'Small',
+ 'Full' => 'Full'
+ ],
+ 'defaultValue' => 'Full'
+ ]
+ ]];
+
+ /**
+ * The Pillowfort bridge.
+ *
+ * Pillowfort pages are dynamically generated from a json file
+ * which holds the last 20 or so posts from the given user.
+ * This bridge uses that json file and HTML/CSS similar
+ * to the Twitter bridge for formatting.
+ */
+ public function collectData()
+ {
+ $jsonSite = getContents($this->getJSONURI());
+
+ $jsonFile = json_decode($jsonSite, true);
+ $posts = $jsonFile['posts'];
+
+ foreach ($posts as $post) {
+ $item = $this->getItemFromPost($post);
+
+ //empty when 'noreblogs' is checked and current post is a reblog.
+ if (!empty($item)) {
+ $this->items[] = $item;
+ }
+ }
+ }
+
+ public function getName()
+ {
+ $name = $this -> getUsername();
+ if ($name != '') {
+ return $name . ' - ' . self::NAME;
+ } else {
+ return parent::getName();
+ }
+ }
+
+ public function getURI()
+ {
+ $name = $this -> getUsername();
+ if ($name != '') {
+ return self::URI . '/' . $name;
+ } else {
+ return parent::getURI();
+ }
+ }
+
+ protected function getJSONURI()
+ {
+ return $this -> getURI() . '/json/?p=1';
+ }
+
+ protected function getUsername()
+ {
+ return $this -> getInput('username');
+ }
+
+ protected function genAvatarText($author, $avatar_url, $title)
+ {
+ $noava = $this -> getInput('noava');
+
+ if ($noava) {
+ return '';
+ } else {
+ return <<<EOD
<a href="{self::URI}/posts/{$author}">
<img
style="align:top; width:75px; border:1px solid black;"
@@ -101,30 +112,32 @@ class PillowfortBridge extends BridgeAbstract {
title="{$title}" />
</a>
EOD;
- }
+ }
+ }
- protected function genImagesText ($media) {
- $dimensions = $this -> getInput('image');
- $text = '';
+ protected function genImagesText($media)
+ {
+ $dimensions = $this -> getInput('image');
+ $text = '';
- //preg_replace used for images with spaces in the url
+ //preg_replace used for images with spaces in the url
- switch($dimensions) {
- case 'None':
- foreach($media as $image) {
- $imageURL = preg_replace('[ ]', '%20', $image['url']);
- $text .= <<<EOD
+ switch ($dimensions) {
+ case 'None':
+ foreach ($media as $image) {
+ $imageURL = preg_replace('[ ]', '%20', $image['url']);
+ $text .= <<<EOD
<a href="{$imageURL}">
{$imageURL}
</a>
EOD;
- }
- break;
+ }
+ break;
- case 'Small':
- foreach($media as $image) {
- $imageURL = preg_replace('[ ]', '%20', $image['small_image_url']);
- $text .= <<<EOD
+ case 'Small':
+ foreach ($media as $image) {
+ $imageURL = preg_replace('[ ]', '%20', $image['small_image_url']);
+ $text .= <<<EOD
<a href="{$imageURL}">
<img
style="align:top; max-width:558px; border:1px solid black;"
@@ -132,13 +145,13 @@ EOD;
/>
</a>
EOD;
- }
- break;
+ }
+ break;
- case 'Full':
- foreach($media as $image) {
- $imageURL = preg_replace('[ ]', '%20', $image['url']);
- $text .= <<<EOD
+ case 'Full':
+ foreach ($media as $image) {
+ $imageURL = preg_replace('[ ]', '%20', $image['url']);
+ $text .= <<<EOD
<a href="{$imageURL}">
<img
style="align:top; max-width:558px; border:1px solid black;"
@@ -146,66 +159,74 @@ EOD;
/>
</a>
EOD;
- }
- break;
-
- default:
- break;
- }
-
- return $text;
- }
-
- protected function getItemFromPost($post) {
- //check if its a reblog.
- if($post['original_post_id'] == null)
- $embPost = false;
- else
- $embPost = true;
-
- if($this -> getInput('noreblog') && $embPost)
- return array();
-
- $item = array();
-
- $item['uid'] = $post['id'];
- $item['timestamp'] = strtotime($post['created_at']);
-
- if($embPost) {
- $item['uri'] = self::URI . '/posts/' . $post['original_post']['id'];
- $item['author'] = $post['original_username'];
- if($post['original_post']['title'] != '')
- $item['title'] = $post['original_post']['title'];
- else
- $item['title'] = '[NO TITLE]';
- } else {
- $item['uri'] = self::URI . '/posts/' . $post['id'];
- $item['author'] = $post['username'];
- if($post['title'] != '')
- $item['title'] = $post['title'];
- else
- $item['title'] = '[NO TITLE]';
- }
-
- /**
- * 4 cases if it is a reblog.
- * 1: reblog has tags, original has tags. defer to option.
- * 2: reblog has tags, original has no tags. use reblog tags.
- * 3: reblog has no tags, original has tags. use original tags.
- * 4: reblog has no tags, original has no tags. use reblog tags not that it matters.
- */
- $item['categories'] = $post['tags'];
- if($embPost) {
- if($this -> getInput('noretags') || ($post['tags'] == null ))
- $item['categories'] = $post['original_post']['tag_list'];
- }
-
- $avatarText = $this -> genAvatarText($item['author'],
- $post['avatar_url'],
- $item['title']);
- $imagesText = $this -> genImagesText($post['media']);
-
- $item['content'] = <<<EOD
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return $text;
+ }
+
+ protected function getItemFromPost($post)
+ {
+ //check if its a reblog.
+ if ($post['original_post_id'] == null) {
+ $embPost = false;
+ } else {
+ $embPost = true;
+ }
+
+ if ($this -> getInput('noreblog') && $embPost) {
+ return [];
+ }
+
+ $item = [];
+
+ $item['uid'] = $post['id'];
+ $item['timestamp'] = strtotime($post['created_at']);
+
+ if ($embPost) {
+ $item['uri'] = self::URI . '/posts/' . $post['original_post']['id'];
+ $item['author'] = $post['original_username'];
+ if ($post['original_post']['title'] != '') {
+ $item['title'] = $post['original_post']['title'];
+ } else {
+ $item['title'] = '[NO TITLE]';
+ }
+ } else {
+ $item['uri'] = self::URI . '/posts/' . $post['id'];
+ $item['author'] = $post['username'];
+ if ($post['title'] != '') {
+ $item['title'] = $post['title'];
+ } else {
+ $item['title'] = '[NO TITLE]';
+ }
+ }
+
+ /**
+ * 4 cases if it is a reblog.
+ * 1: reblog has tags, original has tags. defer to option.
+ * 2: reblog has tags, original has no tags. use reblog tags.
+ * 3: reblog has no tags, original has tags. use original tags.
+ * 4: reblog has no tags, original has no tags. use reblog tags not that it matters.
+ */
+ $item['categories'] = $post['tags'];
+ if ($embPost) {
+ if ($this -> getInput('noretags') || ($post['tags'] == null )) {
+ $item['categories'] = $post['original_post']['tag_list'];
+ }
+ }
+
+ $avatarText = $this -> genAvatarText(
+ $item['author'],
+ $post['avatar_url'],
+ $item['title']
+ );
+ $imagesText = $this -> genImagesText($post['media']);
+
+ $item['content'] = <<<EOD
<div style="display: inline-block; vertical-align: top;">
{$avatarText}
</div>
@@ -217,6 +238,6 @@ EOD;
</div>
EOD;
- return $item;
- }
+ return $item;
+ }
}