FindSiteIcon (FindSiteIcon v1.0.0)

Copy Markdown View Source

Finds the large square icon for a site given its URL.

Summary

Functions

Finds the large square icon for a site given its URL.

Types

find_icon_option()

@type find_icon_option() ::
  {:default_icon_url, binary()}
  | {:html, binary()}
  | {:http_options, keyword()}
  | {:max_concurrency, pos_integer()}
  | {:max_icons, pos_integer()}
  | {:timeout, timeout()}

Functions

find_icon(url, opts \\ [])

@spec find_icon(binary(), [find_icon_option()]) ::
  {:error, binary()} | {:ok, binary()}

Finds the large square icon for a site given its URL.

Can be provided with additional options in the second argument:

  • :html -> can pass an already fetched html. Will look for icon link tags within the provided html if present.
  • :default_icon_url -> is used if no icon_url could be fetched.
  • :timeout -> caps the whole icon lookup and applies the same timeout to HTTP requests.
  • :http_options -> passes Req options to the internal HTTP client.
  • :max_concurrency -> limits concurrent icon probes. Defaults to 8.
  • :max_icons -> limits how many candidate icon URLs will be probed. Defaults to 20.

Examples

iex> FindSiteIcon.find_icon("https://nytimes.com")
{:ok, "https://nytimes.com/vi-assets/static-assets/ios-ipad-144x144-28865b72953380a40aa43318108876cb.png"}