1
0
Fork 1
mirror of https://github.com/Vendicated/Vencord.git synced 2025-01-25 00:36:23 +00:00

ConsoleJanitor: Ignore all loggers with whitelist (#2896)

This commit is contained in:
sadan4 2024-09-22 03:24:12 -04:00 committed by GitHub
parent eaf62d8c1c
commit a9db3e477d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -22,10 +22,12 @@ const NoopLogger = {
fileOnly: Noop fileOnly: Noop
}; };
const logAllow = new Set();
const settings = definePluginSettings({ const settings = definePluginSettings({
disableNoisyLoggers: { disableLoggers: {
type: OptionType.BOOLEAN, type: OptionType.BOOLEAN,
description: "Disable noisy loggers like the MessageActionCreators", description: "Disables Discords loggers",
default: false, default: false,
restartNeeded: true restartNeeded: true
}, },
@ -34,16 +36,33 @@ const settings = definePluginSettings({
description: "Disable the Spotify logger, which leaks account information and access token", description: "Disable the Spotify logger, which leaks account information and access token",
default: true, default: true,
restartNeeded: true restartNeeded: true
},
whitelistedLoggers: {
type: OptionType.STRING,
description: "Semi colon separated list of loggers to allow even if others are hidden",
default: "GatewaySocket; Routing/Utils",
onChange(newVal: string) {
logAllow.clear();
newVal.split(";").map(x => x.trim()).forEach(logAllow.add.bind(logAllow));
}
} }
}); });
export default definePlugin({ export default definePlugin({
name: "ConsoleJanitor", name: "ConsoleJanitor",
description: "Disables annoying console messages/errors", description: "Disables annoying console messages/errors",
authors: [Devs.Nuckyz], authors: [Devs.Nuckyz, Devs.sadan],
settings, settings,
start() {
logAllow.clear();
this.settings.store.whitelistedLoggers?.split(";").map(x => x.trim()).forEach(logAllow.add.bind(logAllow));
},
NoopLogger: () => NoopLogger, NoopLogger: () => NoopLogger,
shouldLog(logger: string) {
return logAllow.has(logger);
},
patches: [ patches: [
{ {
@ -103,34 +122,13 @@ export default definePlugin({
replace: "" replace: ""
} }
}, },
...[ // Patches discords generic logger function
'("MessageActionCreators")', '("ChannelMessages")',
'("Routing/Utils")', '("RTCControlSocket")',
'("ConnectionEventFramerateReducer")', '("RTCLatencyTestManager")',
'("OverlayBridgeStore")', '("RPCServer:WSS")', '("RPCServer:IPC")'
].map(logger => ({
find: logger,
predicate: () => settings.store.disableNoisyLoggers,
all: true,
replacement: {
match: new RegExp(String.raw`new \i\.\i${logger.replace(/([()])/g, "\\$1")}`),
replace: `$self.NoopLogger${logger}`
}
})),
{ {
find: '"Experimental codecs: "', find: "Σ:",
predicate: () => settings.store.disableNoisyLoggers, predicate: () => settings.store.disableLoggers,
replacement: { replacement: {
match: /new \i\.\i\("Connection\("\.concat\(\i,"\)"\)\)/, match: /(?<=&&)(?=console)/,
replace: "$self.NoopLogger()" replace: "$self.shouldLog(arguments[0])&&"
}
},
{
find: '"_handleLocalVideoDisabled: ',
predicate: () => settings.store.disableNoisyLoggers,
replacement: {
match: /new \i\.\i\("RTCConnection\("\.concat.+?\)\)(?=,)/,
replace: "$self.NoopLogger()"
} }
}, },
{ {
@ -141,5 +139,5 @@ export default definePlugin({
replace: "$self.NoopLogger()" replace: "$self.NoopLogger()"
} }
} }
] ],
}); });