From 4425d8e985e35cee72acf7b22f50422c8e1ac2a3 Mon Sep 17 00:00:00 2001 From: grunfink Date: Sun, 12 Jul 2026 20:12:03 +0200 Subject: Added count of EmojiReacts to top_ten. --- data.c | 8 ++++++++ main.c | 5 +++-- snac.h | 1 + utils.c | 7 ++++--- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/data.c b/data.c index 52e4271..806938c 100644 --- a/data.c +++ b/data.c @@ -1051,6 +1051,14 @@ int object_announces_len(const char *id) } +int object_emojireacts_len(const char *id) +/* returns the number of emojireacts (without reading the index) */ +{ + xs *fn = _object_index_fn(id, "_e.idx"); + return index_len(fn); +} + + xs_list *object_children(const char *id) /* returns the list of an object's children */ { diff --git a/main.c b/main.c index e7d5b0d..9170761 100644 --- a/main.c +++ b/main.c @@ -362,9 +362,10 @@ int main(int argc, char *argv[]) const xs_list *i; xs_list_foreach(l, i) { - printf("%s %ld★ %ld↺\n", xs_list_get(i, 0), + printf("%s %ld★ %ld↺ %ld☺\n", xs_list_get(i, 0), xs_number_get_l(xs_list_get(i, 1)), - xs_number_get_l(xs_list_get(i, 2))); + xs_number_get_l(xs_list_get(i, 2)), + xs_number_get_l(xs_list_get(i, 3))); } return 0; diff --git a/snac.h b/snac.h index 69180ae..cb4ae56 100644 --- a/snac.h +++ b/snac.h @@ -157,6 +157,7 @@ int object_emoji_react(const char *mid, const char *eid); int object_rm_emoji_react(const char *mid, const char *eid); int object_likes_len(const char *id); int object_announces_len(const char *id); +int object_emojireacts_len(const char *id); xs_list *object_children(const char *id); xs_list *object_likes(const char *id); diff --git a/utils.c b/utils.c index 9475bd7..6941081 100644 --- a/utils.c +++ b/utils.c @@ -1024,8 +1024,8 @@ static int top_ten_sort(const void *v1, const void *v2) const xs_list *l1 = *(const xs_list **)v1; const xs_list *l2 = *(const xs_list **)v2; - const char *c1 = xs_list_get(l1, 3); - const char *c2 = xs_list_get(l2, 3); + const char *c1 = xs_list_get(l1, 4); + const char *c2 = xs_list_get(l2, 4); return xs_cmp(c2, c1); } @@ -1060,9 +1060,10 @@ xs_list *user_top_ten(snac *user, int count) /* get metrics */ int ls = object_likes_len(id); int as = object_announces_len(id); + int es = object_emojireacts_len(id); /* build the entry and convert to list */ - xs *s = xs_fmt("%s\t%d\t%d\t%010d", id, ls, as, ls + as); + xs *s = xs_fmt("%s\t%d\t%d\t%d\t%010d", id, ls, as, es, ls + as + es); xs *l = xs_split(s, "\t"); u_list = xs_list_append(u_list, l); -- cgit