X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Fsalmon%2Fsalmon.ex;h=b4f81b4edfdf41a7e80472f431b77a1e78bc71ac;hb=b403ea4d2b69cef4434ad68babdfb402d8227847;hp=f02cb11dca554bbf370e4b2b2d6eb6cbd7aad562;hpb=8141024259ee4bebd58d6ecd963f181aad420846;p=akkoma diff --git a/lib/pleroma/web/salmon/salmon.ex b/lib/pleroma/web/salmon/salmon.ex index f02cb11dc..b4f81b4ed 100644 --- a/lib/pleroma/web/salmon/salmon.ex +++ b/lib/pleroma/web/salmon/salmon.ex @@ -1,4 +1,6 @@ defmodule Pleroma.Web.Salmon do + @httpoison Application.get_env(:pleroma, :httpoison) + use Bitwise alias Pleroma.Web.XML alias Pleroma.Web.OStatus.ActivityRepresenter @@ -14,7 +16,6 @@ defmodule Pleroma.Web.Salmon do {:xmlObj, :string, encoding} = :xmerl_xpath.string('string(//me:encoding[1])', doc) {:xmlObj, :string, type} = :xmerl_xpath.string('string(//me:data[1]/@type)', doc) - {:ok, data} = Base.url_decode64(to_string(data), ignore: :whitespace) {:ok, sig} = Base.url_decode64(to_string(sig), ignore: :whitespace) alg = to_string(alg) @@ -102,8 +103,13 @@ defmodule Pleroma.Web.Salmon do |> Enum.map(&Base.url_encode64/1) |> Enum.join(".") - signature = :public_key.sign(signed_text, :sha256, private_key) |> to_string |> Base.url_encode64 - doc_base64= doc |> Base.url_encode64 + signature = signed_text + |> :public_key.sign(:sha256, private_key) + |> to_string + |> Base.url_encode64 + + doc_base64 = doc + |> Base.url_encode64 # Don't need proper xml building, these strings are safe to leave unescaped salmon = """ @@ -131,7 +137,7 @@ defmodule Pleroma.Web.Salmon do defp send_to_user(_,_,_), do: nil - def publish(user, activity, poster \\ &HTTPoison.post/3) + def publish(user, activity, poster \\ &@httpoison.post/3) def publish(%{info: %{"keys" => keys}} = user, activity, poster) do feed = ActivityRepresenter.to_simple_form(activity, user, true) |> ActivityRepresenter.wrap_with_entry @@ -144,11 +150,13 @@ defmodule Pleroma.Web.Salmon do remote_users(activity) |> Enum.each(fn(remote_user) -> - Logger.debug("sending salmon to #{remote_user.ap_id}") - send_to_user(remote_user, feed, poster) + Task.start(fn -> + Logger.debug(fn -> "sending salmon to #{remote_user.ap_id}" end) + send_to_user(remote_user, feed, poster) + end) end) end end - def publish(%{id: id}, _, _), do: Logger.debug("Keys missing for user #{id}") + def publish(%{id: id}, _, _), do: Logger.debug(fn -> "Keys missing for user #{id}" end) end