Move mediaproxy URL rewriting to ProxyService
This shows full size avatars in API / cards. Also, rewrite URLs currently stored with media.discordapp.net "back" to cdn.discordapp.com before sending them to users.
This commit is contained in:
		@@ -101,7 +101,7 @@ namespace PluralKit.Core
 | 
			
		||||
                    Description = patch.Description.Value,
 | 
			
		||||
					Pronouns = patch.Pronouns.Value,
 | 
			
		||||
                    Color = patch.Color.Value,
 | 
			
		||||
                    AvatarUrl = patch.AvatarUrl.Value,
 | 
			
		||||
                    AvatarUrl = patch.AvatarUrl.Value?.TryGetCleanCdnUrl(),
 | 
			
		||||
                    KeepProxy = patch.KeepProxy.Value,
 | 
			
		||||
                    ProxyTags = patch.ProxyTags.Value,
 | 
			
		||||
                    Birthday = patch.Birthday.Value,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,5 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Text.RegularExpressions;
 | 
			
		||||
 | 
			
		||||
namespace PluralKit.Core
 | 
			
		||||
{
 | 
			
		||||
@@ -20,5 +21,12 @@ namespace PluralKit.Core
 | 
			
		||||
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // discord mediaproxy URLs used to be stored directly in the database, so now we cleanup image urls before using them outside of proxying
 | 
			
		||||
        private static readonly Regex MediaProxyUrl = new Regex(@"^https?://media.discordapp.net/attachments/(\d{17,19})/(\d{17,19})/([^/\\&\?]+)\.(png|jpg|jpeg|webp)(\?.*)?$");
 | 
			
		||||
        private static readonly string DiscordCdnReplacement = "https://cdn.discordapp.com/attachments/$1/$2/$3.$4";
 | 
			
		||||
        public static string TryGetCleanCdnUrl(this string url) =>
 | 
			
		||||
            MediaProxyUrl.Replace(url, DiscordCdnReplacement);
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user