- defp send_to_user(%{info: %{"salmon" => salmon}}, feed, poster) do
- poster.(salmon, feed, [{"Content-Type", "application/magic-envelope+xml"}], timeout: 10000, recv_timeout: 20000)
+ # push an activity to remote accounts
+ #
+ def send_to_user(%{info: %{salmon: salmon}}, feed, poster),
+ do: send_to_user(salmon, feed, poster)
+
+ def send_to_user(url, feed, poster) when is_binary(url) do
+ with {:ok, %{status: code}} when code in 200..299 <-
+ poster.(
+ url,
+ feed,
+ [
+ {"Content-Type", "application/magic-envelope+xml"},
+ {"referer", Pleroma.Web.Endpoint.url()}
+ ]
+ ) do
+ Instances.set_reachable(url)
+ Logger.debug(fn -> "Pushed to #{url}, code #{code}" end)
+ :ok
+ else
+ e ->
+ Instances.set_unreachable(url)
+ Logger.debug(fn -> "Pushing Salmon to #{url} failed, #{inspect(e)}" end)
+ :error
+ end