Add poll votes
[akkoma] / lib / pleroma / web / activity_pub / publisher.ex
index 11e54b77d3472eda80f47e1ff7dea4f9d207325c..11dba87dea79440dd9b25d1310ab75d6520026f5 100644 (file)
@@ -26,10 +26,11 @@ defmodule Pleroma.Web.ActivityPub.Publisher do
   Determine if an activity can be represented by running it through Transmogrifier.
   """
   def is_representable?(%Activity{} = activity) do
-    with %{} = _data <- Transmogrifier.prepare_outgoing(activity.data) do
+    with {:ok, _data} <- Transmogrifier.prepare_outgoing(activity.data) do
       true
     else
-      _e -> false
+      _e ->
+        false
     end
   end
 
@@ -53,7 +54,7 @@ defmodule Pleroma.Web.ActivityPub.Publisher do
       |> Timex.format!("{WDshort}, {0D} {Mshort} {YYYY} {h24}:{m}:{s} GMT")
 
     signature =
-      Pleroma.Web.HTTPSignatures.sign(actor, %{
+      Pleroma.Signature.sign(actor, %{
         host: host,
         "content-length": byte_size(json),
         digest: digest,
@@ -135,4 +136,17 @@ defmodule Pleroma.Web.ActivityPub.Publisher do
       )
     end)
   end
+
+  def gather_webfinger_links(%User{} = user) do
+    [
+      %{"rel" => "self", "type" => "application/activity+json", "href" => user.ap_id},
+      %{
+        "rel" => "self",
+        "type" => "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"",
+        "href" => user.ap_id
+      }
+    ]
+  end
+
+  def gather_nodeinfo_protocol_names, do: ["activitypub"]
 end