Browse Source

html_entry() is built in its own string and then added.

This will be faster.
default 2 years ago
parent
commit
49bca7e273
2 changed files with 16 additions and 10 deletions
  1. 7 3
      activitypub.c
  2. 9 7
      html.c

+ 7 - 3
activitypub.c

@@ -577,13 +577,17 @@ int process_message(snac *snac, char *msg, char *req)
     /* bring the actor */
     a_status = actor_request(snac, actor, &actor_o);
 
-    /* if it's a 410 Gone, it's a Delete crap that can be ignored */
-    if (a_status == 410) {
+    /* if the actor does not explicitly exist, discard */
+    if (a_status == 404 || a_status == 410) {
+        snac_debug(snac, 1,
+            xs_fmt("dropping message due to actor error %s %d", actor, a_status));
+
         return 1;
     }
 
     if (!valid_status(a_status)) {
-        snac_log(snac,
+        /* other actor download errors may need a retry */
+        snac_debug(snac, 1,
             xs_fmt("error requesting actor %s %d -- retry later", actor, a_status));
 
         return 0;

+ 9 - 7
html.c

@@ -368,7 +368,7 @@ d_char *html_top_controls(snac *snac, d_char *s)
 }
 
 
-d_char *html_entry(snac *snac, d_char *s, char *msg, xs_set *seen, int level)
+d_char *html_entry(snac *snac, d_char *os, char *msg, xs_set *seen, int level)
 {
     char *id    = xs_dict_get(msg, "id");
     char *type  = xs_dict_get(msg, "type");
@@ -378,17 +378,19 @@ d_char *html_entry(snac *snac, d_char *s, char *msg, xs_set *seen, int level)
 
     /* return if already seen */
     if (xs_set_add(seen, id) == 0)
-        return s;
+        return os;
 
     if (strcmp(type, "Follow") == 0)
-        return s;
+        return os;
 
     /* bring the main actor */
     if ((actor = xs_dict_get(msg, "attributedTo")) == NULL)
-        return s;
+        return os;
 
     if (!valid_status(actor_get(snac, actor, &actor_o)))
-        return s;
+        return os;
+
+    xs *s = xs_str_new(NULL);
 
     /* if this is our post, add the score */
     if (xs_startswith(id, snac->actor)) {
@@ -422,7 +424,7 @@ d_char *html_entry(snac *snac, d_char *s, char *msg, xs_set *seen, int level)
                     "<a href=\"%s\">%s</a> %s</div>\n",
                     xs_dict_get(actor_r, "id"),
                     name,
-                    "boosted"
+                    L("boosted")
                 );
 
                 s = xs_str_cat(s, s1);
@@ -510,7 +512,7 @@ d_char *html_entry(snac *snac, d_char *s, char *msg, xs_set *seen, int level)
 
     s = xs_str_cat(s, "</div> <!-- post or child -->\n");
 
-    return s;
+    return xs_str_cat(os, s);
 }