From 198ca0345b307ab9ab05671130054ec930dd9c60 Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Sat, 18 Jul 2020 22:13:51 -0400 Subject: [PATCH] Don't fetch favicon for Gemini protocol feeds --- lib/frenzy/task/fetch_favicon.ex | 33 +++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/lib/frenzy/task/fetch_favicon.ex b/lib/frenzy/task/fetch_favicon.ex index 4ed2ad4..5c2b46c 100644 --- a/lib/frenzy/task/fetch_favicon.ex +++ b/lib/frenzy/task/fetch_favicon.ex @@ -13,28 +13,31 @@ defmodule Frenzy.Task.FetchFavicon do site_url = case feed.site_url do url when is_binary(url) -> - url + URI.parse(url) _ -> - %URI{URI.parse(feed.feed_url) | path: nil, query: nil, fragment: nil} |> URI.to_string() + %URI{URI.parse(feed.feed_url) | path: nil, query: nil, fragment: nil} end - Logger.debug("Fetching favicon for #{site_url}") + if site_url.scheme in ["http", "https"] do + Logger.debug("Fetching favicon for #{site_url}") - favicon_url = fetch_favicon_url_from_webpage(site_url) || URI.merge(site_url, "/favicon.ico") + favicon_url = + fetch_favicon_url_from_webpage(site_url) || URI.merge(site_url, "/favicon.ico") - with %Feed{favicon_url: old_url} when old_url != favicon_url <- feed, - {:ok, favicon_data} <- fetch_favicon_data(favicon_url) do - changeset = - Feed.changeset(feed, %{ - favicon: favicon_data, - favicon_url: to_string(favicon_url) - }) + with %Feed{favicon_url: old_url} when old_url != favicon_url <- feed, + {:ok, favicon_data} <- fetch_favicon_data(favicon_url) do + changeset = + Feed.changeset(feed, %{ + favicon: favicon_data, + favicon_url: to_string(favicon_url) + }) - {:ok, _feed} = Repo.update(changeset) - else - _ -> - :ok + {:ok, _feed} = Repo.update(changeset) + else + _ -> + :ok + end end end