diff options
| author | 2025-01-09 19:21:06 +0100 | |
|---|---|---|
| committer | 2025-01-09 19:21:06 +0100 | |
| commit | 41cb63c936e1520def842f381334397a572bc1cd (patch) | |
| tree | fdd6119870ccfe91edbd1e58b4354f71ca993d67 /activitypub.c | |
| parent | Merge branch 'master' of /home/angel/git/snac2 (diff) | |
| download | penes-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.c | 16 |
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 | ||