]> git.mxchange.org Git - friendica-addons.git/blobdiff - fbpost/fbpost.php
Added function "bb_CleanPictureLinks" ro all connectors
[friendica-addons.git] / fbpost / fbpost.php
index 48865f04e830c368fab94d053b38a58b8861c98a..3b064a56a9ab308e52aa63dda8b7ac77fdfe8b61 100644 (file)
@@ -363,6 +363,8 @@ function fbpost_createmsg($b) {
        require_once("include/bbcode.php");
        require_once("include/html2plain.php");
 
+       $b['body'] = bb_CleanPictureLinks($b['body']);
+
        // Looking for the first image
        $image = '';
        if(preg_match("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/is",$b['body'],$matches))
@@ -632,6 +634,7 @@ function fbpost_post_hook(&$a,&$b) {
 
                                logger('fbpost_post_hook: original msg=' . $msg, LOGGER_DATA);
 
+                               // To-Do: if it is a reply, then only do a simple bbcode2plain conversion
                                $msgarr = fbpost_createmsg($b);
                                $msg = $msgarr["msg"];
                                $link = $msgarr["link"];
@@ -762,9 +765,13 @@ function fbpost_post_hook(&$a,&$b) {
                                                        intval($b['id']),
                                                        intval($b['id'])
                                                );
-                                       }
-                                       else {
-                                               if(! $likes) {
+                                       } else {
+                                               // Sometimes posts are accepted from facebook although it telling an error
+                                               // This leads to endless comment flooding.
+
+                                               // If it is a special kind of failure the post was receiced
+                                               // Although facebook said it wasn't received ...
+                                               if (!$likes AND (($retj->error->type != "OAuthException") OR ($retj->error->code != 2)) AND ($x <> "")) {
                                                        $r = q("SELECT `id` FROM `contact` WHERE `uid` = %d AND `self`", intval($b['uid']));
                                                        if (count($r))
                                                                $a->contact = $r[0]["id"];
@@ -910,10 +917,16 @@ function fbpost_queue_hook(&$a,&$b) {
                                        );
                                        logger('fbpost_queue_hook: success: ' . $j);
                                        remove_queue_item($x['id']);
-                               }
-                               else {
+                               } else {
                                        logger('fbpost_queue_hook: failed: ' . $j);
-                                       update_queue_time($x['id']);
+
+                                       // If it is a special kind of failure the post was receiced
+                                       // Although facebook said it wasn't received ...
+                                       $ret = json_decode($j);
+                                       if (($ret->error->type != "OAuthException") OR ($ret->error->code != 2) AND ($j <> ""))
+                                               update_queue_time($x['id']);
+                                       else
+                                               logger('fbpost_queue_hook: Not requeued, since it seems to be received');
                                }
                        } else {
                                logger('fbpost_queue_hook: No fb_post or fb_token.');
@@ -1099,7 +1112,7 @@ function fbpost_fetchwall($a, $uid) {
                        $_REQUEST["body"] .= "[class=type-".$type."]";
 
                if ($content)
-                       $_REQUEST["body"] .= $content;
+                       $_REQUEST["body"] .= trim($content);
 
                if ($quote)
                        $_REQUEST["body"] .= "\n[quote]".$quote."[/quote]";