]> git.mxchange.org Git - friendica.git/blobdiff - include/bb2diaspora.php
make 'PHP "register_argc_argv"' easier to translate, may require fix for po2php
[friendica.git] / include / bb2diaspora.php
old mode 100644 (file)
new mode 100755 (executable)
index e819976..8487f84
@@ -8,59 +8,59 @@ require_once('include/html2bbcode.php');
 
 // 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, 
+// 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) {
 
+       // for testing purposes: Collect raw markdown articles
+       // $file = tempnam("/tmp/friendica/", "markdown");
+       // file_put_contents($file, $s);
+
        $s = html_entity_decode($s,ENT_COMPAT,'UTF-8');
 
+       // Too many new lines. So deactivated the following line
+       // $s = str_replace("\r","\n",$s);
+       // Simply remove cr.
+       $s = str_replace("\r","",$s);
+
+       // <br/> is invalid. Replace it with the valid expression
+       $s = str_replace("<br/>","<br />",$s);
+
        $s = preg_replace('/\@\{(.+?)\; (.+?)\@(.+?)\}/','@[url=https://$3/u/$2]$1[/url]',$s);
+
+       // Escaping the hash tags - doesn't always seem to work
+       // $s = preg_replace('/\#([^\s\#])/','\\#$1',$s);
+       // This seems to work
+       $s = preg_replace('/\#([^\s\#])/','&#35;$1',$s);
+
        $s = Markdown($s);
+
+       $s = str_replace('&#35;','#',$s);
+
+       $s = str_replace("\n",'<br />',$s);
+
        $s = html2bbcode($s);
 //     $s = str_replace('&#42;','*',$s);
-    $s = preg_replace("/\[url\=?(.*?)\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/url\]/ism",'[youtube]$2[/youtube]',$s); 
-    $s = preg_replace("/\[url\=https?:\/\/www.youtube.com\/watch\?v\=(.*?)\].*?\[\/url\]/ism",'[youtube]$1[/youtube]',$s); 
-       $s = preg_replace("/\[url\=?(.*?)\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/url\]/ism",'[vimeo]$2[/vimeo]',$s); 
-       $s = preg_replace("/\[url\=https?:\/\/vimeo.com\/([0-9]+)\](.*?)\[\/url\]/ism",'[vimeo]$1[/vimeo]',$s); 
-       $s = preg_replace("/([^\]\=]|^)(https?\:\/\/)(vimeo|youtu|www\.youtube|soundcloud)([a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism", '$1[url]$2$3$4[/url]',$s);
+
+       // Convert everything that looks like a link to a link
+       $s = preg_replace("/([^\]\=]|^)(https?\:\/\/)([a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism", '$1[url=$2$3]$2$3[/url]',$s);
+
+       //$s = preg_replace("/([^\]\=]|^)(https?\:\/\/)(vimeo|youtu|www\.youtube|soundcloud)([a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism", '$1[url=$2$3$4]$2$3$4[/url]',$s);
+       $s = preg_replace("/\[url\=?(.*?)\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/url\]/ism",'[youtube]$2[/youtube]',$s);
+       $s = preg_replace("/\[url\=https?:\/\/www.youtube.com\/watch\?v\=(.*?)\].*?\[\/url\]/ism",'[youtube]$1[/youtube]',$s);
+       $s = preg_replace("/\[url\=?(.*?)\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/url\]/ism",'[vimeo]$2[/vimeo]',$s);
+       $s = preg_replace("/\[url\=https?:\/\/vimeo.com\/([0-9]+)\](.*?)\[\/url\]/ism",'[vimeo]$1[/vimeo]',$s);
        // remove duplicate adjacent code tags
        $s = preg_replace("/(\[code\])+(.*?)(\[\/code\])+/ism","[code]$2[/code]", $s);
-       $s = scale_diaspora_images($s);
-       return $s;
-}
 
+       // Don't show link to full picture (until it is fixed)
+       $s = scale_external_images($s, false);
 
-function scale_diaspora_images($s,$include_link = true) {
-
-       $matches = null;
-       $c = preg_match_all('/\[img\](.*?)\[\/img\]/ism',$s,$matches,PREG_SET_ORDER);
-       if($c) {
-               require_once('include/Photo.php');
-               foreach($matches as $mtch) {
-                       logger('scale_diaspora_image: ' . $mtch[1]);
-                       $i = fetch_url($mtch[1]);
-                       if($i) {
-                               $ph = new Photo($i);
-                               if($ph->is_valid()) {
-                                       if($ph->getWidth() > 600 || $ph->getHeight() > 600) {
-                                               $ph->scaleImage(600);
-                                               $new_width = $ph->getWidth();
-                                               $new_height = $ph->getHeight();
-                                               logger('scale_diaspora_image: ' . $new_width . 'w ' . $new_height . 'h' . 'match: ' . $mtch[0], LOGGER_DEBUG);
-                                               $s = str_replace($mtch[0],'[img=' . $new_width . 'x' . $new_height. ']' . $mtch[1] . '[/img]'
-                                                       . "\n" . (($include_link) 
-                                                               ? '[url=' . $mtch[1] . ']' . t('view full size') . '[/url]' . "\n"
-                                                               : ''),$s);
-                                               logger('scale_diaspora_image: new string: ' . $s, LOGGER_DEBUG);
-                                       }
-                               }
-                       }
-               }
-       }
        return $s;
 }
 
+
 function stripdcode_br_cb($s) {
        return '[code]' . str_replace('<br />', "\n\t", $s[1]) . '[/code]';
 }
@@ -110,6 +110,7 @@ function bb2diaspora($Text,$preserve_nl = false) {
 
 
        $Text = preg_replace("/\[img\](.*?)\[\/img\]/", '![' . t('image/photo') . '](' . '$1' . ')', $Text);
+       $Text = preg_replace("/\[img\=(.*?)\](.*?)\[\/img\]/", '![' . t('image/photo') . '](' . '$2' . ')', $Text);
 
        // Perform MAIL Search
        $Text = preg_replace("(\[mail\]([$MAILSearchString]*)\[/mail\])", '[$1](mailto:$1)', $Text);
@@ -200,7 +201,7 @@ function bb2diaspora($Text,$preserve_nl = false) {
        $Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", 'http://vimeo.com/$1',$Text);
 
 
-
+       $Text = str_replace('[nosmile]','',$Text);
 
        // oembed tag
        //      $Text = oembed_bbcode2html($Text);
@@ -236,7 +237,7 @@ function format_event_diaspora($ev) {
 
        $bd_format = t('l F d, Y \@ g:i A') ; // Friday January 18, 2011 @ 8 AM
 
-       $o = 'Friendika event notification:' . "\n";
+       $o = 'Friendica event notification:' . "\n";
 
        $o .= '**' . bb2diaspora($ev['desc']) .  '**' . "\n";