]> git.mxchange.org Git - friendica.git/blobdiff - include/ostatus.php
Better handling of blocked contacts in OStatus
[friendica.git] / include / ostatus.php
index 25e51ec609e47f46c4aaacc97ead7c8864b3540d..d1ad3f94cfbbe90f08c9d40c90589adb1524ddfd 100644 (file)
@@ -78,6 +78,9 @@ class ostatus {
 
                        if (dbm::is_result($r)) {
                                $found = true;
+                               if ($r['blocked']) {
+                                       $r['id'] = -1;
+                               }
                                $contact = $r;
                                $author["contact-id"] = $r["id"];
                                $author["author-link"] = $r["url"];
@@ -90,6 +93,9 @@ class ostatus {
                        $r = dba::select('contact', array(), $condition, array('limit' => 1));
 
                        if (dbm::is_result($r)) {
+                               if ($r['blocked']) {
+                                       $r['id'] = -1;
+                               }
                                $contact = $r;
                                $author["contact-id"] = $r["id"];
                                $author["author-link"] = $r["url"];
@@ -128,7 +134,7 @@ class ostatus {
                $author["owner-avatar"] = $author["author-avatar"];
 
                // Only update the contacts if it is an OStatus contact
-               if ($r && !$onlyfetch && ($contact["network"] == NETWORK_OSTATUS)) {
+               if ($r && ($r['id'] > 0) && !$onlyfetch && ($contact["network"] == NETWORK_OSTATUS)) {
 
                        // Update contact data
 
@@ -483,6 +489,8 @@ class ostatus {
                                                $found = dba::exists('item', array('uid' => $importer["uid"], 'uri' => $item["uri"]));
                                                if ($found) {
                                                        logger("Item with uri ".$item["uri"]." for user ".$importer["uid"]." already exists.", LOGGER_DEBUG);
+                                               } elseif ($item['contact-id'] < 0) {
+                                                       logger("Item with uri ".$item["uri"]." is from a blocked contact.", LOGGER_DEBUG);
                                                } else {
                                                        // We are having duplicated entries. Hopefully this solves it.
                                                        if (Lock::set('ostatus_process_item_store')) {