Move relay tasks to relay.ex
[akkoma] / lib / mix / tasks / pleroma / relay.ex
1 defmodule Mix.Tasks.Pleroma.Relay do
2 use Mix.Task
3 alias Pleroma.Web.ActivityPub.Relay
4
5 @shortdoc "Manages remote relays"
6 @moduledoc """
7 Manages remote relays
8
9 ## Follow a remote relay
10
11 ``mix pleroma.relay unfollow <relay_url>``
12
13 Example: ``mix pleroma.relay follow https://example.org/relay``
14
15 ## Unfollow a remote relay
16
17 ``mix pleroma.relay unfollow <relay_url>``
18
19 Example: ``mix pleroma.relay unfollow https://example.org/relay``
20 """
21 def run(["follow", target]) do
22 Mix.Task.run("app.start")
23
24 with {:ok, activity} <- Relay.follow(target) do
25 # put this task to sleep to allow the genserver to push out the messages
26 :timer.sleep(500)
27 else
28 {:error, e} -> Mix.shell().error("Error while following #{target}: #{inspect(e)}")
29 end
30 end
31
32 def run(["unfollow", target]) do
33 Mix.Task.run("app.start")
34
35 with {:ok, activity} <- Relay.follow(target) do
36 # put this task to sleep to allow the genserver to push out the messages
37 :timer.sleep(500)
38 else
39 {:error, e} -> Mix.shell().error("Error while following #{target}: #{inspect(e)}")
40 end
41 end
42 end