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,6 +250,7 @@ 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:object-type", ['http://activitystrea.ms/schema/1.0/activity']},
{:"activity:verb", ['http://activitystrea.ms/schema/1.0/unfollow']}, {:"activity:verb", ['http://activitystrea.ms/schema/1.0/unfollow']},
@ -268,6 +269,7 @@ def to_simple_form(%{data: %{"type" => "Undo"}} = activity, user, with_author) d
{:link, [rel: 'self', type: ['application/atom+xml'], href: h.(activity.data["id"])], []} {:link, [rel: 'self', type: ['application/atom+xml'], href: h.(activity.data["id"])], []}
] ++ mentions ++ author ] ++ 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
h = fn str -> [to_charlist(str)] end h = fn str -> [to_charlist(str)] end

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 = ActivityRepresenter.to_simple_form(activity, user, true)
if feed do
feed = feed =
ActivityRepresenter.to_simple_form(activity, user, true) ActivityRepresenter.wrap_with_entry(feed)
|> ActivityRepresenter.wrap_with_entry()
|> :xmerl.export_simple(:xmerl_xml) |> :xmerl.export_simple(:xmerl_xml)
|> to_string |> to_string
if feed do
{:ok, private, _} = keys_from_pem(keys) {:ok, private, _} = keys_from_pem(keys)
{:ok, feed} = encode(private, feed) {:ok, feed} = encode(private, feed)