summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordefault <nobody@localhost>2023-08-12 11:23:01 +0200
committerdefault <nobody@localhost>2023-08-12 11:23:01 +0200
commitcac1c6febd0ce90424831b15a9651026b4bb017c (patch)
treeee9e290ef0a51aae2fec42665ef62348e5fc2666
parent499697258d2c266be69dc13dae96083fc78cd3ef (diff)
Rewritten actor_get() to not depend on a user.
-rw-r--r--activitypub.c2
-rw-r--r--data.c10
-rw-r--r--html.c14
-rw-r--r--mastoapi.c4
-rw-r--r--snac.h2
5 files changed, 12 insertions, 20 deletions
diff --git a/activitypub.c b/activitypub.c
index 2c20e63..6fb6bf5 100644
--- a/activitypub.c
+++ b/activitypub.c
@@ -117,7 +117,7 @@ int actor_request(snac *snac, const char *actor, xs_dict **data)
*data = NULL;
/* get from disk first */
- status = actor_get(snac, actor, data);
+ status = actor_get(actor, data);
if (status != 200) {
/* actor data non-existent or stale: get from the net */
diff --git a/data.c b/data.c
index d7643e2..73192ba 100644
--- a/data.c
+++ b/data.c
@@ -1439,20 +1439,12 @@ int actor_add(const char *actor, xs_dict *msg)
}
-int actor_get(snac *snac1, const char *actor, xs_dict **data)
+int actor_get(const char *actor, xs_dict **data)
/* returns an already downloaded actor */
{
int status = 200;
xs_dict *d = NULL;
- if (strcmp(actor, snac1->actor) == 0) {
- /* this actor */
- if (data)
- *data = msg_actor(snac1);
-
- return status;
- }
-
if (xs_startswith(actor, srv_baseurl)) {
/* it's a (possible) local user */
xs *l = xs_split(actor, "/");
diff --git a/html.c b/html.c
index 58501f2..5c2c4d7 100644
--- a/html.c
+++ b/html.c
@@ -188,7 +188,7 @@ xs_str *html_actor_icon(xs_str *os, char *actor,
}
-xs_str *html_msg_icon(snac *snac, xs_str *os, const xs_dict *msg)
+xs_str *html_msg_icon(xs_str *os, const xs_dict *msg)
{
char *actor_id;
xs *actor = NULL;
@@ -196,7 +196,7 @@ xs_str *html_msg_icon(snac *snac, xs_str *os, const xs_dict *msg)
if ((actor_id = xs_dict_get(msg, "attributedTo")) == NULL)
actor_id = xs_dict_get(msg, "actor");
- if (actor_id && valid_status(actor_get(snac, actor_id, &actor))) {
+ if (actor_id && valid_status(actor_get(actor_id, &actor))) {
char *date = NULL;
char *udate = NULL;
char *url = NULL;
@@ -870,7 +870,7 @@ xs_str *html_entry(snac *snac, xs_str *os, const xs_dict *msg, int local,
xs *s1 = xs_fmt("<div class=\"snac-origin\">%s</div>\n", L("follows you"));
s = xs_str_cat(s, s1);
- s = html_msg_icon(snac, s, msg);
+ s = html_msg_icon(s, msg);
s = xs_str_cat(s, "</div>\n</div>\n");
@@ -894,7 +894,7 @@ xs_str *html_entry(snac *snac, xs_str *os, const xs_dict *msg, int local,
if (is_muted(snac, actor))
return os;
- if (strcmp(actor, snac->actor) != 0 && !valid_status(actor_get(snac, actor, NULL)))
+ if (strcmp(actor, snac->actor) != 0 && !valid_status(actor_get(actor, NULL)))
return os;
if (level == 0)
@@ -990,7 +990,7 @@ xs_str *html_entry(snac *snac, xs_str *os, const xs_dict *msg, int local,
}
}
- s = html_msg_icon(snac, s, msg);
+ s = html_msg_icon(s, msg);
/* add the content */
s = xs_str_cat(s, "</div>\n<div class=\"e-content snac-content\">\n"); /** **/
@@ -1450,7 +1450,7 @@ xs_str *html_people_list(snac *snac, xs_str *os, xs_list *list, const char *head
xs *md5 = xs_md5_hex(actor_id, strlen(actor_id));
xs *actor = NULL;
- if (valid_status(actor_get(snac, actor_id, &actor))) {
+ if (valid_status(actor_get(actor_id, &actor))) {
s = xs_str_cat(s, "<div class=\"snac-post\">\n<div class=\"snac-post-header\">\n");
s = html_actor_icon(s, actor, xs_dict_get(actor, "published"), NULL, NULL, 0);
@@ -1608,7 +1608,7 @@ xs_str *html_notifications(snac *snac)
const char *actor_id = xs_dict_get(noti, "actor");
xs *actor = NULL;
- if (!valid_status(actor_get(snac, actor_id, &actor)))
+ if (!valid_status(actor_get(actor_id, &actor)))
continue;
xs *a_name = actor_name(actor);
diff --git a/mastoapi.c b/mastoapi.c
index 25e54d3..980d900 100644
--- a/mastoapi.c
+++ b/mastoapi.c
@@ -632,7 +632,7 @@ xs_dict *mastoapi_status(snac *snac, const xs_dict *msg)
/* converts an ActivityPub note to a Mastodon status */
{
xs *actor = NULL;
- actor_get(snac, xs_dict_get(msg, "attributedTo"), &actor);
+ actor_get(xs_dict_get(msg, "attributedTo"), &actor);
/* if the author is not here, discard */
if (actor == NULL)
@@ -1310,7 +1310,7 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path,
xs *actor = NULL;
xs *entry = NULL;
- if (!valid_status(actor_get(&snac1, xs_dict_get(noti, "actor"), &actor)))
+ if (!valid_status(actor_get(xs_dict_get(noti, "actor"), &actor)))
continue;
if (objid != NULL && !valid_status(object_get(objid, &entry)))
diff --git a/snac.h b/snac.h
index fed9309..1365816 100644
--- a/snac.h
+++ b/snac.h
@@ -141,7 +141,7 @@ void hide(snac *snac, const char *id);
int is_hidden(snac *snac, const char *id);
int actor_add(const char *actor, xs_dict *msg);
-int actor_get(snac *snac, const char *actor, xs_dict **data);
+int actor_get(const char *actor, xs_dict **data);
int static_get(snac *snac, const char *id, xs_val **data, int *size, const char *inm, xs_str **etag);
void static_put(snac *snac, const char *id, const char *data, int size);