Jelajahi Sumber

Added count of EmojiReacts to top_ten.

grunfink 2 minggu lalu
induk
melakukan
4425d8e985
4 mengubah file dengan 16 tambahan dan 5 penghapusan
  1. 8 0
      data.c
  2. 3 2
      main.c
  3. 1 0
      snac.h
  4. 4 3
      utils.c

+ 8 - 0
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 */
 {

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

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

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