commit 484dd12

default  ·  2024-11-07 16:27:11 +0000 UTC
parent 80a084e
More proxy_media work.
1 files changed,  +16, -9
M html.c
M html.c
+16, -9
  1@@ -120,7 +120,7 @@ xs_str *actor_name(xs_dict *actor)
  2 
  3 
  4 xs_html *html_actor_icon(snac *user, xs_dict *actor, const char *date,
  5-                        const char *udate, const char *url, int priv, int in_people)
  6+                        const char *udate, const char *url, int priv, int in_people, int proxy)
  7 {
  8     xs_html *actor_icon = xs_html_tag("p", NULL);
  9 
 10@@ -138,7 +138,7 @@ xs_html *html_actor_icon(snac *user, xs_dict *actor, const char *date,
 11             v = xs_list_get(v, 0);
 12 
 13         if ((v = xs_dict_get(v, "url")) != NULL)
 14-            avatar = xs_dup(v);
 15+            avatar = make_url(user, proxy, v);
 16     }
 17 
 18     if (avatar == NULL)
 19@@ -263,7 +263,7 @@ xs_html *html_actor_icon(snac *user, xs_dict *actor, const char *date,
 20 }
 21 
 22 
 23-xs_html *html_msg_icon(snac *user, const char *actor_id, const xs_dict *msg)
 24+xs_html *html_msg_icon(snac *user, const char *actor_id, const xs_dict *msg, int proxy)
 25 {
 26     xs *actor = NULL;
 27     xs_html *actor_icon = NULL;
 28@@ -283,7 +283,7 @@ xs_html *html_msg_icon(snac *user, const char *actor_id, const xs_dict *msg)
 29         date  = xs_dict_get(msg, "published");
 30         udate = xs_dict_get(msg, "updated");
 31 
 32-        actor_icon = html_actor_icon(user, actor, date, udate, url, priv, 0);
 33+        actor_icon = html_actor_icon(user, actor, date, udate, url, priv, 0, proxy);
 34     }
 35 
 36     return actor_icon;
 37@@ -1515,7 +1515,7 @@ xs_html *html_entry(snac *user, xs_dict *msg, int read_only,
 38                 xs_html_tag("div",
 39                     xs_html_attr("class", "snac-origin"),
 40                     xs_html_text(L("follows you"))),
 41-                html_msg_icon(read_only ? NULL : user, xs_dict_get(msg, "actor"), msg)));
 42+                html_msg_icon(read_only ? NULL : user, xs_dict_get(msg, "actor"), msg, proxy_media)));
 43     }
 44     else
 45     if (!xs_match(type, POSTLIKE_OBJECT_TYPE)) {
 46@@ -1694,7 +1694,7 @@ xs_html *html_entry(snac *user, xs_dict *msg, int read_only,
 47     }
 48 
 49     xs_html_add(post_header,
 50-        html_msg_icon(read_only ? NULL : user, actor, msg));
 51+        html_msg_icon(read_only ? NULL : user, actor, msg, proxy_media));
 52 
 53     /** post content **/
 54 
 55@@ -2435,6 +2435,8 @@ xs_str *html_timeline(snac *user, const xs_list *list, int read_only,
 56 
 57 xs_html *html_people_list(snac *snac, xs_list *list, char *header, char *t)
 58 {
 59+    int proxy_media = xs_is_true(xs_dict_get(srv_config, "proxy_media"));
 60+
 61     xs_html *snac_posts;
 62     xs_html *people = xs_html_tag("div",
 63         xs_html_tag("h2",
 64@@ -2459,7 +2461,8 @@ xs_html *html_people_list(snac *snac, xs_list *list, char *header, char *t)
 65                     xs_html_attr("name", md5)),
 66                 xs_html_tag("div",
 67                     xs_html_attr("class", "snac-post-header"),
 68-                    html_actor_icon(snac, actor, xs_dict_get(actor, "published"), NULL, NULL, 0, 1)));
 69+                    html_actor_icon(snac, actor, xs_dict_get(actor, "published"),
 70+                                    NULL, NULL, 0, 1, proxy_media)));
 71 
 72             /* content (user bio) */
 73             const char *c = xs_dict_get(actor, "summary");
 74@@ -2580,6 +2583,8 @@ xs_str *html_people(snac *user)
 75 
 76 xs_str *html_notifications(snac *user, int skip, int show)
 77 {
 78+    int proxy_media = xs_is_true(xs_dict_get(srv_config, "proxy_media"));
 79+
 80     xs *n_list = notify_list(user, skip, show);
 81     xs *n_time = notify_check_time(user, 0);
 82 
 83@@ -2680,7 +2685,7 @@ xs_str *html_notifications(snac *user, int skip, int show)
 84             xs_html_add(entry,
 85                 xs_html_tag("div",
 86                     xs_html_attr("class", "snac-post"),
 87-                    html_actor_icon(user, actor, NULL, NULL, NULL, 0, 0)));
 88+                    html_actor_icon(user, actor, NULL, NULL, NULL, 0, 0, proxy_media)));
 89         }
 90         else
 91         if (strcmp(type, "Move") == 0) {
 92@@ -2694,7 +2699,7 @@ xs_str *html_notifications(snac *user, int skip, int show)
 93                     xs_html_add(entry,
 94                         xs_html_tag("div",
 95                             xs_html_attr("class", "snac-post"),
 96-                            html_actor_icon(user, old_actor, NULL, NULL, NULL, 0, 0)));
 97+                            html_actor_icon(user, old_actor, NULL, NULL, NULL, 0, 0, proxy_media)));
 98                 }
 99             }
100         }
101@@ -3196,6 +3201,8 @@ int html_get_handler(const xs_dict *req, const char *q_path,
102             xs *url = xs_replace(p_path, "proxy/", "https:/" "/");
103             xs *hdrs = xs_dict_new();
104 
105+            hdrs = xs_dict_append(hdrs, "user-agent", USER_AGENT);
106+
107             xs *rsp = xs_http_request("GET", url, hdrs,
108                         NULL, 0, &status, body, b_size, 0);
109