Browse Source

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

default 2 năm trước cách đây
mục cha
commit
4e35b4b865
4 tập tin đã thay đổi với 8 bổ sung8 xóa
  1. 3 3
      data.c
  2. 3 3
      html.c
  3. 1 1
      mastoapi.c
  4. 1 1
      snac.h

+ 3 - 3
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;

+ 3 - 3
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;
         }

+ 1 - 1
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;

+ 1 - 1
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);