X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fbb2diaspora.php;h=7f942be141e70b8fc72bfab092f377193bebce64;hb=49f99d94f60c8f6e54ec711f98d63b46db8de437;hp=4f7cce8f5f9e100265ea49566f0a807262b0c6a3;hpb=4e4f5862b2fb63ba7fd521d0a169e22907517d9d;p=friendica.git diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php index 4f7cce8f5f..7f942be141 100644 --- a/include/bb2diaspora.php +++ b/include/bb2diaspora.php @@ -12,82 +12,9 @@ use League\HTMLToMarkdown\HtmlConverter; require_once 'include/event.php'; require_once 'include/html2bbcode.php'; -require_once 'include/bbcode.php'; -/** - * @brief Callback function to replace a Diaspora style mention in a mention for Friendica - * - * @param array $match Matching values for the callback - * @return string Replaced mention - */ -function diaspora_mention2bb($match) { - if ($match[2] == '') { - return; - } - - $data = Contact::getDetailsByAddr($match[2]); - - $name = $match[1]; - - if ($name == '') { - $name = $data['name']; - } - - return '@[url=' . $data['url'] . ']' . $name . '[/url]'; -} - -/* - * we don't want to support a bbcode specific markdown interpreter - * and the markdown library we have is pretty good, but provides HTML output. - * So we'll use that to convert to HTML, then convert the HTML back to bbcode, - * and then clean up a few Diaspora specific constructs. - */ function diaspora2bb($s) { - - $s = html_entity_decode($s, ENT_COMPAT, 'UTF-8'); - - // Handles single newlines - $s = str_replace("\r\n", "\n", $s); - $s = str_replace("\n", " \n", $s); - $s = str_replace("\r", " \n", $s); - - // Replace lonely stars in lines not starting with it with literal stars - $s = preg_replace('/^([^\*]+)\*([^\*]*)$/im', '$1\*$2', $s); - - // The parser cannot handle paragraphs correctly - $s = str_replace(['

', '

', '

'], ['
', '
', '
'], $s); - - // Escaping the hash tags - $s = preg_replace('/\#([^\s\#])/', '#$1', $s); - - $s = Markdown::convert($s); - - $regexp = "/@\{(?:([^\}]+?); )?([^\} ]+)\}/"; - $s = preg_replace_callback($regexp, 'diaspora_mention2bb', $s); - - $s = str_replace('#', '#', $s); - - $s = html2bbcode($s); - - // protect the recycle symbol from turning into a tag, but without unescaping angles and naked ampersands - $s = str_replace('♲', html_entity_decode('♲', ENT_QUOTES, 'UTF-8'), $s); - - // Convert everything that looks like a link to a link - $s = preg_replace('/([^\]=]|^)(https?\:\/\/)([a-zA-Z0-9:\/\-?&;.=_~#%$!+,@]+(?