aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/rich_media/parser.ex
diff options
context:
space:
mode:
authorWilliam Pitcock <nenolod@dereferenced.org>2019-01-04 23:23:47 +0000
committerWilliam Pitcock <nenolod@dereferenced.org>2019-01-04 23:32:01 +0000
commit0964c207eb184696355a2d8efd9d671dcc23ce66 (patch)
tree1d34af5bf07e0761eca2e428766763f1a34f3d2e /lib/pleroma/web/rich_media/parser.ex
parent4258dd8633407587ca1f3dfe275afa6a91be9197 (diff)
downloadpleroma-0964c207eb184696355a2d8efd9d671dcc23ce66.tar.gz
rich media: use cachex to avoid flooding remote servers
Diffstat (limited to 'lib/pleroma/web/rich_media/parser.ex')
-rw-r--r--lib/pleroma/web/rich_media/parser.ex8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/pleroma/web/rich_media/parser.ex b/lib/pleroma/web/rich_media/parser.ex
index 477a38196..b88ed5371 100644
--- a/lib/pleroma/web/rich_media/parser.ex
+++ b/lib/pleroma/web/rich_media/parser.ex
@@ -2,9 +2,13 @@ defmodule Pleroma.Web.RichMedia.Parser do
@parsers [Pleroma.Web.RichMedia.Parsers.OGP]
def parse(url) do
- {:ok, %Tesla.Env{body: html}} = Pleroma.HTTP.get(url)
+ Cachex.fetch!(:rich_media_cache, url, fn _ ->
+ {:ok, %Tesla.Env{body: html}} = Pleroma.HTTP.get(url)
- html |> maybe_parse() |> get_parsed_data()
+ result = html |> maybe_parse() |> get_parsed_data()
+
+ {:commit, result}
+ end)
end
defp maybe_parse(html) do