Andrii Zadorozhnii 11 лет назад
Родитель
Сommit
e4801ea619
1 измененных файлов с 9 добавлено и 5 удалено
  1. 9 5
      src/kvs_feed.erl

+ 9 - 5
src/kvs_feed.erl

@@ -15,6 +15,15 @@ create() ->
     ok = kvs:put(#feed{id = FId} ),
     FId.
 
+comments_count(user,  Uid) -> case kvs:get(user_etries_count, Uid) of {error,_} -> 0; {ok, UEC} -> UEC#user_etries_count.comments end;
+comments_count(entry, Eid) -> case kvs:get(entry, Eid) of {error,_} -> 0; {ok, E} -> comments_count([E],0) end;
+comments_count([], Acc) -> Acc;
+comments_count([E|T], Acc) ->
+    C = case lists:keyfind(comments, 1, element(#iterator.feeds, E)) of false -> 0;
+    {_, Fid} -> case kvs:get(feed, Fid) of {error,_} -> 0;
+        {ok, Feed } -> Feed#feed.entries_count + comments_count(kvs:entries(Feed, comment), 0) end end,
+    comments_count(T,  C + Acc).
+
 add_like(Fid, Eid, Uid) ->
     Write_one_like = fun(Next) ->
         Self_id = kvs:next_id("one_like", 1),   
@@ -62,11 +71,6 @@ entries_count(Uid) ->
         {ok, UEC} -> UEC#user_etries_count.entries;
         {error, _} -> 0 end.
 
-comments_count(Uid) ->
-    case kvs:get(user_etries_count, Uid) of
-        {ok, UEC} -> UEC#user_etries_count.comments;
-        {error, _} -> 0 end.
-
 edit_entry(FeedId, EId, NewDescription) ->
     case kvs:get(entry,{EId, FeedId}) of
         {ok, OldEntry} ->