Merge branch 'remove-avatar-header' into 'develop'
[akkoma] / lib / pleroma / user / synchronization_worker.ex
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-onl
4
5 defmodule Pleroma.User.SynchronizationWorker do
6 use GenServer
7
8 def start_link do
9 config = Pleroma.Config.get([:instance, :external_user_synchronization])
10
11 if config[:enabled] do
12 GenServer.start_link(__MODULE__, interval: config[:interval])
13 else
14 :ignore
15 end
16 end
17
18 def init(opts) do
19 schedule_next(opts)
20 {:ok, opts}
21 end
22
23 def handle_info(:sync_follow_counters, opts) do
24 Pleroma.User.sync_follow_counter()
25 schedule_next(opts)
26 {:noreply, opts}
27 end
28
29 defp schedule_next(opts) do
30 Process.send_after(self(), :sync_follow_counters, opts[:interval])
31 end
32 end