projects
/
akkoma
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
acb03d5
)
Create Object.hashtags/1 wrapper
author
Haelwenn (lanodan) Monnier
<contact@hacktivis.me>
Tue, 22 Dec 2020 02:54:57 +0000
(
03:54
+0100)
committer
Haelwenn (lanodan) Monnier
<contact@hacktivis.me>
Tue, 22 Dec 2020 04:15:34 +0000
(
05:15
+0100)
lib/pleroma/object.ex
patch
|
blob
|
history
lib/pleroma/web/activity_pub/mrf/simple_policy.ex
patch
|
blob
|
history
lib/pleroma/web/activity_pub/transmogrifier.ex
patch
|
blob
|
history
lib/pleroma/web/mastodon_api/views/status_view.ex
patch
|
blob
|
history
lib/pleroma/web/templates/feed/feed/_activity.atom.eex
patch
|
blob
|
history
lib/pleroma/web/templates/feed/feed/_activity.rss.eex
patch
|
blob
|
history
lib/pleroma/web/templates/feed/feed/_tag_activity.atom.eex
patch
|
blob
|
history
diff --git
a/lib/pleroma/object.ex
b/lib/pleroma/object.ex
index 052ad413bd6c7b2897b3b5823a60f1b884f96394..00d561d1b9cd75a3497e0644afea58c65bfe0b0b 100644
(file)
--- a/
lib/pleroma/object.ex
+++ b/
lib/pleroma/object.ex
@@
-344,4
+344,8
@@
defmodule Pleroma.Object do
def self_replies(object, opts \\ []),
do: replies(object, Keyword.put(opts, :self_only, true))
def self_replies(object, opts \\ []),
do: replies(object, Keyword.put(opts, :self_only, true))
+
+ def hashtags(%{"hashtags" => hashtags}), do: hashtags || []
+ def hashtags(%{"tag" => tags}), do: Enum.filter(tags, &is_bitstring(&1))
+ def hashtags(_), do: []
end
end
diff --git
a/lib/pleroma/web/activity_pub/mrf/simple_policy.ex
b/lib/pleroma/web/activity_pub/mrf/simple_policy.ex
index 2fa7b3194d02235856ab7b1bfcd08aaede549b9d..8e0514dc830c20b8840ee7bdb7ccd84858b9977a 100644
(file)
--- a/
lib/pleroma/web/activity_pub/mrf/simple_policy.ex
+++ b/
lib/pleroma/web/activity_pub/mrf/simple_policy.ex
@@
-8,6
+8,7
@@
defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do
alias Pleroma.Config
alias Pleroma.FollowingRelationship
alias Pleroma.Config
alias Pleroma.FollowingRelationship
+ alias Pleroma.Object
alias Pleroma.User
alias Pleroma.Web.ActivityPub.MRF
alias Pleroma.User
alias Pleroma.Web.ActivityPub.MRF
@@
-76,7
+77,7
@@
defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do
if MRF.subdomain_match?(media_nsfw, actor_host) do
child_object =
child_object
if MRF.subdomain_match?(media_nsfw, actor_host) do
child_object =
child_object
- |> Map.put("hashtags",
(child_object["hashtags"] || []
) ++ ["nsfw"])
+ |> Map.put("hashtags",
Object.hashtags(child_object
) ++ ["nsfw"])
|> Map.put("sensitive", true)
Map.put(object, "object", child_object)
|> Map.put("sensitive", true)
Map.put(object, "object", child_object)
diff --git
a/lib/pleroma/web/activity_pub/transmogrifier.ex
b/lib/pleroma/web/activity_pub/transmogrifier.ex
index d3dc637dac34a3f2391517b2a915206f8b2349de..36ef6a454e54a0cc8ca38c0844532f3a68836a43 100644
(file)
--- a/
lib/pleroma/web/activity_pub/transmogrifier.ex
+++ b/
lib/pleroma/web/activity_pub/transmogrifier.ex
@@
-863,23
+863,18
@@
defmodule Pleroma.Web.ActivityPub.Transmogrifier do
def maybe_fix_object_url(data), do: data
def add_hashtags(object) do
def maybe_fix_object_url(data), do: data
def add_hashtags(object) do
- tags =
- ((object["hashtags"] || []) ++ (object["tag"] || []))
- |> Enum.map(fn
- # Expand internal representation tags into AS2 tags.
- tag when is_binary(tag) ->
- %{
- "href" => Pleroma.Web.Endpoint.url() <> "/tags/#{tag}",
- "name" => "##{tag}",
- "type" => "Hashtag"
- }
-
- # Do not process tags which are already AS2 tag objects.
- tag when is_map(tag) ->
- tag
+ hashtags =
+ object
+ |> Object.hashtags()
+ |> Enum.map(fn tag ->
+ %{
+ "href" => Pleroma.Web.Endpoint.url() <> "/tags/#{tag}",
+ "name" => "##{tag}",
+ "type" => "Hashtag"
+ }
end)
end)
- Map.put(object, "tag",
tags
)
+ Map.put(object, "tag",
hashtags ++ (object["tag"] || [])
)
end
# TODO These should be added on our side on insertion, it doesn't make much
end
# TODO These should be added on our side on insertion, it doesn't make much
diff --git
a/lib/pleroma/web/mastodon_api/views/status_view.ex
b/lib/pleroma/web/mastodon_api/views/status_view.ex
index 6fc6272c28922b63c1cb4fc17b668aad62ef3e05..b39f05d13c736b94bf2860191d75222cd9e2c622 100644
(file)
--- a/
lib/pleroma/web/mastodon_api/views/status_view.ex
+++ b/
lib/pleroma/web/mastodon_api/views/status_view.ex
@@
-347,7
+347,7
@@
defmodule Pleroma.Web.MastodonAPI.StatusView do
media_attachments: attachments,
poll: render(PollView, "show.json", object: object, for: opts[:for]),
mentions: mentions,
media_attachments: attachments,
poll: render(PollView, "show.json", object: object, for: opts[:for]),
mentions: mentions,
- tags: build_tags(
object.data["hashtags"] || tags
),
+ tags: build_tags(
Object.hashtags(object.data)
),
application: %{
name: "Web",
website: nil
application: %{
name: "Web",
website: nil
diff --git
a/lib/pleroma/web/templates/feed/feed/_activity.atom.eex
b/lib/pleroma/web/templates/feed/feed/_activity.atom.eex
index 12a9545f3458530131875b56bd8e6a4eacaf2b78..cb18abb5db9958658ec1d8f7e232480545a72ee9 100644
(file)
--- a/
lib/pleroma/web/templates/feed/feed/_activity.atom.eex
+++ b/
lib/pleroma/web/templates/feed/feed/_activity.atom.eex
@@
-22,7
+22,7
@@
<link type="text/html" href='<%= @data["external_url"] %>' rel="alternate"/>
<% end %>
<link type="text/html" href='<%= @data["external_url"] %>' rel="alternate"/>
<% end %>
- <%= for hashtag <-
@data["hashtags"] || []
do %>
+ <%= for hashtag <-
Object.hashtags(@data)
do %>
<category term="<%= hashtag %>"></category>
<% end %>
<category term="<%= hashtag %>"></category>
<% end %>
diff --git
a/lib/pleroma/web/templates/feed/feed/_activity.rss.eex
b/lib/pleroma/web/templates/feed/feed/_activity.rss.eex
index 00872b4b76db926e224001c3829fcc4ac7835c73..6ef24d0ef595dee79dce09b18616a7bf1fbdde78 100644
(file)
--- a/
lib/pleroma/web/templates/feed/feed/_activity.rss.eex
+++ b/
lib/pleroma/web/templates/feed/feed/_activity.rss.eex
@@
-21,7
+21,7
@@
<link><%= @data["external_url"] %></link>
<% end %>
<link><%= @data["external_url"] %></link>
<% end %>
- <%= for hashtag <-
@data["hashtags"] || []
do %>
+ <%= for hashtag <-
Object.hashtags(@data)
do %>
<category term="<%= hashtag %>"></category>
<% end %>
<category term="<%= hashtag %>"></category>
<% end %>
diff --git
a/lib/pleroma/web/templates/feed/feed/_tag_activity.atom.eex
b/lib/pleroma/web/templates/feed/feed/_tag_activity.atom.eex
index 1377a6bbc72b2ecb41f6e5e2fc7e118ab9baec04..098e2820558515bdd6248260bb8a10db517f8ea0 100644
(file)
--- a/
lib/pleroma/web/templates/feed/feed/_tag_activity.atom.eex
+++ b/
lib/pleroma/web/templates/feed/feed/_tag_activity.atom.eex
@@
-41,7
+41,7
@@
<% end %>
<% end %>
<% end %>
<% end %>
- <%= for hashtag <-
@data["hashtags"] || []
do %>
+ <%= for hashtag <-
Object.hashtags(@data)
do %>
<category term="<%= hashtag %>"></category>
<% end %>
<category term="<%= hashtag %>"></category>
<% end %>