diff options
Diffstat (limited to 'views/script/core_stats.js')
-rw-r--r-- | views/script/core_stats.js | 122 |
1 files changed, 50 insertions, 72 deletions
diff --git a/views/script/core_stats.js b/views/script/core_stats.js index a49851d..124f5fe 100644 --- a/views/script/core_stats.js +++ b/views/script/core_stats.js @@ -1,73 +1,51 @@ -const fs = require('fs'); -const homedir = require('@electron/remote').getCurrentWindow().homedir; -const defaultStats = { - times: { - single: 0, - local: 0, - online: 0 - }, - results: { - wins: 0, - loses: 0 - }, - ingame: { - walls: 0, - laps: 0, - turns: 0 - } -} - -if (!fs.existsSync(homedir + "/.kartik/stats.json")) { - fs.writeFileSync(homedir + "/.kartik/stats.json", JSON.stringify(defaultStats)); -} else { - try { - JSON.parse(fs.readFileSync(homedir + "/.kartik/stats.json").toString()); - } catch (e) { - fs.writeFileSync(homedir + "/.kartik/stats.json", JSON.stringify(defaultStats)); - } -} - -session = null; -timer = null; -current = null; - -webview.addEventListener('dom-ready', () => { - if (webview.getURL() !== current) { - if (session !== null) { - require('electron').ipcRenderer.send('addstats', { catalog: "times", key: session, add: Math.floor((new Date() - timer)/1000) }); - - session = null; - timer = null; - current = null; - } - } - - if (webview.getURL().endsWith("game.html")) { // Local - session = "local"; - timer = new Date(); - current = webview.getURL(); - } - if (webview.getURL().endsWith("game.html?sp")) { // Singleplayer - session = "single"; - timer = new Date(); - current = webview.getURL(); - } - if (webview.getURL().endsWith("game.html?online")) { // Online - session = "online"; - timer = new Date(); - current = webview.getURL(); - } -}) - -window.addEventListener("beforeunload", function(e){ - if (session !== null) { - require('electron').ipcRenderer.send('addstatsandclose', { catalog: "times", key: session, add: Math.floor((new Date() - timer)/1000) }); - - session = null; - timer = null; - current = null; - - e.preventDefault(); - return false; - } +const fs = require('fs');
+const homedir = require('@electron/remote').getCurrentWindow().homedir;
+
+session = null;
+timer = null;
+current = null;
+
+webview.addEventListener('dom-ready', () => {
+ try {
+ if (webview.getURL() !== current) {
+ if (session !== null) {
+ require('electron').ipcRenderer.send('addstats', { catalog: "times", key: session, add: Math.floor((new Date() - timer)/1000) });
+
+ session = null;
+ timer = null;
+ current = null;
+ }
+ }
+
+ if (webview.getURL().endsWith("game.html")) { // Local
+ session = "local";
+ timer = new Date();
+ current = webview.getURL();
+ }
+ if (webview.getURL().endsWith("game.html?sp")) { // Singleplayer
+ session = "single";
+ timer = new Date();
+ current = webview.getURL();
+ }
+ if (webview.getURL().endsWith("game.html?online")) { // Online
+ session = "online";
+ timer = new Date();
+ current = webview.getURL();
+ }
+ } catch (e) {}
+})
+
+window.addEventListener("beforeunload", function(e){
+ try {
+ if (session !== null) {
+ require('electron').ipcRenderer.send('addstatsandclose', { catalog: "times", key: session, add: Math.floor((new Date() - timer)/1000) });
+
+ session = null;
+ timer = null;
+ current = null;
+
+ e.preventDefault();
+ return false;
+ }
+ } catch (e) {}
}, false);
\ No newline at end of file |