From 94e980d6b4ab91ee37c30b266eb91e748e23861c Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Wed, 24 May 2017 13:53:31 +0200 Subject: [PATCH] Output proper published data in ostatus. --- TODO.txt | 5 ++- lib/pleroma/web/ostatus/activity_representer.ex | 30 +++++-------- test/web/ostatus/activity_representer_test.exs | 57 ++++++------------------- 3 files changed, 26 insertions(+), 66 deletions(-) diff --git a/TODO.txt b/TODO.txt index 304e95e77..3138d0848 100644 --- a/TODO.txt +++ b/TODO.txt @@ -5,5 +5,8 @@ Unliking: WEBSUB: - Add unsubscription -- Add periodical renewal + +OSTATUS: + +- Save and output 'updated' diff --git a/lib/pleroma/web/ostatus/activity_representer.ex b/lib/pleroma/web/ostatus/activity_representer.ex index ccf71218c..aa13cd62b 100644 --- a/lib/pleroma/web/ostatus/activity_representer.ex +++ b/lib/pleroma/web/ostatus/activity_representer.ex @@ -28,10 +28,8 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenter do def to_simple_form(%{data: %{"object" => %{"type" => "Note"}}} = activity, user, with_author) do h = fn(str) -> [to_charlist(str)] end - updated_at = activity.updated_at - |> NaiveDateTime.to_iso8601 - inserted_at = activity.inserted_at - |> NaiveDateTime.to_iso8601 + updated_at = activity.data["published"] + inserted_at = activity.data["published"] attachments = Enum.map(activity.data["object"]["attachment"] || [], fn(attachment) -> url = hd(attachment["url"]) @@ -62,10 +60,8 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenter do def to_simple_form(%{data: %{"type" => "Like"}} = activity, user, with_author) do h = fn(str) -> [to_charlist(str)] end - updated_at = activity.updated_at - |> NaiveDateTime.to_iso8601 - inserted_at = activity.inserted_at - |> NaiveDateTime.to_iso8601 + updated_at = activity.data["published"] + inserted_at = activity.data["published"] in_reply_to = get_in_reply_to(activity.data) author = if with_author, do: [{:author, UserRepresenter.to_simple_form(user)}], else: [] @@ -92,10 +88,8 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenter do def to_simple_form(%{data: %{"type" => "Announce"}} = activity, user, with_author) do h = fn(str) -> [to_charlist(str)] end - updated_at = activity.updated_at - |> NaiveDateTime.to_iso8601 - inserted_at = activity.inserted_at - |> NaiveDateTime.to_iso8601 + updated_at = activity.data["published"] + inserted_at = activity.data["published"] in_reply_to = get_in_reply_to(activity.data) author = if with_author, do: [{:author, UserRepresenter.to_simple_form(user)}], else: [] @@ -124,10 +118,8 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenter do def to_simple_form(%{data: %{"type" => "Follow"}} = activity, user, with_author) do h = fn(str) -> [to_charlist(str)] end - updated_at = activity.updated_at - |> NaiveDateTime.to_iso8601 - inserted_at = activity.inserted_at - |> NaiveDateTime.to_iso8601 + updated_at = activity.data["published"] + inserted_at = activity.data["published"] author = if with_author, do: [{:author, UserRepresenter.to_simple_form(user)}], else: [] @@ -153,10 +145,8 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenter do def to_simple_form(%{data: %{"type" => "Undo"}} = activity, user, with_author) do h = fn(str) -> [to_charlist(str)] end - updated_at = activity.updated_at - |> NaiveDateTime.to_iso8601 - inserted_at = activity.inserted_at - |> NaiveDateTime.to_iso8601 + updated_at = activity.data["published"] + inserted_at = activity.data["published"] author = if with_author, do: [{:author, UserRepresenter.to_simple_form(user)}], else: [] follow_activity = Activity.get_by_ap_id(activity.data["object"]) diff --git a/test/web/ostatus/activity_representer_test.exs b/test/web/ostatus/activity_representer_test.exs index 0f011f31c..b23334d55 100644 --- a/test/web/ostatus/activity_representer_test.exs +++ b/test/web/ostatus/activity_representer_test.exs @@ -9,10 +9,6 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do test "a note activity" do note_activity = insert(:note_activity) - updated_at = note_activity.updated_at - |> NaiveDateTime.to_iso8601 - inserted_at = note_activity.inserted_at - |> NaiveDateTime.to_iso8601 user = User.get_cached_by_ap_id(note_activity.data["actor"]) @@ -22,8 +18,8 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do #{note_activity.data["object"]["id"]} New note by #{user.nickname} #{note_activity.data["object"]["content"]} - #{inserted_at} - #{updated_at} + #{note_activity.data["published"]} + #{note_activity.data["published"]} #{note_activity.data["context"]} @@ -47,11 +43,6 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do data = %{answer.data | "object" => object} answer = %{answer | data: data} - updated_at = answer.updated_at - |> NaiveDateTime.to_iso8601 - inserted_at = answer.inserted_at - |> NaiveDateTime.to_iso8601 - user = User.get_cached_by_ap_id(answer.data["actor"]) expected = """ @@ -60,8 +51,8 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do #{answer.data["object"]["id"]} New note by #{user.nickname} #{answer.data["object"]["content"]} - #{inserted_at} - #{updated_at} + #{answer.data["published"]} + #{answer.data["published"]} #{answer.data["context"]} @@ -92,19 +83,14 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do |> :xmerl.export_simple_content(:xmerl_xml) |> to_string - updated_at = announce.updated_at - |> NaiveDateTime.to_iso8601 - inserted_at = announce.inserted_at - |> NaiveDateTime.to_iso8601 - expected = """ http://activitystrea.ms/schema/1.0/activity http://activitystrea.ms/schema/1.0/share #{announce.data["id"]} #{user.nickname} repeated a notice RT #{note.data["object"]["content"]} - #{inserted_at} - #{updated_at} + #{announce.data["published"]} + #{announce.data["published"]} #{announce.data["context"]} @@ -126,12 +112,6 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do user = insert(:user) {:ok, like, _note} = ActivityPub.like(user, note) - # TODO: Are these the correct dates? - updated_at = like.updated_at - |> NaiveDateTime.to_iso8601 - inserted_at = like.inserted_at - |> NaiveDateTime.to_iso8601 - tuple = ActivityRepresenter.to_simple_form(like, user) refute is_nil(tuple) @@ -142,8 +122,8 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do #{like.data["id"]} New favorite by #{user.nickname} #{user.nickname} favorited something - #{inserted_at} - #{updated_at} + #{like.data["published"]} + #{like.data["published"]} http://activitystrea.ms/schema/1.0/note #{note.data["id"]} @@ -168,13 +148,6 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do "to" => [followed.ap_id] }) - - # TODO: Are these the correct dates? - updated_at = activity.updated_at - |> NaiveDateTime.to_iso8601 - inserted_at = activity.inserted_at - |> NaiveDateTime.to_iso8601 - tuple = ActivityRepresenter.to_simple_form(activity, follower) refute is_nil(tuple) @@ -187,8 +160,8 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do #{activity.data["id"]} #{follower.nickname} started following #{activity.data["object"]} #{follower.nickname} started following #{activity.data["object"]} - #{inserted_at} - #{updated_at} + #{activity.data["published"]} + #{activity.data["published"]} http://activitystrea.ms/schema/1.0/person #{activity.data["object"]} @@ -207,12 +180,6 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do {:ok, _activity} = ActivityPub.follow(follower, followed) {:ok, activity} = ActivityPub.unfollow(follower, followed) - # TODO: Are these the correct dates? - updated_at = activity.updated_at - |> NaiveDateTime.to_iso8601 - inserted_at = activity.inserted_at - |> NaiveDateTime.to_iso8601 - tuple = ActivityRepresenter.to_simple_form(activity, follower) refute is_nil(tuple) @@ -225,8 +192,8 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do #{activity.data["id"]} #{follower.nickname} stopped following #{followed.ap_id} #{follower.nickname} stopped following #{followed.ap_id} - #{inserted_at} - #{updated_at} + #{activity.data["published"]} + #{activity.data["published"]} http://activitystrea.ms/schema/1.0/person #{followed.ap_id}