Add subscription marking to keep track of things you've read
[blerg.git] / cgi / cgi_blerg.c
index b479535..85af748 100644 (file)
@@ -381,21 +381,21 @@ int main(int argc, char *argv[]) {
                if (!check_auth(username))
                        exit(0);
 
-               if (path[9] != '/') {
-                       respond_404();
-                       exit(0);
-               }
-
+               yajl_gen g = yajl_gen_alloc(&yajl_c, NULL);
+               yajl_gen_map_open(g);
                ret = parse_url_info(path + 10, &info);
                if ((ret & URL_INFO_NAME) == 0) {
-                       respond_404();
-                       exit(0);
-               }
+                       struct blerg *b = blerg_open(username);
+                       uint64_t subscription_mark = blerg_get_subscription_mark(b);
+                       blerg_close(b);
 
-               yajl_gen g = yajl_gen_alloc(&yajl_c, NULL);
-               yajl_gen_map_open(g);
-               yajl_gen_string(g, "subscribed", 10);
-               yajl_gen_bool(g, is_subscribed(username, info.name));
+                       yajl_gen_string(g, "new", 3);
+                       yajl_gen_integer(g, subscription_count_items(username) - subscription_mark);
+               } else {
+                       yajl_gen_string(g, "subscribed", 10);
+                       yajl_gen_bool(g, is_subscribed(username, info.name));
+
+               }
                yajl_gen_map_close(g);
 
                const unsigned char *ybuf;