Merge branch 'enable-ogp-by-default' into 'develop'
authorHaelwenn <contact+git.pleroma.social@hacktivis.me>
Tue, 9 Jul 2019 16:07:20 +0000 (16:07 +0000)
committerHaelwenn <contact+git.pleroma.social@hacktivis.me>
Tue, 9 Jul 2019 16:07:20 +0000 (16:07 +0000)
Do not crash if metadata fails to render and enable OGP and TwitterCard by default

Closes #1034

See merge request pleroma/pleroma!1388

CHANGELOG.md
config/config.exs
lib/pleroma/web/metadata/opengraph.ex
lib/pleroma/web/metadata/twitter_card.ex
lib/pleroma/web/router.ex

index 63ab1a6e39ee090706db4a76b9ec3e4716208e64..9c4a57bb3d8ee43ee5085f593fcfa0ed2e392ac9 100644 (file)
@@ -13,10 +13,12 @@ Configuration: `federation_incoming_replies_max_depth` option
 
 ### Fixed
 - Not being able to pin unlisted posts
+- Metadata rendering errors resulting in the entire page being inaccessible
 - Mastodon API: Handling of search timeouts (`/api/v1/search` and `/api/v2/search`)
 - Mastodon API: Embedded relationships not being properly rendered in the Account entity of Status entity
 
 ### Changed
+- Configuration: OpenGraph and TwitterCard providers enabled by default
 - Configuration: Filter.AnonymizeFilename added ability to retain file extension with custom text
 
 ### Changed
index 65f239e318e4033afaf0673869eef3f6084da6c8..675fbb5515996acf356845cda3264805581f6fcd 100644 (file)
@@ -359,7 +359,11 @@ config :pleroma, :gopher,
   port: 9999
 
 config :pleroma, Pleroma.Web.Metadata,
-  providers: [Pleroma.Web.Metadata.Providers.RelMe],
+  providers: [
+    Pleroma.Web.Metadata.Providers.OpenGraph,
+    Pleroma.Web.Metadata.Providers.TwitterCard,
+    Pleroma.Web.Metadata.Providers.RelMe
+  ],
   unfurl_nsfw: false
 
 config :pleroma, :suggestions,
index 357b80a2d50e7959bd8d5b8dfe36d2468f25def9..4033ec38ff17d2592777565c47c8dc9c62686cb8 100644 (file)
@@ -121,4 +121,6 @@ defmodule Pleroma.Web.Metadata.Providers.OpenGraph do
       acc ++ rendered_tags
     end)
   end
+
+  defp build_attachments(_), do: []
 end
index 040b872e7034d840705ffb324628d223a9f197b3..8dd01e0d5f33ff55391dc4cd77ac1c52ff2b157e 100644 (file)
@@ -117,6 +117,8 @@ defmodule Pleroma.Web.Metadata.Providers.TwitterCard do
     end)
   end
 
+  defp build_attachments(_id, _object), do: []
+
   defp player_url(id) do
     Pleroma.Web.Router.Helpers.o_status_url(Pleroma.Web.Endpoint, :notice_player, id)
   end
index 055289dc56bfbfb31d336f9096fb7c06877d72b8..ff9ed1640c069b9a032560be9124e5a291eac439 100644 (file)
@@ -724,6 +724,7 @@ end
 
 defmodule Fallback.RedirectController do
   use Pleroma.Web, :controller
+  require Logger
   alias Pleroma.User
   alias Pleroma.Web.Metadata
 
@@ -750,7 +751,20 @@ defmodule Fallback.RedirectController do
 
   def redirector_with_meta(conn, params) do
     {:ok, index_content} = File.read(index_file_path())
-    tags = Metadata.build_tags(params)
+
+    tags =
+      try do
+        Metadata.build_tags(params)
+      rescue
+        e ->
+          Logger.error(
+            "Metadata rendering for #{conn.request_path} failed.\n" <>
+              Exception.format(:error, e, __STACKTRACE__)
+          )
+
+          ""
+      end
+
     response = String.replace(index_content, "<!--server-generated-meta-->", tags)
 
     conn