aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrinpatch <rinpatch@sdf.org>2019-01-15 23:25:28 +0300
committerrinpatch <rinpatch@sdf.org>2019-01-15 23:25:28 +0300
commit9aa69e12b87a892d33d1bf4f0d556752391b465a (patch)
treed81215df097f64c4cd45f4337c955fe9647414f6
parent2e630bea0da6452d3342a335da3ca642dc61c1b3 (diff)
downloadpleroma-9aa69e12b87a892d33d1bf4f0d556752391b465a.tar.gz
Add behaviours to TwitterCard, remove some dumb stuff in Formatter.truncate
-rw-r--r--lib/pleroma/formatter.ex21
-rw-r--r--lib/pleroma/web/metadata/opengraph.ex3
-rw-r--r--lib/pleroma/web/metadata/twitter_card.ex6
3 files changed, 14 insertions, 16 deletions
diff --git a/lib/pleroma/formatter.ex b/lib/pleroma/formatter.ex
index 49f7075e6..63e0acb21 100644
--- a/lib/pleroma/formatter.ex
+++ b/lib/pleroma/formatter.ex
@@ -184,21 +184,12 @@ defmodule Pleroma.Formatter do
end)
end
- def truncate(text, opts \\ []) do
- max_length = opts[:max_length] || 200
- omission = opts[:omission] || "..."
-
- cond do
- not String.valid?(text) ->
- text
-
- String.length(text) < max_length ->
- text
-
- true ->
- length_with_omission = max_length - String.length(omission)
-
- "#{String.slice(text, 0, length_with_omission)}#{omission}"
+ def truncate(text, max_length \\ 200, omission \\ "...") do
+ if String.length(text) < max_length do
+ text
+ else
+ length_with_omission = max_length - String.length(omission)
+ String.slice(text, 0, length_with_omission) <> omission
end
end
end
diff --git a/lib/pleroma/web/metadata/opengraph.ex b/lib/pleroma/web/metadata/opengraph.ex
index fcc960311..1e3af947d 100644
--- a/lib/pleroma/web/metadata/opengraph.ex
+++ b/lib/pleroma/web/metadata/opengraph.ex
@@ -19,7 +19,8 @@ defmodule Pleroma.Web.Metadata.Providers.OpenGraph do
{:meta, [property: "og:url", content: activity.data["id"]], []},
{:meta, [property: "og:description", content: truncated_content], []}
] ++
- if attachments == [] or Enum.any?(activity.data["object"]["tag"], fn tag -> tag == "nsfw" end) do
+ if attachments == [] or
+ Enum.any?(activity.data["object"]["tag"], fn tag -> tag == "nsfw" end) do
[
{:meta, [property: "og:image", content: attachment_url(User.avatar_url(user))], []},
{:meta, [property: "og:image:width", content: 120], []},
diff --git a/lib/pleroma/web/metadata/twitter_card.ex b/lib/pleroma/web/metadata/twitter_card.ex
index 6424f84b3..3094e61fd 100644
--- a/lib/pleroma/web/metadata/twitter_card.ex
+++ b/lib/pleroma/web/metadata/twitter_card.ex
@@ -1,4 +1,9 @@
defmodule Pleroma.Web.Metadata.Providers.TwitterCard do
+ alias Pleroma.Web.Metadata.Providers.Provider
+
+ @behaviour Provider
+
+ @impl Provider
def build_tags(%{activity: activity}) do
if Enum.any?(activity.data["object"]["tag"], fn tag -> tag == "nsfw" end) or
activity.data["object"]["attachment"] == [] do
@@ -20,6 +25,7 @@ defmodule Pleroma.Web.Metadata.Providers.TwitterCard do
end
end
+ @impl Provider
def build_tags(_) do
[{:meta, [property: "twitter:card", content: "summary"], []}]
end