diff --git a/stable.user.js b/stable.user.js index a78de20..697e5ec 100755 --- a/stable.user.js +++ b/stable.user.js @@ -21,7 +21,7 @@ // ==UserScript== // @name Moodle/Elearning/KMOOC test help -// @version 2.0.0.4 +// @version 2.0.0.5 // @description Online Moodle/Elearning/KMOOC test help // @author MrFry // @match https://elearning.uni-obuda.hu/main/* @@ -73,6 +73,7 @@ const log = true const motdShowCount = 3 /* Ammount of times to show motd */ + const infoExpireTime = 60 // Every n seconds basic info should be loaded from server var motd = '' var lastestVersion = '' var subjInfo @@ -1613,26 +1614,48 @@ } function GetXHRInfos () { - return new Promise((resolve, reject) => { - xmlhttpRequest({ - method: 'GET', - url: apiAdress + 'infos?version=true&motd=true&subjinfo=true&cversion=' + info().script.version, - onload: function (response) { - try { - const res = JSON.parse(response.responseText) - resolve(res) - } catch (e) { - Log('Errro paring JSON in GetXHRInfos') - Log(e) + const now = new Date().getTime() + const lastCheck = getVal('lastInfoCheckTime') + if (!lastCheck) { + setVal('lastInfoCheckTime', now) + } + + if (now > lastCheck + (infoExpireTime * 1000)) { + console.log('GETTING DATA FROM SREVER') + setVal('lastInfoCheckTime', now) + return new Promise((resolve, reject) => { + xmlhttpRequest({ + method: 'GET', + url: apiAdress + 'infos?version=true&motd=true&subjinfo=true&cversion=' + info().script.version, + onload: function (response) { + try { + const res = JSON.parse(response.responseText) + setVal('lastInfo', response.responseText) + resolve(res) + } catch (e) { + Log('Errro paring JSON in GetXHRInfos') + Log(e) + reject(e) + } + }, + onerror: (e) => { + Log('Info get Error', e) reject(e) } - }, - onerror: (e) => { - Log('Info get Error', e) + }) + }) + } else { + console.log('USING OLD') + return new Promise((resolve, reject) => { + try { + resolve(JSON.parse(getVal('lastInfo'))) + } catch (e) { + Log('Errro paring JSON in GetXHRInfos, when using old data!') + Log(e) reject(e) } }) - }) + } } function GetXHRQuestionAnswer (question) {