From 3a5e0c6a0c7ec64db032e7ca420495e08fe18824 Mon Sep 17 00:00:00 2001 From: mrfry Date: Tue, 14 Dec 2021 17:27:29 +0100 Subject: [PATCH] Checking kgk site changes with interval --- stable.user.js | 78 +++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 64 insertions(+), 14 deletions(-) diff --git a/stable.user.js b/stable.user.js index a888183..f05c22a 100755 --- a/stable.user.js +++ b/stable.user.js @@ -1094,6 +1094,24 @@ return x.join(' ') } + function handleKGKSite(url) { + let prevLength = -1 + setInterval(() => { + const kkerdesElements = document.getElementsByClassName('kkerdes') + if (prevLength !== kkerdesElements.length) { + prevLength = kkerdesElements.length + console.log('PL', prevLength, 'NL', kkerdesElements.length) + if (kkerdesElements.length > 0) { + console.log('Handling quiz') + handleKGKQuiz(url) + } else { + console.log('Handling results') + HandleKGKResults(url) + } + } + }, 1 * 1000) + } + function handleKGKQuiz(url) { try { const { removeMessage: removeLoadingMessage } = ShowMessage( @@ -1135,6 +1153,17 @@ // : }}} + // : Canvas {{{ + + function handleCanvasQuiz() { + console.trace() + } + + function HandleCanvasResults() { + console.trace() + } + + // : }}} // : Misc {{{ function getVideo() { @@ -1318,13 +1347,13 @@ const pageMatchers = [ { - matchString: 'portal.kgk', + matchString: 'canvas', testPage: { match: (url) => { - return url.includes('vizsga') + return true // TODO :insert real url }, action: (url) => { - handleKGKQuiz(url) + handleCanvasQuiz(url) }, }, resultPage: { @@ -1332,7 +1361,7 @@ return false // TODO :insert real url }, action: (url) => { - HandleKGKResults(url) + HandleCanvasResults(url) }, }, default: { @@ -1344,6 +1373,33 @@ }, }, }, + { + matchString: 'portal.kgk', + // testPage: { + // match: (url) => { + // return url.includes('vizsga') + // }, + // action: (url) => { + // handleKGKSite(url) + // }, + // }, + // resultPage: { + // match: (url) => { + // return false // TODO :insert real url + // }, + // action: (url) => { + // handleKGKSite(url) + // }, + // }, + default: { + match: (url) => { + return true // TODO :insert real url + }, + action: (url) => { + handleKGKSite(url) + }, + }, + }, { matchString: 'default', // moodle, elearning, mooc testPage: { @@ -1392,7 +1448,7 @@ if ( url.includes(matcher.matchString) || matcher.matchString === 'default' || - matcher.matchString === forcedMatchString + matcher.matchString.includes(forcedMatchString) ) { if (matcher.testPage && matcher.testPage.match(url)) { matcher.testPage.action(url) @@ -1412,15 +1468,9 @@ } }) } catch (e) { - ShowMessage( - texts.fatalError, - - undefined, - () => { - OpenErrorPage(e) - } - ) - + ShowMessage(texts.fatalError, undefined, () => { + OpenErrorPage(e) + }) Exception(e, 'script error at main:') } if (url.includes('eduplayer')) {