summary refs log tree commit diff
path: root/ReferenceClientProxyImplementation/Patches/Implementations/JSPatches/DisableSentryPatch.cs
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2026-05-02 13:28:26 +0200
committerRory& <root@rory.gay>2026-05-02 13:28:26 +0200
commit4540b4e4d897d60e6cbdecf4ce712ebb72090ae2 (patch)
tree978a27a746ea35ecbdf7e86e5c43ada374acba6c /ReferenceClientProxyImplementation/Patches/Implementations/JSPatches/DisableSentryPatch.cs
parentInitial commit (diff)
downloadReferenceClientProxyImplementation-4540b4e4d897d60e6cbdecf4ce712ebb72090ae2.tar.xz
Update various patches HEAD master
Diffstat (limited to 'ReferenceClientProxyImplementation/Patches/Implementations/JSPatches/DisableSentryPatch.cs')
-rw-r--r--ReferenceClientProxyImplementation/Patches/Implementations/JSPatches/DisableSentryPatch.cs31
1 files changed, 31 insertions, 0 deletions
diff --git a/ReferenceClientProxyImplementation/Patches/Implementations/JSPatches/DisableSentryPatch.cs b/ReferenceClientProxyImplementation/Patches/Implementations/JSPatches/DisableSentryPatch.cs
new file mode 100644

index 0000000..7424a32 --- /dev/null +++ b/ReferenceClientProxyImplementation/Patches/Implementations/JSPatches/DisableSentryPatch.cs
@@ -0,0 +1,31 @@ +using System.Text; +using System.Text.RegularExpressions; + +namespace ReferenceClientProxyImplementation.Patches.Implementations.JSPatches; + +public partial class DisableSentryPatch : IPatch { + public int GetOrder() => 0; + + public string GetName() => "JS: Disable sentry"; + public bool Applies(string relativeName, byte[] content) => relativeName.StartsWith("assets/sentry.") && relativeName.EndsWith(".js"); + + public async Task<byte[]> Execute(string _, byte[] content) { + var stringContent = Encoding.UTF8.GetString(content); + + stringContent = SentryInitRegex().Replace(stringContent, "window.DiscordSentry = undefined;"); + stringContent = SentryConsoleHookRegex().Replace( + stringContent, + m => m.Value.Replace(" &&", " && false &&") + ); + + return Encoding.UTF8.GetBytes(stringContent); + } + + [GeneratedRegex(@"window\.DiscordSentry =", RegexOptions.Compiled)] + private static partial Regex SentryInitRegex(); + + // hopefully specific enough? + [GeneratedRegex(@"function ([a-zA-Z0-9]+)\(\) {\n\s+""console"" in ([a-zA-Z0-9]+) &&\n\s+([a-zA-Z0-9]+)\.forEach\(", RegexOptions.Compiled)] + private static partial Regex SentryConsoleHookRegex(); + +} \ No newline at end of file