Quellcode durchsuchen

Don't store objects other than 'Note' in timeline_request().

default vor 3 Jahren
Ursprung
Commit
34a2b47e85
1 geänderte Dateien mit 14 neuen und 10 gelöschten Zeilen
  1. 14 10
      activitypub.c

+ 14 - 10
activitypub.c

@@ -91,20 +91,24 @@ int timeline_request(snac *snac, char *id, char *referrer)
             status = activitypub_request(snac, id, &object);
 
             if (valid_status(status)) {
-                char *actor = xs_dict_get(object, "attributedTo");
+                char *type = xs_dict_get(object, "type");
 
-                /* request (and drop) the actor for this entry */
-                if (!xs_is_null(actor))
-                    actor_request(snac, actor, NULL);
+                if (!xs_is_null(type) && strcmp(type, "Note") == 0) {
+                    char *actor = xs_dict_get(object, "attributedTo");
 
-                /* does it have an ancestor? */
-                char *in_reply_to = xs_dict_get(object, "inReplyTo");
+                    /* request (and drop) the actor for this entry */
+                    if (!xs_is_null(actor))
+                        actor_request(snac, actor, NULL);
+
+                    /* does it have an ancestor? */
+                    char *in_reply_to = xs_dict_get(object, "inReplyTo");
 
-                /* recurse! */
-                timeline_request(snac, in_reply_to, referrer);
+                    /* recurse! */
+                    timeline_request(snac, in_reply_to, referrer);
 
-                /* finally store */
-                timeline_add(snac, id, object, in_reply_to, referrer);
+                    /* finally store */
+                    timeline_add(snac, id, object, in_reply_to, referrer);
+                }
             }
         }
     }