Probably better way of handling non-follow undos in ostatus

This commit is contained in:
Francis Dinh 2018-05-11 11:59:53 -04:00
parent 4151cbe6b2
commit 271fb5ccb1
2 changed files with 25 additions and 22 deletions

View File

@ -250,23 +250,25 @@ def to_simple_form(%{data: %{"type" => "Undo"}} = activity, user, with_author) d
mentions = (activity.recipients || []) |> get_mentions mentions = (activity.recipients || []) |> get_mentions
[ if follow_activity do
{:"activity:object-type", ['http://activitystrea.ms/schema/1.0/activity']}, [
{:"activity:verb", ['http://activitystrea.ms/schema/1.0/unfollow']}, {:"activity:object-type", ['http://activitystrea.ms/schema/1.0/activity']},
{:id, h.(activity.data["id"])}, {:"activity:verb", ['http://activitystrea.ms/schema/1.0/unfollow']},
{:title, ['#{user.nickname} stopped following #{follow_activity.data["object"]}']}, {:id, h.(activity.data["id"])},
{:content, [type: 'html'], {:title, ['#{user.nickname} stopped following #{follow_activity.data["object"]}']},
['#{user.nickname} stopped following #{follow_activity.data["object"]}']}, {:content, [type: 'html'],
{:published, h.(inserted_at)}, ['#{user.nickname} stopped following #{follow_activity.data["object"]}']},
{:updated, h.(updated_at)}, {:published, h.(inserted_at)},
{:"activity:object", {:updated, h.(updated_at)},
[ {:"activity:object",
{:"activity:object-type", ['http://activitystrea.ms/schema/1.0/person']}, [
{:id, h.(follow_activity.data["object"])}, {:"activity:object-type", ['http://activitystrea.ms/schema/1.0/person']},
{:uri, h.(follow_activity.data["object"])} {:id, h.(follow_activity.data["object"])},
]}, {:uri, h.(follow_activity.data["object"])}
{:link, [rel: 'self', type: ['application/atom+xml'], href: h.(activity.data["id"])], []} ]},
] ++ mentions ++ author {:link, [rel: 'self', type: ['application/atom+xml'], href: h.(activity.data["id"])], []}
] ++ mentions ++ author
end
end end
def to_simple_form(%{data: %{"type" => "Delete"}} = activity, user, with_author) do def to_simple_form(%{data: %{"type" => "Delete"}} = activity, user, with_author) do

View File

@ -187,13 +187,14 @@ def publish(user, activity, poster \\ &@httpoison.post/4)
def publish(%{info: %{"keys" => keys}} = user, %{data: %{"type" => type}} = activity, poster) def publish(%{info: %{"keys" => keys}} = user, %{data: %{"type" => type}} = activity, poster)
when type in @supported_activities do when type in @supported_activities do
feed = feed = ActivityRepresenter.to_simple_form(activity, user, true)
ActivityRepresenter.to_simple_form(activity, user, true)
|> ActivityRepresenter.wrap_with_entry()
|> :xmerl.export_simple(:xmerl_xml)
|> to_string
if feed do if feed do
feed =
ActivityRepresenter.wrap_with_entry(feed)
|> :xmerl.export_simple(:xmerl_xml)
|> to_string
{:ok, private, _} = keys_from_pem(keys) {:ok, private, _} = keys_from_pem(keys)
{:ok, feed} = encode(private, feed) {:ok, feed} = encode(private, feed)