aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorFrancis Dinh <normandy@firemail.cc>2018-05-11 11:59:53 -0400
committerFrancis Dinh <normandy@firemail.cc>2018-05-11 11:59:53 -0400
commit271fb5ccb13cfbe38452c78d0e843840d6106cfe (patch)
tree8258d4ef1932d168a7402d3a19a3566b80b40b4b /lib
parent4151cbe6b279a0db8b2920b9ebfc0d496f0cb395 (diff)
downloadpleroma-271fb5ccb13cfbe38452c78d0e843840d6106cfe.tar.gz
Probably better way of handling non-follow undos in ostatus
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/ostatus/activity_representer.ex36
-rw-r--r--lib/pleroma/web/salmon/salmon.ex11
2 files changed, 25 insertions, 22 deletions
diff --git a/lib/pleroma/web/ostatus/activity_representer.ex b/lib/pleroma/web/ostatus/activity_representer.ex
index 1e9d4a7fb..730a3ac11 100644
--- a/lib/pleroma/web/ostatus/activity_representer.ex
+++ b/lib/pleroma/web/ostatus/activity_representer.ex
@@ -250,23 +250,25 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenter do
mentions = (activity.recipients || []) |> get_mentions
- [
- {:"activity:object-type", ['http://activitystrea.ms/schema/1.0/activity']},
- {:"activity:verb", ['http://activitystrea.ms/schema/1.0/unfollow']},
- {:id, h.(activity.data["id"])},
- {:title, ['#{user.nickname} stopped following #{follow_activity.data["object"]}']},
- {:content, [type: 'html'],
- ['#{user.nickname} stopped following #{follow_activity.data["object"]}']},
- {:published, h.(inserted_at)},
- {:updated, h.(updated_at)},
- {:"activity:object",
- [
- {:"activity:object-type", ['http://activitystrea.ms/schema/1.0/person']},
- {: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
+ if follow_activity do
+ [
+ {:"activity:object-type", ['http://activitystrea.ms/schema/1.0/activity']},
+ {:"activity:verb", ['http://activitystrea.ms/schema/1.0/unfollow']},
+ {:id, h.(activity.data["id"])},
+ {:title, ['#{user.nickname} stopped following #{follow_activity.data["object"]}']},
+ {:content, [type: 'html'],
+ ['#{user.nickname} stopped following #{follow_activity.data["object"]}']},
+ {:published, h.(inserted_at)},
+ {:updated, h.(updated_at)},
+ {:"activity:object",
+ [
+ {:"activity:object-type", ['http://activitystrea.ms/schema/1.0/person']},
+ {: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
+ end
end
def to_simple_form(%{data: %{"type" => "Delete"}} = activity, user, with_author) do
diff --git a/lib/pleroma/web/salmon/salmon.ex b/lib/pleroma/web/salmon/salmon.ex
index 10542fd00..562ec3d9c 100644
--- a/lib/pleroma/web/salmon/salmon.ex
+++ b/lib/pleroma/web/salmon/salmon.ex
@@ -187,13 +187,14 @@ defmodule Pleroma.Web.Salmon do
def publish(%{info: %{"keys" => keys}} = user, %{data: %{"type" => type}} = activity, poster)
when type in @supported_activities do
- feed =
- ActivityRepresenter.to_simple_form(activity, user, true)
- |> ActivityRepresenter.wrap_with_entry()
- |> :xmerl.export_simple(:xmerl_xml)
- |> to_string
+ feed = ActivityRepresenter.to_simple_form(activity, user, true)
if feed do
+ feed =
+ ActivityRepresenter.wrap_with_entry(feed)
+ |> :xmerl.export_simple(:xmerl_xml)
+ |> to_string
+
{:ok, private, _} = keys_from_pem(keys)
{:ok, feed} = encode(private, feed)