|
|
@@ -1,14 +1,17 @@ |
|
|
|
defmodule Pleroma.Web.RichMedia.Parser do |
|
|
|
@parsers [Pleroma.Web.RichMedia.Parsers.OGP] |
|
|
|
|
|
|
|
def parse(url) do |
|
|
|
Cachex.fetch!(:rich_media_cache, url, fn _ -> |
|
|
|
{:ok, %Tesla.Env{body: html}} = Pleroma.HTTP.get(url) |
|
|
|
if Mix.env() == :test do |
|
|
|
def parse(url), do: parse_url(url) |
|
|
|
else |
|
|
|
def parse(url), |
|
|
|
do: {:commit, Cachex.fetch!(:rich_media_cache, url, fn _ -> parse_url(url) end)} |
|
|
|
end |
|
|
|
|
|
|
|
result = html |> maybe_parse() |> get_parsed_data() |
|
|
|
defp parse_url(url) do |
|
|
|
{:ok, %Tesla.Env{body: html}} = Pleroma.HTTP.get(url) |
|
|
|
|
|
|
|
{:commit, result} |
|
|
|
end) |
|
|
|
html |> maybe_parse() |> get_parsed_data() |
|
|
|
end |
|
|
|
|
|
|
|
defp maybe_parse(html) do |
|
|
|