mirror of
https://gitlab.com/MrFry/moodle-test-userscript
synced 2025-04-01 20:22:48 +02:00
Image handling basics
This commit is contained in:
parent
8d38ea6b49
commit
c59fc4cb4a
1 changed files with 31 additions and 47 deletions
|
@ -164,16 +164,20 @@
|
||||||
do {
|
do {
|
||||||
const question = getQuestionFromNode(containerNode)
|
const question = getQuestionFromNode(containerNode)
|
||||||
const answer = getAnswerFromNode(containerNode)
|
const answer = getAnswerFromNode(containerNode)
|
||||||
|
const image = getImageFromNode(containerNode)
|
||||||
result = [
|
result = [
|
||||||
...result,
|
...result,
|
||||||
{
|
{
|
||||||
Q: question,
|
Q: question,
|
||||||
A: answer,
|
A: answer,
|
||||||
|
data: getData(image),
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
console.log(question)
|
console.log(question)
|
||||||
console.log(answer)
|
console.log(answer)
|
||||||
console.log('########################')
|
console.log(image)
|
||||||
|
console.log('')
|
||||||
|
console.log('')
|
||||||
|
|
||||||
i++
|
i++
|
||||||
containerNode = document.getElementById(`q${i}`)
|
containerNode = document.getElementById(`q${i}`)
|
||||||
|
@ -189,6 +193,29 @@
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getData(image) {
|
||||||
|
if (image) {
|
||||||
|
return {
|
||||||
|
type: 'simple',
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return {
|
||||||
|
type: 'image',
|
||||||
|
src: image,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getImageFromNode(node) {
|
||||||
|
const img = node.getElementsByTagName('img')
|
||||||
|
if (img.length === 0) {
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
return Array.from(img).map(image => {
|
||||||
|
return image.src
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
function getAnswerFromNode(node) {
|
function getAnswerFromNode(node) {
|
||||||
let answer = node.getElementsByClassName('rightanswer')
|
let answer = node.getElementsByClassName('rightanswer')
|
||||||
if (answer.length === 0) {
|
if (answer.length === 0) {
|
||||||
|
@ -196,7 +223,7 @@
|
||||||
}
|
}
|
||||||
answer = answer[0]
|
answer = answer[0]
|
||||||
|
|
||||||
return SUtils.RemoveUnnecesarySpaces(answer.innerText)
|
return SUtils.RemoveUnnecesarySpaces(answer.innerHTML)
|
||||||
}
|
}
|
||||||
|
|
||||||
function getQuestionFromNode(node) {
|
function getQuestionFromNode(node) {
|
||||||
|
@ -1072,50 +1099,6 @@
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// this should get the image url from a result page
|
|
||||||
// i is the index of the question
|
|
||||||
// FIXME: move this to RPM class ??? and refactor this
|
|
||||||
function GetImageFormResult(i) {
|
|
||||||
try {
|
|
||||||
var imgElements = RPM.GetResultImage(i) // trying to get image
|
|
||||||
var imgURL = [] // image urls
|
|
||||||
for (var j = 0; j < imgElements.length; j++) {
|
|
||||||
if (!imgElements[j].src.includes('brokenfile')) {
|
|
||||||
var filePart = imgElements[j].src.split('/') // splits the link by "/"
|
|
||||||
filePart = filePart[filePart.length - 1] // the last one is the image name
|
|
||||||
imgURL.push(decodeURI(SUtils.ShortenString(filePart, 30)))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (imgURL.length > 0) {
|
|
||||||
return imgURL
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
Log("Couldn't get images from result")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function GetDataFormResult(i) {
|
|
||||||
let data = { type: 'simple' }
|
|
||||||
|
|
||||||
let img = GetImageFormResult(i)
|
|
||||||
let grabbox = RPM.GetAnswersFromGrabBox(i)
|
|
||||||
if (img) {
|
|
||||||
data = {
|
|
||||||
type: 'image',
|
|
||||||
images: img,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (grabbox) {
|
|
||||||
data = {
|
|
||||||
type: 'grabbox',
|
|
||||||
images: img,
|
|
||||||
grabbox: grabbox,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return data
|
|
||||||
}
|
|
||||||
|
|
||||||
// saves the current quiz. questionData contains the active subjects questions
|
// saves the current quiz. questionData contains the active subjects questions
|
||||||
function SaveQuiz(quiz, next) {
|
function SaveQuiz(quiz, next) {
|
||||||
try {
|
try {
|
||||||
|
@ -1248,9 +1231,10 @@
|
||||||
|
|
||||||
// highlights the possible solutions to the current question
|
// highlights the possible solutions to the current question
|
||||||
function HighLightAnswer(results, currQuestionNumber) {
|
function HighLightAnswer(results, currQuestionNumber) {
|
||||||
|
// TODO: fix this
|
||||||
try {
|
try {
|
||||||
if (results.length > 0) {
|
if (results.length > 0) {
|
||||||
var answers = RPM.GetAllAnswer(currQuestionNumber) // getting all answers
|
var answers = QPM.GetAllAnswer(currQuestionNumber) // getting all answers
|
||||||
var toColor = [] // the numberth in the array will be colored, and .length items will be colored
|
var toColor = [] // the numberth in the array will be colored, and .length items will be colored
|
||||||
var type = '' // type of the question. radio or ticbox or whatitscalled
|
var type = '' // type of the question. radio or ticbox or whatitscalled
|
||||||
for (let i = 0; i < answers.length; i++) {
|
for (let i = 0; i < answers.length; i++) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue