Add api to log from SteamTweaks

pull/239/head
Peter Repukat 1 year ago
parent f2f2144017
commit 73226d3c62

@ -31,6 +31,49 @@ inline void addEndpoints()
res.set_content(util::steam::getSteamConfig().dump(4), "text/json");
},
"json"});
HttpServer::AddEndpoint({
"/log",
HttpServer::Method::POST,
[](const httplib::Request& req, httplib::Response& res) {
struct LogEntry {
std::string level;
std::string message;
};
auto entry = LogEntry{};
try {
const nlohmann::json postbody = nlohmann::json::parse(req.body);
entry.level = postbody.at("level");
entry.message = postbody.at("message");
}
catch (std::exception& e) {
res.status = 401;
res.set_content(nlohmann::json{
{"code", 401},
{"name", "Bad Request"},
{"message", e.what()},
}
.dump(),
"text/json");
}
if (entry.level == "info") {
spdlog::info("GlosSITweaks: {}", entry.message);
}
else if (entry.level == "warn") {
spdlog::warn("GlosSITweaks: {}", entry.message);
}
else if (entry.level == "error") {
spdlog::error("GlosSITweaks: {}", entry.message);
}
else if (entry.level == "debug") {
spdlog::debug("GlosSITweaks: {}", entry.message);
}
else {
spdlog::trace("GlosSITweaks: {}", entry.message);
}
},
});
};

@ -86,32 +86,32 @@ module.exports = {
}
],
'@typescript-eslint/no-use-before-define': ['error', { 'functions': false }],
"@typescript-eslint/naming-convention": [
"error",
{
"selector": "default",
"format": ["camelCase", "PascalCase"]
},
{
"selector": "variable",
"format": ["camelCase", "UPPER_CASE"]
},
{
"selector": "parameter",
"format": ["camelCase"],
"leadingUnderscore": "allow"
},
{
"selector": "memberLike",
"modifiers": ["private"],
"format": ["camelCase"],
"leadingUnderscore": "require"
},
{
"selector": "typeLike",
"format": ["PascalCase"]
}
],
// "@typescript-eslint/naming-convention": [
// "error",
// {
// "selector": "default",
// "format": ["camelCase", "PascalCase"]
// },
// {
// "selector": "variable",
// "format": ["camelCase", "UPPER_CASE"]
// },
// {
// "selector": "parameter",
// "format": ["camelCase"],
// "leadingUnderscore": "allow"
// },
// {
// "selector": "memberLike",
// "modifiers": ["private"],
// "format": ["camelCase"],
// "leadingUnderscore": "require"
// },
// {
// "selector": "typeLike",
// "format": ["PascalCase"]
// }
// ],
'no-console': 'off',
'no-return-await': 'error',
'arrow-body-style': 'error',

@ -1,7 +1,9 @@
export interface SteamClient {
Settings: {
SetInGameOverlayShowFPSCorner: (value: 0|1|2|3|4) => void;
SetInGameOverlayShowFPSContrast: (value: boolean) => void;
// Current stable (As time of commit); Beta does not have this anymore...
SetInGameOverlayShowFPSCorner?: (value: 0|1|2|3|4) => void;
SetInGameOverlayShowFPSContrast?: (value: boolean) => void;
// TODO: find a way to change setting on beta (and soon stable...)
};
UI: {
GetUiMode: () => Promise<SteamUiMode>;

@ -27,6 +27,39 @@ class SteamTargetApi {
}, 666);
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
public log(level: string, ...args: any[]) {
void fetch('http://localhost:8756/log', {
method: 'POST',
body: JSON.stringify({
level,
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
message: `${args}`
})
});
switch (level) {
case 'error':
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
console.error(...args);
break;
case 'warn':
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
console.warn(...args);
break;
case 'info':
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
console.info(...args);
break;
case 'debug':
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
console.debug(...args);
break;
default:
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
console.log(...args);
}
}
public async getGlosSIActive() {
return fetchWithTimeout('http://localhost:8756/running', { timeout: 500 })
.then(

@ -13,9 +13,9 @@ initTweak('MinimizeSteamGamepadUI', async () => {
return true;
}
if (!isGamepadUI && minimizeGPUI) {
console.warn('MinimizeSteamGamepadUI is enabled but Steam is not in GamepadUI mode');
GlosSIApi.SteamTarget.log('warn', 'MinimizeSteamGamepadUI is enabled but Steam is not in GamepadUI mode');
}
return false;
}).then((minimized: boolean) => {
console.log('MinimizeSteamGamepadUI installed; Minimized GamepadUI:', minimized);
}).catch((e) => console.error('MinimizeSteamGamepadUI failed to install', e));
GlosSIApi.SteamTarget.log('debug', 'MinimizeSteamGamepadUI installed; Minimized GamepadUI:', minimized);
}).catch((e) =>GlosSIApi.SteamTarget.log('error', 'MinimizeSteamGamepadUI failed to install', e));

@ -9,16 +9,25 @@ initTweak('HideFPSCounter', {
((await GlosSIApi.SteamTarget.getSteamSettings()).system as SteamConfig)
.InGameOverlayShowFPSCorner
) as 0 | 1 | 2 | 3 | 4;
SteamClient.Settings.SetInGameOverlayShowFPSCorner(0);
if (!SteamClient.Settings.SetInGameOverlayShowFPSCorner) {
GlosSIApi.SteamTarget.log('warn',
'HideFPSCounter: SteamClient.Settings.SetInGameOverlayShowFPSCorner is not available.'
+'Can\'t hide FPS Counter corner.'
);
}
SteamClient.Settings.SetInGameOverlayShowFPSCorner?.(0);
},
uninstall: () => {
console.log('uninstalling HideFPSCounter Tweak. Restoring FPS Counter corner: ', backup.originalFpsCorner);
SteamClient.Settings.SetInGameOverlayShowFPSCorner((backup.originalFpsCorner ?? 0) as 0 | 1 | 2 | 3 | 4);
if (!SteamClient.Settings.SetInGameOverlayShowFPSCorner) {
return;
}
GlosSIApi.SteamTarget.log('debug','uninstalling HideFPSCounter Tweak. Restoring FPS Counter corner: ', backup.originalFpsCorner);
SteamClient.Settings.SetInGameOverlayShowFPSCorner?.((backup.originalFpsCorner ?? 0) as 0 | 1 | 2 | 3 | 4);
setTimeout(() => {
// steam might not actually register the setting?! Try again like 10 seconds later... ¯\_(ツ)_/¯
SteamClient.Settings.SetInGameOverlayShowFPSCorner((backup.originalFpsCorner ?? 0) as 0 | 1 | 2 | 3 | 4);
SteamClient.Settings.SetInGameOverlayShowFPSCorner?.((backup.originalFpsCorner ?? 0) as 0 | 1 | 2 | 3 | 4);
}, 10 * 1000);
}
}).then(() => {
console.log('HideFPSCounter installed');
}).catch((e) => console.error('HideFPSCounter failed to install', e));
GlosSIApi.SteamTarget.log('debug', 'HideFPSCounter installed');
}).catch((e) => GlosSIApi.SteamTarget.log('error', 'HideFPSCounter failed to install', e));

@ -9,12 +9,21 @@ export const initTweak = <T>(name: string, tweakMain: (() => T)|{
if (typeof tweakMain === 'object') {
window.GlosSITweaks[name] = { install: tweakMain.install, uninstall: () => {
tweakMain.uninstall();
try {
tweakMain.uninstall();
} catch (e) {
GlosSIApi.SteamTarget.log('error', e);
}
delete window.GlosSITweaks[name];
} };
} else {
window.GlosSITweaks[name] = { install: tweakMain };
}
return window.GlosSITweaks[name].install() as T;
try {
return window.GlosSITweaks[name].install() as T;
} catch (e) {
GlosSIApi.SteamTarget.log('error', e);
throw e;
}
};

Loading…
Cancel
Save