Added paging to notify_list(), and use it in the notifications page.

This commit is contained in:
default 2024-02-05 19:34:27 +01:00
parent 67fbc6816b
commit 4e35b4b865
4 changed files with 8 additions and 8 deletions

6
data.c
View file

@ -2084,7 +2084,7 @@ xs_dict *notify_get(snac *snac, const char *id)
}
xs_list *notify_list(snac *snac)
xs_list *notify_list(snac *snac, int skip, int show)
/* returns a list of notification ids */
{
xs *idx = xs_fmt("%s/notify.idx", snac->basedir);
@ -2115,7 +2115,7 @@ xs_list *notify_list(snac *snac)
pthread_mutex_unlock(&data_mutex);
}
return index_list_desc(idx, 0, 64);
return index_list_desc(idx, skip, show);
}
@ -2123,7 +2123,7 @@ int notify_new_num(snac *snac)
/* counts the number of new notifications */
{
xs *t = notify_check_time(snac, 0);
xs *lst = notify_list(snac);
xs *lst = notify_list(snac, 0, XS_ALL);
int cnt = 0;
xs_list *p = lst;

6
html.c
View file

@ -2135,9 +2135,9 @@ xs_str *html_people(snac *user)
}
xs_str *html_notifications(snac *user)
xs_str *html_notifications(snac *user, int skip, int show)
{
xs *n_list = notify_list(user);
xs *n_list = notify_list(user, skip, show);
xs *n_time = notify_check_time(user, 0);
xs_html *body = html_user_body(user, 0);
@ -2428,7 +2428,7 @@ int html_get_handler(const xs_dict *req, const char *q_path,
status = 401;
}
else {
*body = html_notifications(&snac);
*body = html_notifications(&snac, skip, show);
*b_size = strlen(*body);
status = 200;
}

View file

@ -1542,7 +1542,7 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path,
else
if (strcmp(cmd, "/v1/notifications") == 0) { /** **/
if (logged_in) {
xs *l = notify_list(&snac1);
xs *l = notify_list(&snac1, 0, 64);
xs *out = xs_list_new();
xs_list *p = l;
xs_dict *v;

2
snac.h
View file

@ -188,7 +188,7 @@ void notify_add(snac *snac, const char *type, const char *utype,
const char *actor, const char *objid);
xs_dict *notify_get(snac *snac, const char *id);
int notify_new_num(snac *snac);
xs_list *notify_list(snac *snac);
xs_list *notify_list(snac *snac, int skip, int show);
void notify_clear(snac *snac);
void inbox_add(const char *inbox);