Add liking to ActivityPub.
[akkoma] / lib / pleroma / web / twitter_api / twitter_api.ex
index e1b6f248713c5fadbaeff35200d48d2f65dd4e6c..a195301ee27df99521097312d52beadb4bca1eec 100644 (file)
@@ -6,8 +6,6 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
   import Ecto.Query
 
   def create_status(user = %User{}, data = %{}) do
-    date = DateTime.utc_now() |> DateTime.to_iso8601
-
     attachments = Enum.map(data["media_ids"] || [], fn (media_id) ->
       Repo.get(Object, media_id).data
     end)
@@ -27,6 +25,8 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
 
     content_html = add_user_links(content, mentions)
 
+    date = make_date()
+
     activity = %{
       "type" => "Create",
       "to" => to,
@@ -37,7 +37,8 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
         "content" => content_html,
         "published" => date,
         "context" => context,
-        "attachment" => attachments
+        "attachment" => attachments,
+        "actor" => user.ap_id
       },
       "published" => date,
       "context" => context
@@ -69,7 +70,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
   end
 
   def fetch_friend_statuses(user, opts \\ %{}) do
-    ActivityPub.fetch_activities(user.following, opts)
+    ActivityPub.fetch_activities([user.ap_id | user.following], opts)
     |> activities_to_statuses(%{for: user})
   end
 
@@ -107,7 +108,8 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
          { :ok, activity } <- ActivityPub.insert(%{
            "type" => "Follow",
            "actor" => follower.ap_id,
-           "object" => followed.ap_id
+           "object" => followed.ap_id,
+           "published" => make_date()
          })
     do
       { :ok, follower, followed, activity }
@@ -183,4 +185,8 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do
     mentioned_users = Repo.all(from user in User, where: user.ap_id in ^activity.data["to"])
     ActivityRepresenter.to_map(activity, Map.merge(opts, %{user: user, mentioned: mentioned_users}))
   end
+
+  defp make_date do
+    DateTime.utc_now() |> DateTime.to_iso8601
+  end
 end