diff options
Diffstat (limited to 'crash/client.js')
-rw-r--r-- | crash/client.js | 280 |
1 files changed, 140 insertions, 140 deletions
diff --git a/crash/client.js b/crash/client.js index 95cc342..2323d18 100644 --- a/crash/client.js +++ b/crash/client.js @@ -1,140 +1,140 @@ -taglines = [ - "Who set us up the engine?", - "Everything's going as planned. No, really, that was supposed to happen.", - "Uh... Did I do that? (oops)", - "Oops.", - "Why did you do that?", - "I feel sad now :(", - "My bad.", - "I'm sorry, Dave. I'm afraid I can't do that.", - "I let you down. Sorry :(", - "On the bright side, I bought you a teddy bear!", - "Oh - I know what I did wrong!", - "Hey, that tickles! Hehehe!", - "I blame Microsoft.", - "Don't be sad. I'll do better next time, pinky swear!", - "Don't be sad, have a hug! <3", - "I just don't know what went wrong :(", - "Shall we play a game?", - "Quite honestly, I wouldn't worry myself about that.", - "Sorry :(", - "Surprise! Haha. Well, this is awkward.", - "Would you like a cupcake?", - "Hi. I'm Kartik, and I'm a crashaholic.", - "Ooh. Shiny.", - "This doesn't make any sense!", - "Why is it breaking :(", - "Don't do that.", - "Ouch. That hurt :(", - "You're mean.", - "But it works on my machine.", - "Welp, I guess it's broken now.", - "¯\\_(ツ)_/¯", - "*boop*" -] - -if (native) { - function crash(error) { - id = new Date().toISOString().replaceAll(":", "-"); - - try { - global.pkg = require('./package.json'); - } catch (e) { - console.warn(e); - global.pkg = require('../package.json'); - - } - - try { - pubver = require('../package.json').version; - } catch (e) { - pubver = require('./package.json').version; - } - pvpart = pubver.split("."); - if (pvpart.length === 3) { - intver = pvpart[0] + "." + pvpart[1]; - } else { - intver = "unknown"; - } - - if (require('@electron/remote').getCurrentWindow().mods.length > 0) { - release = "mods+" + require('@electron/remote').getCurrentWindow().mods.length; - } else { - release = "official"; - } - - report = "---- Kartik Crash Report ----\n"; - report += "// " + taglines[Math.floor(Math.random() * taglines.length)] + "\n\n" - - report += "Time: " + new Date().toUTCString() + "\n\n"; - error.stack.split("\n").forEach((line) => { - report += line + "\n"; - }) - - report += "\n\n\nA detailed walkthrough of the error, its code path and all known details is as follows:\n" + - "---------------------------------------------------------------------------------------\n\n"; - - report += "-- Head --\nThread: Renderer #" + process.pid + "\n\n" - - report += "-- Initialization --\nDetails: " + require('@electron/remote').getCurrentWindow().cmdlineargs.join(" ") + "\n\n" - - report += "-- System Details --\nDetails: \n"; - - report += " Kartik Version: " + pkg.version + "\n"; - try { - channel = require('../package.json').channel; - } catch (e) { - channel = require('./package.json').channel; - } - report += " Kartik Version ID: " + intver + "/" + channel + "+" + release + "\n"; - report += " Kartik Version SKU: " + pkg.serial + "\n"; - report += " Operating System: " + require('os').type() + " (" + require('os').arch() + ") version " + require('os').release() + "\n"; - report += " Electron Version: " + process.versions.electron + "\n"; - report += " Electron VM Version: " + process.versions.v8 + "\n"; - report += " Node Version: " + process.versions.node + "\n"; - report += " Memory: " + process.memoryUsage().heapUsed + " bytes (" + Math.round(process.memoryUsage().heapUsed / 1000000) + " MB) / " + process.memoryUsage().heapTotal + " bytes (" + Math.round(process.memoryUsage().heapTotal / 1000000) + " MB) up to " + process.memoryUsage().rss + " bytes (" + Math.round(process.memoryUsage().rss / 1000000) + " MB)\n"; - report += " CPUs: " + require('os').cpus().length + "\n"; - if (require('@electron/remote').getCurrentWindow().mods.length > 0) { - report += " KMP Mods:\n"; - for (mod of require('@electron/remote').getCurrentWindow().mods) { - report += " " + mod + "\n"; - } - } - report += " Is Modded: "; - if (require('@electron/remote').getCurrentWindow().mods.length > 0) { - report += "Definitely; Client brand changed to 'kmp-client'" - } else if (require('@electron/remote').getCurrentWindow().invalidfiles.length > 0) { - if (require('@electron/remote').getCurrentWindow().invalidfiles.length > 1) { - report += "Very likely; " + require('@electron/remote').getCurrentWindow().invalidfiles.length + " signatures invalidated"; - } else { - report += "Very likely; " + require('@electron/remote').getCurrentWindow().invalidfiles.length + " signature invalidated"; - } - } else { - report += "Probably not. All signatures remains and client brand is untouched."; - } - report += "\n"; - report += " CPU: " + require('os').cpus().length + "x " + require('os').cpus()[0].model.trim() + "\n"; - - require('fs').copyFileSync(homedir + "/.kartik/current.kfn", homedir + "/.kartik/crashed.kfn"); - require('fs').writeFileSync(require('os').userInfo().homedir + "/.kartik/crashes/" + id + ".txt", report); - require('@electron/remote').getCurrentWindow().webContents.send("crashreport", report); - } - - window.onerror = (_a, _b, _c, _d, error) => { - if (typeof error != "undefined") { - crash(error); - } else { - error("CrashManager", "An exception was thrown without details about it"); - crash(new Error("Unknown error")); - } - } - - process.on('uncaughtException', (error) => { - if (typeof error != "undefined") { - crash(error); - } else { - error("CrashManager", "An exception was thrown without details about it"); - crash(new Error("Unknown error")); - } - }) -} +taglines = [
+ "Who set us up the engine?",
+ "Everything's going as planned. No, really, that was supposed to happen.",
+ "Uh... Did I do that? (oops)",
+ "Oops.",
+ "Why did you do that?",
+ "I feel sad now :(",
+ "My bad.",
+ "I'm sorry, Dave. I'm afraid I can't do that.",
+ "I let you down. Sorry :(",
+ "On the bright side, I bought you a teddy bear!",
+ "Oh - I know what I did wrong!",
+ "Hey, that tickles! Hehehe!",
+ "I blame Microsoft.",
+ "Don't be sad. I'll do better next time, pinky swear!",
+ "Don't be sad, have a hug! <3",
+ "I just don't know what went wrong :(",
+ "Shall we play a game?",
+ "Quite honestly, I wouldn't worry myself about that.",
+ "Sorry :(",
+ "Surprise! Haha. Well, this is awkward.",
+ "Would you like a cupcake?",
+ "Hi. I'm Kartik, and I'm a crashaholic.",
+ "Ooh. Shiny.",
+ "This doesn't make any sense!",
+ "Why is it breaking :(",
+ "Don't do that.",
+ "Ouch. That hurt :(",
+ "You're mean.",
+ "But it works on my machine.",
+ "Welp, I guess it's broken now.",
+ "¯\\_(ツ)_/¯",
+ "*boop*"
+]
+
+if (native) {
+ function crash(error) {
+ id = new Date().toISOString().replaceAll(":", "-");
+
+ try {
+ global.pkg = require('./package.json');
+ } catch (e) {
+ console.warn(e);
+ global.pkg = require('../package.json');
+
+ }
+
+ try {
+ pubver = require('../package.json').version;
+ } catch (e) {
+ pubver = require('./package.json').version;
+ }
+ pvpart = pubver.split(".");
+ if (pvpart.length === 3) {
+ intver = pvpart[0] + "." + pvpart[1];
+ } else {
+ intver = "unknown";
+ }
+
+ if (require('@electron/remote').getCurrentWindow().mods.length > 0) {
+ release = "mods+" + require('@electron/remote').getCurrentWindow().mods.length;
+ } else {
+ release = "official";
+ }
+
+ report = "---- Kartik Crash Report ----\n";
+ report += "// " + taglines[Math.floor(Math.random() * taglines.length)] + "\n\n"
+
+ report += "Time: " + new Date().toUTCString() + "\n\n";
+ error.stack.split("\n").forEach((line) => {
+ report += line + "\n";
+ })
+
+ report += "\n\n\nA detailed walkthrough of the error, its code path and all known details is as follows:\n" +
+ "---------------------------------------------------------------------------------------\n\n";
+
+ report += "-- Head --\nThread: Renderer #" + process.pid + "\n\n"
+
+ report += "-- Initialization --\nDetails: " + require('@electron/remote').getCurrentWindow().cmdlineargs.join(" ") + "\n\n"
+
+ report += "-- System Details --\nDetails: \n";
+
+ report += " Kartik Version: " + pkg.version + "\n";
+ try {
+ channel = require('../package.json').channel;
+ } catch (e) {
+ channel = require('./package.json').channel;
+ }
+ report += " Kartik Version ID: " + intver + "/" + channel + "+" + release + "\n";
+ report += " Kartik Version SKU: " + pkg.serial + "\n";
+ report += " Operating System: " + require('os').type() + " (" + require('os').arch() + ") version " + require('os').release() + "\n";
+ report += " Electron Version: " + process.versions.electron + "\n";
+ report += " Electron VM Version: " + process.versions.v8 + "\n";
+ report += " Node Version: " + process.versions.node + "\n";
+ report += " Memory: " + process.memoryUsage().heapUsed + " bytes (" + Math.round(process.memoryUsage().heapUsed / 1000000) + " MB) / " + process.memoryUsage().heapTotal + " bytes (" + Math.round(process.memoryUsage().heapTotal / 1000000) + " MB) up to " + process.memoryUsage().rss + " bytes (" + Math.round(process.memoryUsage().rss / 1000000) + " MB)\n";
+ report += " CPUs: " + require('os').cpus().length + "\n";
+ if (require('@electron/remote').getCurrentWindow().mods.length > 0) {
+ report += " KMP Mods:\n";
+ for (mod of require('@electron/remote').getCurrentWindow().mods) {
+ report += " " + mod + "\n";
+ }
+ }
+ report += " Is Modded: ";
+ if (require('@electron/remote').getCurrentWindow().mods.length > 0) {
+ report += "Definitely; Client brand changed to 'kmp-client'"
+ } else if (require('@electron/remote').getCurrentWindow().invalidfiles.length > 0) {
+ if (require('@electron/remote').getCurrentWindow().invalidfiles.length > 1) {
+ report += "Very likely; " + require('@electron/remote').getCurrentWindow().invalidfiles.length + " signatures invalidated";
+ } else {
+ report += "Very likely; " + require('@electron/remote').getCurrentWindow().invalidfiles.length + " signature invalidated";
+ }
+ } else {
+ report += "Probably not. All signatures remains and client brand is untouched.";
+ }
+ report += "\n";
+ report += " CPU: " + require('os').cpus().length + "x " + require('os').cpus()[0].model.trim() + "\n";
+
+ require('fs').copyFileSync(homedir + "/.kartik/current.kfn", homedir + "/.kartik/crashed.kfn");
+ require('fs').writeFileSync(require('os').userInfo().homedir + "/.kartik/crashes/" + id + ".txt", report);
+ require('@electron/remote').getCurrentWindow().webContents.send("crashreport", report);
+ }
+
+ window.onerror = (_a, _b, _c, _d, error) => {
+ if (typeof error != "undefined") {
+ crash(error);
+ } else {
+ error("CrashManager", "An exception was thrown without details about it");
+ crash(new Error("Unknown error"));
+ }
+ }
+
+ process.on('uncaughtException', (error) => {
+ if (typeof error != "undefined") {
+ crash(error);
+ } else {
+ error("CrashManager", "An exception was thrown without details about it");
+ crash(new Error("Unknown error"));
+ }
+ })
+}
|