More cleanup

pull/1145/head
Tyrrrz 1 year ago
parent fb6cde38b6
commit 033d83bc4f

@ -102,27 +102,25 @@ internal partial class ExportAssetDownloader
internal partial class ExportAssetDownloader internal partial class ExportAssetDownloader
{ {
// Remove signature parameters from Discord CDN URLs to normalize them private static string GetUrlHash(string url)
private static string StripUrlSignatureParameters(string url)
{ {
var uri = new Uri(url); // Remove signature parameters from Discord CDN URLs to normalize them
if (!string.Equals(uri.Host, "cdn.discordapp.com", StringComparison.OrdinalIgnoreCase)) static string NormalizeUrl(string url)
return url; {
var uri = new Uri(url);
var query = HttpUtility.ParseQueryString(uri.Query); if (!string.Equals(uri.Host, "cdn.discordapp.com", StringComparison.OrdinalIgnoreCase))
query.Remove("ex"); return url;
query.Remove("is");
query.Remove("hm");
return uri.GetLeftPart(UriPartial.Path) + query; var query = HttpUtility.ParseQueryString(uri.Query);
} query.Remove("ex");
query.Remove("is");
query.Remove("hm");
private static string GetUrlHash(string url) return uri.GetLeftPart(UriPartial.Path) + query;
{ }
var normalizedUrl = StripUrlSignatureParameters(url);
return SHA256 return SHA256
.HashData(Encoding.UTF8.GetBytes(normalizedUrl)) .HashData(Encoding.UTF8.GetBytes(NormalizeUrl(url)))
.ToHex() .ToHex()
// 5 chars ought to be enough for anybody // 5 chars ought to be enough for anybody
.Truncate(5); .Truncate(5);

Loading…
Cancel
Save