From 91fd77af3b2cff61ad474f52a13e733cd696098e Mon Sep 17 00:00:00 2001
From: Hypolite Petovan <mrpetovan@gmail.com>
Date: Wed, 14 Feb 2018 21:43:40 -0500
Subject: [PATCH] Refactor bbcode() into BBCode::convert()

---
 blogger/blogger.php                   |  4 +++-
 dwpost/dwpost.php                     |  3 ++-
 ijpost/ijpost.php                     |  3 ++-
 impressum/impressum.php               |  7 ++++---
 ljpost/ljpost.php                     |  3 ++-
 mailstream/mailstream.php             |  6 ++++--
 newmemberwidget/newmemberwidget.php   |  3 ++-
 notifyall/notifyall.php               |  6 ++++--
 pumpio/pumpio.php                     |  3 ++-
 tumblr/tumblr.php                     | 12 ++++++------
 windowsphonepush/windowsphonepush.php |  4 +++-
 wppost/wppost.php                     |  6 +++---
 12 files changed, 37 insertions(+), 23 deletions(-)

diff --git a/blogger/blogger.php b/blogger/blogger.php
index 7dfbcc4a2..76c12bbb6 100644
--- a/blogger/blogger.php
+++ b/blogger/blogger.php
@@ -5,6 +5,8 @@
  * Version: 1.0
  *
  */
+
+use Friendica\Content\Text\BBCode;
 use Friendica\Core\Addon;
 use Friendica\Core\L10n;
 use Friendica\Core\PConfig;
@@ -184,7 +186,7 @@ function blogger_send(&$a, &$b)
 		require_once('include/bbcode.php');
 
 		$title = '<title>' . (($b['title']) ? $b['title'] : L10n::t('Post from Friendica')) . '</title>';
-		$post = $title . bbcode($b['body']);
+		$post = $title . BBCode::convert($b['body']);
 		$post = xmlify($post);
 
 		$xml = <<< EOT
diff --git a/dwpost/dwpost.php b/dwpost/dwpost.php
index d9d06675f..7e8488c37 100644
--- a/dwpost/dwpost.php
+++ b/dwpost/dwpost.php
@@ -8,6 +8,7 @@
  * Author: Cat Gray <https://free-haven.org/profile/catness>
  */
 
+use Friendica\Content\Text\BBCode;
 use Friendica\Core\Addon;
 use Friendica\Core\L10n;
 use Friendica\Core\PConfig;
@@ -182,7 +183,7 @@ function dwpost_send(&$a,&$b) {
 		require_once('include/bbcode.php');
 
 		$title = $b['title'];
-		$post = bbcode($b['body']);
+		$post = BBCode::convert($b['body']);
 		$post = xmlify($post);
 		$tags = dwpost_get_tags($b['tag']);
 
diff --git a/ijpost/ijpost.php b/ijpost/ijpost.php
index cd4d72cdd..5ccb67612 100644
--- a/ijpost/ijpost.php
+++ b/ijpost/ijpost.php
@@ -8,6 +8,7 @@
  * Author: Cat Gray <https://free-haven.org/profile/catness>
  */
 
+use Friendica\Content\Text\BBCode;
 use Friendica\Core\Addon;
 use Friendica\Core\L10n;
 use Friendica\Core\PConfig;
@@ -182,7 +183,7 @@ function ijpost_send(&$a,&$b) {
 		require_once('include/datetime.php');
 
 		$title = $b['title'];
-		$post = bbcode($b['body']);
+		$post = BBCode::convert($b['body']);
 		$post = xmlify($post);
 		$tags = ijpost_get_tags($b['tag']);
 
diff --git a/impressum/impressum.php b/impressum/impressum.php
index 3a5efbcc7..ae6ddf18d 100644
--- a/impressum/impressum.php
+++ b/impressum/impressum.php
@@ -10,6 +10,7 @@
 require_once 'include/bbcode.php';
 require_once 'mod/proxy.php';
 
+use Friendica\Content\Text\BBCode;
 use Friendica\Core\Addon;
 use Friendica\Core\Config;
 use Friendica\Core\L10n;
@@ -39,7 +40,7 @@ function obfuscate_email ($s) {
     return $s;
 }
 function impressum_footer($a, &$b) {
-    $text = proxy_parse_html(bbcode(Config::get('impressum','footer_text'), true));
+    $text = proxy_parse_html(BBCode::convert(Config::get('impressum','footer_text')));
     if (! $text == '') {
         $a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="'.$a->get_baseurl().'/addon/impressum/impressum.css" media="all" />';
         $b .= '<div class="clear"></div>';
@@ -50,8 +51,8 @@ function impressum_show($a,&$b) {
     $b .= '<h3>'.L10n::t('Impressum').'</h3>';
     $owner = Config::get('impressum', 'owner');
     $owner_profile = Config::get('impressum','ownerprofile');
-    $postal = proxy_parse_html(bbcode(Config::get('impressum', 'postal'), true));
-    $notes = proxy_parse_html(bbcode(Config::get('impressum', 'notes'), true));
+    $postal = proxy_parse_html(BBCode::convert(Config::get('impressum', 'postal')));
+    $notes = proxy_parse_html(BBCode::convert(Config::get('impressum', 'notes')));
     $email = obfuscate_email( Config::get('impressum','email') );
     if (strlen($owner)) {
         if (strlen($owner_profile)) {
diff --git a/ljpost/ljpost.php b/ljpost/ljpost.php
index 8fbc3b11e..97daf519e 100644
--- a/ljpost/ljpost.php
+++ b/ljpost/ljpost.php
@@ -8,6 +8,7 @@
  * Author: Cat Gray <https://free-haven.org/profile/catness>
  */
 
+use Friendica\Content\Text\BBCode;
 use Friendica\Core\Addon;
 use Friendica\Core\L10n;
 use Friendica\Core\PConfig;
@@ -182,7 +183,7 @@ function ljpost_send(&$a,&$b) {
 		require_once('include/bbcode.php');
 
 		$title = xmlify($b['title']);
-		$post = bbcode($b['body']);
+		$post = BBCode::convert($b['body']);
 		$post = xmlify($post);
 		$tags = ljpost_get_tags($b['tag']);
 
diff --git a/mailstream/mailstream.php b/mailstream/mailstream.php
index 4ff4c69d7..acab59145 100644
--- a/mailstream/mailstream.php
+++ b/mailstream/mailstream.php
@@ -5,6 +5,8 @@
  * Version: 1.1
  * Author: Matthew Exon <http://mat.exon.name>
  */
+
+use Friendica\Content\Text\BBCode;
 use Friendica\Core\Addon;
 use Friendica\Core\Config;
 use Friendica\Core\L10n;
@@ -180,7 +182,7 @@ function mailstream_sender($item) {
 }
 
 function mailstream_decode_subject($subject) {
-	$html = bbcode($subject);
+	$html = BBCode::convert($subject);
 	if (!$html) {
 		return $subject;
 	}
@@ -285,7 +287,7 @@ function mailstream_send($a, $message_id, $item, $user) {
 		$mail->IsHTML(true);
 		$mail->CharSet = 'utf-8';
 		$template = get_markup_template('mail.tpl', 'addon/mailstream/');
-		$item['body'] = bbcode($item['body']);
+		$item['body'] = BBCode::convert($item['body']);
 		$item['url'] = $a->get_baseurl() . '/display/' . $user['nickname'] . '/' . $item['id'];
 		$mail->Body = replace_macros($template, [
 						 '$upstream' => L10n::t('Upstream'),
diff --git a/newmemberwidget/newmemberwidget.php b/newmemberwidget/newmemberwidget.php
index 807c05a5c..6ea833670 100644
--- a/newmemberwidget/newmemberwidget.php
+++ b/newmemberwidget/newmemberwidget.php
@@ -8,6 +8,7 @@
 
 require_once 'include/bbcode.php';
 
+use Friendica\Content\Text\BBCode;
 use Friendica\Core\Addon;
 use Friendica\Core\Config;
 use Friendica\Core\L10n;
@@ -31,7 +32,7 @@ function newmemberwidget_network_mod_init ( $a, $b) {
 	    $t .= '<a href="'.$a->get_baseurl().'/profile/'.Config::get('newmemberwidget','localsupport').'" target="_new">'.L10n::t('Local Support Forum').'</a><br />'.EOL;
 	$ft = Config::get('newmemberwidget','freetext');
 	if (!trim($ft)=="")
-	    $t .= '<p>'.bbcode(trim($ft)).'</p>';
+	    $t .= '<p>'.BBCode::convert(trim($ft)).'</p>';
 	$t .= '</div><div class="clear"></div>';
  	$a->page['aside'] = $t . $a->page['aside'];
     }
diff --git a/notifyall/notifyall.php b/notifyall/notifyall.php
index e35d7bf19..5ea0db38c 100644
--- a/notifyall/notifyall.php
+++ b/notifyall/notifyall.php
@@ -7,6 +7,8 @@
  * Author: Mike Macgirvin (Inital Author of the hubbwall Addon for the Hubzilla Project)
  * Author: Rabuzarus <https://friendica.kommune4.de/profile/rabuzarus> (Port to Friendica)
  */
+
+use Friendica\Content\Text\BBCode;
 use Friendica\Core\L10n;
 use Friendica\Util\Emailer;
 
@@ -49,9 +51,9 @@ function notifyall_post(&$a) {
 	$subject = $_REQUEST['subject'];
 
 
-	$textversion = strip_tags(html_entity_decode(bbcode(stripslashes(str_replace(["\\r", "\\n"],[ "", "\n"], $text))),ENT_QUOTES,'UTF-8'));
+	$textversion = strip_tags(html_entity_decode(BBCode::convert(stripslashes(str_replace(["\\r", "\\n"], ["", "\n"], $text))), ENT_QUOTES, 'UTF-8'));
 
-	$htmlversion = bbcode(stripslashes(str_replace(["\\r","\\n"], ["","<br />\n"],$text)));
+	$htmlversion = BBCode::convert(stripslashes(str_replace(["\\r", "\\n"], ["", "<br />\n"], $text)));
 
 	// if this is a test, send it only to the admin(s)
 	// admin_email might be a comma separated list, but we need "a@b','c@d','e@f
diff --git a/pumpio/pumpio.php b/pumpio/pumpio.php
index 6a7a08cf9..129f2738d 100644
--- a/pumpio/pumpio.php
+++ b/pumpio/pumpio.php
@@ -6,6 +6,7 @@
  * Author: Michael Vogel <http://pirati.ca/profile/heluecht>
  */
 
+use Friendica\Content\Text\BBCode;
 use Friendica\Core\Addon;
 use Friendica\Core\Config;
 use Friendica\Core\L10n;
@@ -475,7 +476,7 @@ function pumpio_send(&$a,&$b) {
 
 		$title = trim($b['title']);
 
-		$content = bbcode($b['body'], false, false, 4);
+		$content = BBCode::convert($b['body'], false, 4);
 
 		$params = [];
 
diff --git a/tumblr/tumblr.php b/tumblr/tumblr.php
index 2ba26afc7..831dd6156 100644
--- a/tumblr/tumblr.php
+++ b/tumblr/tumblr.php
@@ -381,7 +381,7 @@ function tumblr_send(&$a,&$b) {
 		switch ($siteinfo["type"]) {
 			case "photo":
 				$params['type'] = "photo";
-				$params['caption'] = bbcode($body, false, false, 4);
+				$params['caption'] = BBCode::convert($body, false, 4);
 
 				if (isset($siteinfo["url"]))
 					$params['link'] = $siteinfo["url"];
@@ -392,22 +392,22 @@ function tumblr_send(&$a,&$b) {
 				$params['type'] = "link";
 				$params['title'] = $title;
 				$params['url'] = $siteinfo["url"];
-				$params['description'] = bbcode($body, false, false, 4);
+				$params['description'] = BBCode::convert($body, false, 4);
 				break;
 			case "audio":
 				$params['type'] = "audio";
 				$params['external_url'] = $siteinfo["url"];
-				$params['caption'] = bbcode($body, false, false, 4);
+				$params['caption'] = BBCode::convert($body, false, 4);
 				break;
 			case "video":
 				$params['type'] = "video";
 				$params['embed'] = $siteinfo["url"];
-				$params['caption'] = bbcode($body, false, false, 4);
+				$params['caption'] = BBCode::convert($body, false, 4);
 				break;
 			default:
 				$params['type'] = "text";
 				$params['title'] = $title;
-				$params['body'] = bbcode($b['body'], false, false, 4);
+				$params['body'] = BBCode::convert($b['body'], false, 4);
 				break;
 		}
 
@@ -416,7 +416,7 @@ function tumblr_send(&$a,&$b) {
 						"<p>".$params['caption']."</p>";
 
 		if (trim($params['caption']) == "")
-			$params['caption'] = bbcode("[quote]".$siteinfo["description"]."[/quote]", false, false, 4);
+			$params['caption'] = BBCode::convert("[quote]" . $siteinfo["description"] . "[/quote]", false, 4);
 
 		$consumer_key = Config::get('tumblr','consumer_key');
 		$consumer_secret = Config::get('tumblr','consumer_secret');
diff --git a/windowsphonepush/windowsphonepush.php b/windowsphonepush/windowsphonepush.php
index 033d2a64a..346f550f2 100644
--- a/windowsphonepush/windowsphonepush.php
+++ b/windowsphonepush/windowsphonepush.php
@@ -25,7 +25,9 @@
  *        sets the counter back
  *        count only unseen elements which are not type=activity (likes and dislikes not seen as new elements)
  */
+
 use Friendica\App;
+use Friendica\Content\Text\BBCode;
 use Friendica\Core\Addon;
 use Friendica\Core\L10n;
 use Friendica\Core\PConfig;
@@ -211,7 +213,7 @@ function windowsphonepush_cron()
 						} else {
 							require_once('include/bbcode.php');
 							require_once("include/html2plain.php");
-							$body = bbcode($body, false, false, 2, true);
+							$body = BBCode::convert($body, false, 2, true);
 							$body = html2plain($body, 0);
 							$body = ((strlen($body) > 137) ? substr($body, 0, 137) . "..." : $body);
 						}
diff --git a/wppost/wppost.php b/wppost/wppost.php
index e3127e8e6..23f928bcc 100644
--- a/wppost/wppost.php
+++ b/wppost/wppost.php
@@ -145,7 +145,7 @@ function wppost_settings_post(&$a,&$b) {
 		PConfig::set(local_user(),'wppost','backlink',trim($_POST['wp_backlink']));
 		PConfig::set(local_user(),'wppost','shortcheck',trim($_POST['wp_shortcheck']));
 		$wp_backlink_text = notags(trim($_POST['wp_backlink_text']));
-		$wp_backlink_text = bbcode($wp_backlink_text, false, false, 8);
+		$wp_backlink_text = BBCode::convert($wp_backlink_text, false, 8);
 		$wp_backlink_text = html2plain($wp_backlink_text, 0, true);
 		PConfig::set(local_user(),'wppost','wp_backlink_text', $wp_backlink_text);
 
@@ -266,7 +266,7 @@ function wppost_send(&$a,&$b) {
 				// Remove the share element before fetching the first line
 				$title = trim(preg_replace("/\[share.*?\](.*?)\[\/share\]/ism","\n$1\n",$b['body']));
 
-				$title = html2plain(bbcode($title, false, false), 0, true)."\n";
+				$title = html2plain(BBCode::convert($title, false), 0, true)."\n";
 				$pos = strpos($title, "\n");
 				$trailer = "";
 				if (($pos == 0) || ($pos > 100)) {
@@ -279,7 +279,7 @@ function wppost_send(&$a,&$b) {
 		}
 
 		$title = '<title>' . (($wptitle) ? $wptitle : L10n::t('Post from Friendica')) . '</title>';
-		$post = bbcode($b['body'], false, false, 4);
+		$post = BBCode::convert($b['body'], false, 4);
 
 		// If a link goes to youtube then remove the stuff around it. Wordpress detects youtube links and embeds it
 		$post = preg_replace('/<a.*?href="(https?:\/\/www.youtube.com\/.*?)".*?>(.*?)<\/a>/ism',"\n$1\n",$post);