]> git.mxchange.org Git - friendica.git/blobdiff - include/ostatus.php
Make sure that we only quit when we are sure we can
[friendica.git] / include / ostatus.php
index b38ad91d479d1fa79d55049bb36a4df456d769c4..2c4b677a53af99bf5316cc9ca8caa8a512ac5802 100644 (file)
@@ -467,7 +467,7 @@ class ostatus {
                        }
 
                        // Is it a repeated post?
-                       if ($repeat_of != "") {
+                       if (($repeat_of != "") OR ($item["verb"] == ACTIVITY_SHARE)) {
                                $activityobjects = $xpath->query('activity:object', $entry)->item(0);
 
                                if (is_object($activityobjects)) {
@@ -523,7 +523,9 @@ class ostatus {
                                $r = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s'",
                                        intval($importer["uid"]), dbesc($item["parent-uri"]));
 
-                               if (!$r AND ($related != "")) {
+                               // Only fetch missing stuff if it is a comment or reshare.
+                               if (in_array($item["verb"], array(ACTIVITY_POST, ACTIVITY_SHARE)) AND
+                                       !dbm::is_result($r) AND ($related != "")) {
                                        $reply_path = str_replace("/notice/", "/api/statuses/show/", $related).".atom";
 
                                        if ($reply_path != $related) {
@@ -596,21 +598,25 @@ class ostatus {
                $last = get_config('system','ostatus_last_poll');
 
                $poll_interval = intval(get_config('system','ostatus_poll_interval'));
-               if(! $poll_interval)
-                       $poll_interval = OSTATUS_DEFAULT_POLL_INTERVAL;
+               if (!$poll_interval) {
+                       $poll_interval = self::OSTATUS_DEFAULT_POLL_INTERVAL;
+               }
 
                // Don't poll if the interval is set negative
-               if (($poll_interval < 0) AND !$override)
+               if (($poll_interval < 0) AND !$override) {
                        return;
+               }
 
                if (!$mentions) {
                        $poll_timeframe = intval(get_config('system','ostatus_poll_timeframe'));
-                       if (!$poll_timeframe)
-                               $poll_timeframe = OSTATUS_DEFAULT_POLL_TIMEFRAME;
+                       if (!$poll_timeframe) {
+                               $poll_timeframe = self::OSTATUS_DEFAULT_POLL_TIMEFRAME;
+                       }
                } else {
                        $poll_timeframe = intval(get_config('system','ostatus_poll_timeframe'));
-                       if (!$poll_timeframe)
-                               $poll_timeframe = OSTATUS_DEFAULT_POLL_TIMEFRAME_MENTIONS;
+                       if (!$poll_timeframe) {
+                               $poll_timeframe = self::OSTATUS_DEFAULT_POLL_TIMEFRAME_MENTIONS;
+                       }
                }
 
 
@@ -626,15 +632,16 @@ class ostatus {
 
                $start = date("Y-m-d H:i:s", time() - ($poll_timeframe * 60));
 
-               if ($mentions)
+               if ($mentions) {
                        $conversations = q("SELECT `term`.`oid`, `term`.`url`, `term`.`uid` FROM `term`
                                                STRAIGHT_JOIN `thread` ON `thread`.`iid` = `term`.`oid` AND `thread`.`uid` = `term`.`uid`
                                                WHERE `term`.`type` = 7 AND `term`.`term` > '%s' AND `thread`.`mention`
                                                GROUP BY `term`.`url`, `term`.`uid` ORDER BY `term`.`term` DESC", dbesc($start));
-               else
+               } else {
                        $conversations = q("SELECT `oid`, `url`, `uid` FROM `term`
                                                WHERE `type` = 7 AND `term` > '%s'
                                                GROUP BY `url`, `uid` ORDER BY `term` DESC", dbesc($start));
+               }
 
                foreach ($conversations AS $conversation) {
                        self::completion($conversation['url'], $conversation['uid']);
@@ -2067,7 +2074,7 @@ class ostatus {
         *
         * @return string XML feed
         */
-       public static function feed(&$a, $owner_nick, $last_update) {
+       public static function feed(App $a, $owner_nick, $last_update) {
 
                $r = q("SELECT `contact`.*, `user`.`nickname`, `user`.`timezone`, `user`.`page-flags`
                                FROM `contact` INNER JOIN `user` ON `user`.`uid` = `contact`.`uid`