Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop
[akkoma] / lib / pleroma / stats.ex
index cf590fb0158abedf9d2e80dda0db9d8262a61a65..4446562ac0b797fc28762cee480387796852b28d 100644 (file)
@@ -1,27 +1,19 @@
 # Pleroma: A lightweight social networking server
-# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.Stats do
   import Ecto.Query
+  alias Pleroma.CounterCache
   alias Pleroma.Repo
   alias Pleroma.User
 
   use GenServer
 
-  @init_state %{
-    peers: [],
-    stats: %{
-      domain_count: 0,
-      status_count: 0,
-      user_count: 0
-    }
-  }
-
   def start_link(_) do
     GenServer.start_link(
       __MODULE__,
-      @init_state,
+      nil,
       name: __MODULE__
     )
   end
@@ -52,8 +44,8 @@ defmodule Pleroma.Stats do
     peers
   end
 
-  def init(args) do
-    {:ok, args}
+  def init(_args) do
+    {:ok, get_stat_data()}
   end
 
   def handle_call(:force_update, _from, _state) do
@@ -96,4 +88,21 @@ defmodule Pleroma.Stats do
       }
     }
   end
+
+  def get_status_visibility_count do
+    counter_cache =
+      CounterCache.get_as_map([
+        "status_visibility_public",
+        "status_visibility_private",
+        "status_visibility_unlisted",
+        "status_visibility_direct"
+      ])
+
+    %{
+      public: counter_cache["status_visibility_public"] || 0,
+      unlisted: counter_cache["status_visibility_unlisted"] || 0,
+      private: counter_cache["status_visibility_private"] || 0,
+      direct: counter_cache["status_visibility_direct"] || 0
+    }
+  end
 end