- def update_stats do
- peers = from(u in Pleroma.User,
- select: fragment("distinct ?->'host'", u.info),
- where: u.local != ^true)
- |> Repo.all()
+ def handle_info(:run_update, _state) do
+ new_stats = get_stat_data()
+
+ Process.send_after(self(), :run_update, @interval)
+ {:noreply, new_stats}
+ end
+
+ defp initial_data do
+ %{peers: [], stats: %{}}
+ end
+
+ defp get_stat_data do
+ peers =
+ from(
+ u in User,
+ select: fragment("distinct split_part(?, '@', 2)", u.nickname),
+ where: u.local != ^true
+ )
+ |> Repo.all()
+ |> Enum.filter(& &1)
+