blob: b741f56c9289d604bf3f090ef582c8adc44be5b6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
using System.Text;
using System.Text.RegularExpressions;
namespace ReferenceClientProxyImplementation.Patches.Implementations.JSPatches;
public partial class IsStaffPatch : IPatch {
public int GetOrder() => 2;
public string GetName() => "Patch isStaff/isStaffPersonal in JS";
public bool Applies(string relativeName, byte[] content) => relativeName.EndsWith(".js");
public async Task<byte[]> Execute(string relativePath, byte[] content) {
var stringContent = Encoding.UTF8.GetString(content);
stringContent = IsNullableStaffRegex().Replace(
stringContent,
m => $"{m.Groups[1].Value}!!{m.Groups[2].Value}"
);
stringContent = IsStaffRegex().Replace(
stringContent,
m => $"{m.Groups[1].Value}true"
);
return Encoding.UTF8.GetBytes(stringContent);
}
[GeneratedRegex(@"(\W)(\w|this|\w\.user)\.isStaff(Personal)?\(\)", RegexOptions.Compiled)]
private static partial Regex IsStaffRegex();
[GeneratedRegex(@"(\W)(\w|this|\w\.user)\?\.isStaff(Personal)?\(\)", RegexOptions.Compiled)]
private static partial Regex IsNullableStaffRegex();
}
|