mirror of
https://codeberg.org/grunfink/snac2.git
synced 2024-11-10 03:50:38 +03:00
Fixed crash in notification list.
This commit is contained in:
parent
815c39d0c6
commit
35c611b8b9
6
data.c
6
data.c
@ -1558,7 +1558,7 @@ xs_dict *notify_get(snac *snac, const char *id)
|
|||||||
|
|
||||||
|
|
||||||
xs_list *notify_list(snac *snac, int new_only)
|
xs_list *notify_list(snac *snac, int new_only)
|
||||||
/* returns a list of notifications, optionally only the new ones */
|
/* returns a list of notification ids, optionally only the new ones */
|
||||||
{
|
{
|
||||||
xs *t = NULL;
|
xs *t = NULL;
|
||||||
|
|
||||||
@ -1579,9 +1579,7 @@ xs_list *notify_list(snac *snac, int new_only)
|
|||||||
if (t != NULL && strcmp(id, t) < 0)
|
if (t != NULL && strcmp(id, t) < 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
xs *noti = notify_get(snac, id);
|
out = xs_list_append(out, id);
|
||||||
|
|
||||||
out = xs_list_append(out, noti);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return out;
|
return out;
|
||||||
|
17
mastoapi.c
17
mastoapi.c
@ -866,12 +866,17 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path,
|
|||||||
xs_dict *v;
|
xs_dict *v;
|
||||||
|
|
||||||
while (xs_list_iter(&p, &v)) {
|
while (xs_list_iter(&p, &v)) {
|
||||||
const char *type = xs_dict_get(v, "type");
|
xs *noti = notify_get(&snac1, v);
|
||||||
const char *objid = xs_dict_get(v, "objid");
|
|
||||||
|
if (noti == NULL)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
const char *type = xs_dict_get(noti, "type");
|
||||||
|
const char *objid = xs_dict_get(noti, "objid");
|
||||||
xs *actor = NULL;
|
xs *actor = NULL;
|
||||||
xs *entry = NULL;
|
xs *entry = NULL;
|
||||||
|
|
||||||
if (!valid_status(object_get(xs_dict_get(v, "actor"), &actor)))
|
if (!valid_status(object_get(xs_dict_get(noti, "actor"), &actor)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (objid != NULL && !valid_status(object_get(objid, &entry)))
|
if (objid != NULL && !valid_status(object_get(objid, &entry)))
|
||||||
@ -896,15 +901,15 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path,
|
|||||||
|
|
||||||
mn = xs_dict_append(mn, "type", type);
|
mn = xs_dict_append(mn, "type", type);
|
||||||
|
|
||||||
xs *id = xs_replace(xs_dict_get(v, "id"), ".", "");
|
xs *id = xs_replace(xs_dict_get(noti, "id"), ".", "");
|
||||||
mn = xs_dict_append(mn, "id", id);
|
mn = xs_dict_append(mn, "id", id);
|
||||||
|
|
||||||
mn = xs_dict_append(mn, "created_at", xs_dict_get(v, "date"));
|
mn = xs_dict_append(mn, "created_at", xs_dict_get(noti, "date"));
|
||||||
|
|
||||||
xs *acct = mastoapi_account(actor);
|
xs *acct = mastoapi_account(actor);
|
||||||
mn = xs_dict_append(mn, "account", acct);
|
mn = xs_dict_append(mn, "account", acct);
|
||||||
|
|
||||||
if (objid != NULL) {
|
if (strcmp(type, "follow") != 0 && !xs_is_null(objid)) {
|
||||||
xs *st = mastoapi_status(&snac1, entry);
|
xs *st = mastoapi_status(&snac1, entry);
|
||||||
mn = xs_dict_append(mn, "status", st);
|
mn = xs_dict_append(mn, "status", st);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user