Commit 0964c207 authored by kaniini's avatar kaniini
Browse files

rich media: use cachex to avoid flooding remote servers

parent 4258dd86
Pipeline #6006 failed with stages
in 3 minutes and 15 seconds
......@@ -63,6 +63,17 @@ def start(_type, _args) do
],
id: :cachex_object
),
worker(
Cachex,
[
:rich_media_cache,
[
default_ttl: :timer.minutes(120),
limit: 5000
]
],
id: :cachex_rich_media
),
worker(
Cachex,
[
......
......@@ -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
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment