From 2f9446157b8eb50aba64bc234a5657feed3b611b Mon Sep 17 00:00:00 2001 From: MrFry Date: Tue, 31 Mar 2020 15:20:10 +0200 Subject: [PATCH 1/2] Adding cid on qmining site to better find user errors by cid --- devel/testWrapper.js | 2 ++ stable.user.js | 43 +++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/devel/testWrapper.js b/devel/testWrapper.js index 8c6b319..016f6cd 100644 --- a/devel/testWrapper.js +++ b/devel/testWrapper.js @@ -25,6 +25,8 @@ // @author Yout // @match https://elearning.uni-obuda.hu/main/* // @match https://elearning.uni-obuda.hu/kmooc/* +// @match https://qmining.frylabs.net/* +// @match http://qmining.frylabs.net/* // @match file:///* // @grant GM_getResourceText // @grant GM_info diff --git a/stable.user.js b/stable.user.js index 2221e57..a78de20 100755 --- a/stable.user.js +++ b/stable.user.js @@ -27,6 +27,8 @@ // @match https://elearning.uni-obuda.hu/main/* // @match https://elearning.uni-obuda.hu/kmooc/* // @match https://mooc.unideb.hu/* +// @match https://qmining.frylabs.net/* +// @match http://qmining.frylabs.net/* // @grant GM_getResourceText // @grant GM_info // @grant GM_getValue @@ -610,7 +612,7 @@ } function AfterLoad () { - var url = location.href // eslint-disable-line + const url = location.href // eslint-disable-line try { if ((url.includes('/quiz/') && url.includes('attempt.php')) || forceTestPage) { // if the current page is a test @@ -651,8 +653,46 @@ // : Main logic stuff {{{ // : Loading {{{ + function HandleQminingSite (url) { + try { + Array.from(document.getElementById('sideBarLinks').childNodes).forEach((link) => { + link.addEventListener('mousedown', () => { + FillFeedbackCID(url, link) + }) + }) + + FillFeedbackCID(url, + document.getElementById('sideBarLinks').getElementsByClassName('active')[0] + ) + } catch (e) { + console.info('Error filling client ID input', e) + } + } + + function FillFeedbackCID (url, link) { + try { + if (link.id === 'feedback') { + const cidSetInterval = setInterval(() => { + const cid = document.getElementById('cid') + if (cid) { + cid.value = GetId() + window.clearInterval(cidSetInterval) + } + }, 100) + } + } catch (e) { + console.info('Error filling client ID input', e) + } + } function Init () { + const url = location.href // eslint-disable-line + + if (url.includes(serverAdress.split('/')[2])) { + HandleQminingSite(url) + return + } + if (false) { // eslint-disable-line setVal('version16', undefined) setVal('version15', undefined) @@ -660,7 +700,6 @@ setVal('showQuestions', undefined) setVal('showSplash', undefined) } - var url = location.href // eslint-disable-line // -------------------------------------------------------------------------------------- // event listener fuckery // -------------------------------------------------------------------------------------- From bf2b44ee56d54e944684b51ca4be015163267408 Mon Sep 17 00:00:00 2001 From: MrFry Date: Tue, 31 Mar 2020 15:37:14 +0200 Subject: [PATCH 2/2] Info getting only every x seconds --- stable.user.js | 55 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 16 deletions(-) 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) {