philomena/lib/philomena_proxy/scrapers/raw.ex

37 lines
874 B
Elixir
Raw Normal View History

defmodule PhilomenaProxy.Scrapers.Raw do
@moduledoc false
alias PhilomenaProxy.Scrapers.Scraper
alias PhilomenaProxy.Scrapers
@behaviour Scraper
2019-11-28 18:12:10 +01:00
@mime_types ["image/gif", "image/jpeg", "image/png", "image/svg", "image/svg+xml", "video/webm"]
@spec can_handle?(URI.t(), String.t()) :: boolean()
2019-11-28 18:12:10 +01:00
def can_handle?(_uri, url) do
with {:ok, %{status: 200, headers: headers}} <- PhilomenaProxy.Http.head(url),
[type | _] <- headers["content-type"] do
String.downcase(type) in @mime_types
else
2019-11-28 18:12:10 +01:00
_ ->
false
end
end
@spec scrape(URI.t(), Scrapers.url()) :: Scrapers.scrape_result()
2019-11-28 18:12:10 +01:00
def scrape(_uri, url) do
%{
source_url: url,
author_name: "",
description: "",
2019-11-28 18:12:10 +01:00
images: [
%{
url: url,
camo_url: PhilomenaProxy.Camo.image_url(url)
2019-11-28 18:12:10 +01:00
}
]
}
end
2020-01-11 05:20:19 +01:00
end