summaryrefslogtreecommitdiff
path: root/activitypub.c
diff options
context:
space:
mode:
authorGravatar default2025-01-09 19:21:06 +0100
committerGravatar default2025-01-09 19:21:06 +0100
commit41cb63c936e1520def842f381334397a572bc1cd (patch)
treefdd6119870ccfe91edbd1e58b4354f71ca993d67 /activitypub.c
parentMerge branch 'master' of /home/angel/git/snac2 (diff)
downloadpenes-snac2-41cb63c936e1520def842f381334397a572bc1cd.tar.gz
penes-snac2-41cb63c936e1520def842f381334397a572bc1cd.tar.xz
penes-snac2-41cb63c936e1520def842f381334397a572bc1cd.zip
Added some actor object caching.
Diffstat (limited to 'activitypub.c')
-rw-r--r--activitypub.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/activitypub.c b/activitypub.c
index 81f7708..6f3aefb 100644
--- a/activitypub.c
+++ b/activitypub.c
@@ -1194,10 +1194,20 @@ xs_dict *msg_actor(snac *snac)
1194 xs *avtr = NULL; 1194 xs *avtr = NULL;
1195 xs *kid = NULL; 1195 xs *kid = NULL;
1196 xs *f_bio = NULL; 1196 xs *f_bio = NULL;
1197 xs_dict *msg = msg_base(snac, "Person", snac->actor, NULL, NULL, NULL); 1197 xs_dict *msg = NULL;
1198 const char *p; 1198 const char *p;
1199 int n; 1199 int n;
1200 1200
1201 /* everybody loves some caching */
1202 if (time(NULL) - object_mtime(snac->actor) < 6 * 3600 &&
1203 valid_status(object_get(snac->actor, &msg))) {
1204 snac_debug(snac, 1, xs_fmt("Returning cached actor %s", snac->actor));
1205
1206 return msg;
1207 }
1208
1209 msg = msg_base(snac, "Person", snac->actor, NULL, NULL, NULL);
1210
1201 /* change the @context (is this really necessary?) */ 1211 /* change the @context (is this really necessary?) */
1202 ctxt = xs_list_append(ctxt, "https:/" "/www.w3.org/ns/activitystreams"); 1212 ctxt = xs_list_append(ctxt, "https:/" "/www.w3.org/ns/activitystreams");
1203 ctxt = xs_list_append(ctxt, "https:/" "/w3id.org/security/v1"); 1213 ctxt = xs_list_append(ctxt, "https:/" "/w3id.org/security/v1");
@@ -1330,6 +1340,10 @@ xs_dict *msg_actor(snac *snac)
1330 msg = xs_dict_set(msg, "manuallyApprovesFollowers", 1340 msg = xs_dict_set(msg, "manuallyApprovesFollowers",
1331 xs_stock(xs_is_true(manually) ? XSTYPE_TRUE : XSTYPE_FALSE)); 1341 xs_stock(xs_is_true(manually) ? XSTYPE_TRUE : XSTYPE_FALSE));
1332 1342
1343 /* cache it */
1344 snac_debug(snac, 1, xs_fmt("Caching actor %s", snac->actor));
1345 object_add_ow(snac->actor, msg);
1346
1333 return msg; 1347 return msg;
1334} 1348}
1335 1349