aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Braun <roger@rogerbraun.net>2017-04-25 18:03:14 +0200
committerRoger Braun <roger@rogerbraun.net>2017-04-25 18:03:14 +0200
commitf980f6778b1447b808299fa9274854bb25f9823b (patch)
treea8982cc2ca8ab65ff41079415dbe1723c3349a60
parentb438ea24ee936ae10efdcd3c9079e3b45ae521f4 (diff)
downloadpleroma-f980f6778b1447b808299fa9274854bb25f9823b.tar.gz
Wire up mentions.
-rw-r--r--lib/pleroma/web/ostatus/ostatus.ex21
-rw-r--r--test/web/ostatus/ostatus_test.exs1
2 files changed, 6 insertions, 16 deletions
diff --git a/lib/pleroma/web/ostatus/ostatus.ex b/lib/pleroma/web/ostatus/ostatus.ex
index 8c31ce5aa..65141f826 100644
--- a/lib/pleroma/web/ostatus/ostatus.ex
+++ b/lib/pleroma/web/ostatus/ostatus.ex
@@ -31,10 +31,7 @@ defmodule Pleroma.Web.OStatus do
end
# TODO
- # Parse mention
# wire up replies
- # Set correct context
- # Set correct statusnet ids.
def handle_note(doc) do
content_html = string_from_xpath("/entry/content[1]", doc)
@@ -52,6 +49,11 @@ defmodule Pleroma.Web.OStatus do
"https://www.w3.org/ns/activitystreams#Public"
]
+ mentions = :xmerl_xpath.string('/entry/link[@rel="mentioned" and @ostatus:object-type="http://activitystrea.ms/schema/1.0/person"]', doc)
+ |> Enum.map(fn(person) -> string_from_xpath("@href", person) end)
+
+ to = to ++ mentions
+
date = string_from_xpath("/entry/published", doc)
object = %{
@@ -66,19 +68,6 @@ defmodule Pleroma.Web.OStatus do
ActivityPub.create(to, actor, context, object, %{}, date)
end
- def find_or_make(author, doc) do
- query = from user in User,
- where: user.local == false and fragment("? @> ?", user.info, ^%{ostatus_uri: author})
-
- user = Repo.one(query)
-
- if is_nil(user) do
- make_user(doc)
- else
- {:ok, user}
- end
- end
-
def find_or_make_user(author_doc) do
{:xmlObj, :string, uri } = :xmerl_xpath.string('string(/author[1]/uri)', author_doc)
diff --git a/test/web/ostatus/ostatus_test.exs b/test/web/ostatus/ostatus_test.exs
index 61dca5446..dffebf5a7 100644
--- a/test/web/ostatus/ostatus_test.exs
+++ b/test/web/ostatus/ostatus_test.exs
@@ -10,6 +10,7 @@ defmodule Pleroma.Web.OStatusTest do
assert activity.data["object"]["type"] == "Note"
assert activity.data["published"] == "2017-04-23T14:51:03+00:00"
assert activity.data["context"] == "tag:gs.example.org:4040,2017-04-23:objectType=thread:nonce=f09e22f58abd5c7b"
+ assert "http://pleroma.example.org:4000/users/lain3" in activity.data["to"]
end
describe "new remote user creation" do