mirror of
https://github.com/aliasvault/aliasvault.git
synced 2026-05-15 10:55:31 -04:00
Add retry to faviconextractor to bypass certain cookiewalls (#745)
This commit is contained in:
committed by
Leendert de Borst
parent
915e12d541
commit
80cd371ee3
@@ -40,14 +40,14 @@ public static class FaviconExtractor
|
||||
|
||||
using HttpClient client = CreateHttpClient();
|
||||
|
||||
HttpResponseMessage response = await client.GetAsync(uri);
|
||||
if (!response.IsSuccessStatusCode)
|
||||
// First attempt
|
||||
var result = await TryGetFaviconAsync(client, uri);
|
||||
if (result != null)
|
||||
{
|
||||
return null;
|
||||
return result;
|
||||
}
|
||||
|
||||
var faviconNodes = await GetFaviconNodesFromHtml(response, uri);
|
||||
return await TryExtractFaviconFromNodes(faviconNodes, client, uri);
|
||||
return await TryGetFaviconAsync(client, uri);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -127,6 +127,18 @@ public static class FaviconExtractor
|
||||
];
|
||||
}
|
||||
|
||||
private static async Task<byte[]?> TryGetFaviconAsync(HttpClient client, Uri uri)
|
||||
{
|
||||
HttpResponseMessage response = await client.GetAsync(uri);
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var faviconNodes = await GetFaviconNodesFromHtml(response, uri);
|
||||
return await TryExtractFaviconFromNodes(faviconNodes, client, uri);
|
||||
}
|
||||
|
||||
private static async Task<byte[]?> TryExtractFaviconFromNodes(HtmlNodeCollection[] faviconNodes, HttpClient client, Uri baseUri)
|
||||
{
|
||||
foreach (var nodeCollection in faviconNodes)
|
||||
|
||||
Reference in New Issue
Block a user