summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordefault <nobody@localhost>2024-02-05 19:34:27 +0100
committerdefault <nobody@localhost>2024-02-05 19:34:27 +0100
commit4e35b4b865512b0616f1b9dd437ad12cf2953848 (patch)
tree194e305427675c9ac06cab23c45f7553d83a1673
parent67fbc6816b7bf22ecf9c93e1f42700e409b3b21c (diff)
Added paging to notify_list(), and use it in the notifications page.
-rw-r--r--data.c6
-rw-r--r--html.c6
-rw-r--r--mastoapi.c2
-rw-r--r--snac.h2
4 files changed, 8 insertions, 8 deletions
diff --git a/data.c b/data.c
index dfe1c4e..642dab4 100644
--- a/data.c
+++ b/data.c
@@ -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;
diff --git a/html.c b/html.c
index 85ec786..0508784 100644
--- a/html.c
+++ b/html.c
@@ -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;
}
diff --git a/mastoapi.c b/mastoapi.c
index f1af7ba..267f842 100644
--- a/mastoapi.c
+++ b/mastoapi.c
@@ -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;
diff --git a/snac.h b/snac.h
index 45861f8..cf2cf38 100644
--- a/snac.h
+++ b/snac.h
@@ -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);