commit 4425d8e

grunfink  ·  2026-07-12 18:12:03 +0000 UTC
parent 6032dd0
Added count of EmojiReacts to top_ten.
4 files changed,  +16, -5
M data.c
M main.c
M snac.h
M data.c
+8, -0
 1@@ -1051,6 +1051,14 @@ int object_announces_len(const char *id)
 2 }
 3 
 4 
 5+int object_emojireacts_len(const char *id)
 6+/* returns the number of emojireacts (without reading the index) */
 7+{
 8+    xs *fn = _object_index_fn(id, "_e.idx");
 9+    return index_len(fn);
10+}
11+
12+
13 xs_list *object_children(const char *id)
14 /* returns the list of an object's children */
15 {
M main.c
+3, -2
 1@@ -362,9 +362,10 @@ int main(int argc, char *argv[])
 2         const xs_list *i;
 3 
 4         xs_list_foreach(l, i) {
 5-            printf("%s %ld★ %ld↺\n", xs_list_get(i, 0),
 6+            printf("%s %ld★ %ld↺ %ld☺\n", xs_list_get(i, 0),
 7                 xs_number_get_l(xs_list_get(i, 1)),
 8-                xs_number_get_l(xs_list_get(i, 2)));
 9+                xs_number_get_l(xs_list_get(i, 2)),
10+                xs_number_get_l(xs_list_get(i, 3)));
11         }
12 
13         return 0;
M snac.h
+1, -0
1@@ -157,6 +157,7 @@ int object_emoji_react(const char *mid, const char *eid);
2 int object_rm_emoji_react(const char *mid, const char *eid);
3 int object_likes_len(const char *id);
4 int object_announces_len(const char *id);
5+int object_emojireacts_len(const char *id);
6 
7 xs_list *object_children(const char *id);
8 xs_list *object_likes(const char *id);
+4, -3
 1@@ -1024,8 +1024,8 @@ static int top_ten_sort(const void *v1, const void *v2)
 2     const xs_list *l1 = *(const xs_list **)v1;
 3     const xs_list *l2 = *(const xs_list **)v2;
 4 
 5-    const char *c1 = xs_list_get(l1, 3);
 6-    const char *c2 = xs_list_get(l2, 3);
 7+    const char *c1 = xs_list_get(l1, 4);
 8+    const char *c2 = xs_list_get(l2, 4);
 9 
10     return xs_cmp(c2, c1);
11 }
12@@ -1060,9 +1060,10 @@ xs_list *user_top_ten(snac *user, int count)
13         /* get metrics */
14         int ls = object_likes_len(id);
15         int as = object_announces_len(id);
16+        int es = object_emojireacts_len(id);
17 
18         /* build the entry and convert to list */
19-        xs *s = xs_fmt("%s\t%d\t%d\t%010d", id, ls, as, ls + as);
20+        xs *s = xs_fmt("%s\t%d\t%d\t%d\t%010d", id, ls, as, es, ls + as + es);
21         xs *l = xs_split(s, "\t");
22 
23         u_list = xs_list_append(u_list, l);