Revert "Longer timeouts for user fetching."
[akkoma] / lib / pleroma / web / websub / websub.ex
index 410303b7708620a5941c9b67ea69081ef04f2909..db1577a9373a71044263266a0b9443254dad2d94 100644 (file)
@@ -31,9 +31,9 @@ defmodule Pleroma.Web.Websub do
     do
       changeset = Changeset.change(subscription, %{state: "active"})
       Repo.update(changeset)
-    else _e ->
-      changeset = Changeset.change(subscription, %{state: "rejected"})
-      {:ok, subscription} = Repo.update(changeset)
+    else e ->
+      Logger.debug("Couldn't verify subscription")
+      Logger.debug(inspect(e))
       {:error, subscription}
     end
   end
@@ -49,19 +49,13 @@ defmodule Pleroma.Web.Websub do
       |> :xmerl.export_simple(:xmerl_xml)
       |> to_string
 
-      signature = sign(sub.secret || "", response)
-      Logger.debug(fn -> "Pushing #{topic} to #{sub.callback}" end)
-
-      Task.start(fn ->
-        with {:ok, %{status_code: code}} <- @httpoison.post(sub.callback, response, [
-              {"Content-Type", "application/atom+xml"},
-              {"X-Hub-Signature", "sha1=#{signature}"}
-                    ]) do
-          Logger.debug(fn -> "Pushed to #{sub.callback}, code #{code}" end)
-        else e ->
-            Logger.debug(fn -> "Couldn't push to #{sub.callback}, #{inspect(e)}" end)
-        end
-      end)
+      data = %{
+        xml: response,
+        topic: topic,
+        callback: sub.callback,
+        secret: sub.secret
+      }
+      Pleroma.Web.Federator.enqueue(:publish_single_websub, data)
     end)
   end
 
@@ -218,12 +212,12 @@ defmodule Pleroma.Web.Websub do
     cut_off = NaiveDateTime.add(NaiveDateTime.utc_now, delta)
 
     query = from sub in WebsubClientSubscription,
-      where: sub.valid_until < ^cut_off and sub.state == "accepted"
+      where: sub.valid_until < ^cut_off
 
     subs = Repo.all(query)
 
-    Enum.map(subs, fn (sub) ->
-      request_subscription(sub)
+    Enum.each(subs, fn (sub) ->
+      Pleroma.Web.Federator.enqueue(:request_subscription, sub)
     end)
   end
 end