diff --git a/usr/lib/webapp-manager/common.py b/usr/lib/webapp-manager/common.py index e9ec1aa..256487e 100644 --- a/usr/lib/webapp-manager/common.py +++ b/usr/lib/webapp-manager/common.py @@ -485,14 +485,14 @@ def download_image(root_url: str, link: str) -> Optional[PIL.Image.Image]: print(link) return None -def _find_link_favicon(soup, iconformat): +def _find_link_favicon(soup, iconformat, url): items = soup.find_all("link", {"rel": iconformat}) for item in items: link = item.get("href") if link: yield link -def _find_meta_content(soup, iconformat): +def _find_meta_content(soup, iconformat, url): item = soup.find("meta", {"name": iconformat}) if not item: return @@ -500,22 +500,30 @@ def _find_meta_content(soup, iconformat): if link: yield link -def _find_property(soup, iconformat): +def _find_property(soup, iconformat, url): items = soup.find_all("meta", {"property": iconformat}) for item in items: link = item.get("content") if link: yield link -def _find_url(_soup, iconformat): +def _find_url(_soup, iconformat, url): yield iconformat +def _find_google_api_favicon(_soup, iconformat, url): + url = urllib.parse.quote(url, safe='') + #response = requests.get("https://www.google.com/s2/favicons?sz=32&domain=%s" % url, timeout=3) + #link = response.url + link = "https://www.google.com/s2/favicons?sz=32&domain=%s" % url + yield link + def download_favicon(url): images = [] url = normalize_url(url) (scheme, netloc, path, _, _, _) = urllib.parse.urlparse(url) root_url = "%s://%s" % (scheme, netloc) + api_url = "%s%s" % (netloc, path) # Check HTML and /favicon.ico try: @@ -534,11 +542,12 @@ def download_favicon(url): ("msapplication-square70x70logo", _find_meta_content), ("og:image", _find_property), ("favicon.ico", _find_url), + ("google-api", _find_google_api_favicon), ] # icons defined in the HTML for (iconformat, getter) in iconformats: - for link in getter(soup, iconformat): + for link in getter(soup, iconformat, api_url): image = download_image(root_url, link) if image is not None: t = tempfile.NamedTemporaryFile(suffix=".png", delete=False)