-
-
Save asadravian/d2de60813acec45dae752f3286ca044e to your computer and use it in GitHub Desktop.
var x = document.createElement("link"); | |
x.rel = 'stylesheet'; | |
x.type = 'text/css' | |
x.href = "https://cdn.jsdelivr.net/gh/EastArctica/JS-Plugins@master/Un-Released/Kahoot/KahootModal.css" | |
document.head.appendChild(x); | |
var xhttp = new XMLHttpRequest() | |
var URL = window.location.href | |
var found = URL.search("https://quizizz.com/join/game/"); | |
if (found == 0) { found = true } | |
if (found) { | |
var Modal = document.createElement("div") | |
Modal.id = "mainModal" | |
Modal.className = "mainModal" | |
Modal.style = "position: fixed; z-index: 2147483647; left: 0px; top: 0px; width: 100%; height: 100%; overflow: auto; background-color: rgba(0, 0, 0, 0.4); display: none;" | |
var ModalContent = document.createElement("div") | |
ModalContent.className = "modal-content" | |
ModalContent.id = "ModalContent" | |
var Close = document.createElement("span") | |
Close.className = "close" | |
Close.innerHTML = "×" | |
var btn = document.createElement("button") | |
btn.id = "ModalButton" | |
btn.innerText = "View Answers" | |
btn.onclick = function() { | |
Modal.style.display = "block"; | |
} | |
Close.onclick = function() { | |
Modal.style.display = "none"; | |
} | |
window.onclick = function(event) { | |
if (event.target == Modal) { | |
Modal.style.display = "none"; | |
} | |
} | |
document.getElementsByClassName("actions-container")[0].appendChild(btn) | |
ModalContent.appendChild(Close) | |
Modal.appendChild(ModalContent) | |
document.getElementsByClassName("root-bootstrapper-container")[0].prepend(Modal) | |
if (!window.idiidk) { | |
window.idiidk = function() { | |
const offset = 33; | |
class Encoding { | |
static encode(t, e, o = 2) { | |
const s = this.encodeRaw(e, !0); | |
return `${s}${this.encodeRaw(t,!1,e)}${String.fromCharCode(33+s.length)}${o}` | |
} | |
static encodeRaw(t, e, o = "quizizz.com") { | |
let s = 0; | |
s = e ? o.charCodeAt(0) : o.charCodeAt(0) + o.charCodeAt(o.length - 1); | |
const r = []; | |
for (let o = 0; o < t.length; o++) { | |
const n = t[o].charCodeAt(0), | |
c = e ? this.safeAdd(n, s) : this.addOffset(n, s, o, 2); | |
r.push(String.fromCharCode(c)) | |
} | |
return r.join("") | |
} | |
static decode(t, e = !1) { | |
if (e) { | |
const e = this.extractHeader(t); | |
return this.decodeRaw(e, !0) | |
} { | |
const e = this.decode(this.extractHeader(t), !0), | |
o = this.extractData(t); | |
return this.decodeRaw(o, !1, e) | |
} | |
} | |
static decodeRaw(t, e, o = "quizizz.com") { | |
const s = this.extractVersion(t); | |
let r = 0; | |
r = e ? o.charCodeAt(0) : o.charCodeAt(0) + o.charCodeAt(o.length - 1), r = -r; | |
const n = []; | |
for (let o = 0; o < t.length; o++) { | |
const c = t[o].charCodeAt(0), | |
a = e ? this.safeAdd(c, r) : this.addOffset(c, r, o, s); | |
n.push(String.fromCharCode(a)) | |
} | |
return n.join("") | |
} | |
static addOffset(t, e, o, s) { | |
return 2 === s ? this.verifyCharCode(t) ? this.safeAdd(t, o % 2 == 0 ? e : -e) : t : this.safeAdd(t, o % 2 == 0 ? e : -e) | |
} | |
static extractData(t) { | |
const e = t.charCodeAt(t.length - 2) - 33; | |
return t.slice(e, -2) | |
} | |
static extractHeader(t) { | |
const e = t.charCodeAt(t.length - 2) - 33; | |
return t.slice(0, e) | |
} | |
static extractVersion(t) { | |
if ("string" == typeof t && t[t.length - 1]) { | |
const e = parseInt(t[t.length - 1], 10); | |
if (!isNaN(e)) return e | |
} | |
return null | |
} | |
static safeAdd(t, e) { | |
const o = t + e; | |
return o > 65535 ? o - 65535 + 0 - 1 : o < 0 ? 65535 - (0 - o) + 1 : o | |
} | |
static verifyCharCode(t) { | |
if ("number" == typeof t) return !(t >= 55296 && t <= 56319 || t >= 56320 && t <= 57343) | |
} | |
static generateIdentifier(t, e, o = 1, s = (new Date).getTime()) { | |
let r = e; | |
return "function" == typeof e && (r = e()), "".concat(t, ".").concat(r, "|").concat(o, ".").concat(s) | |
} | |
} | |
var URL = window.location.href | |
var GameType = URL.slice(URL.search("gameType=")+9, URL.length) | |
const prevConx = localStorage.getItem("previousContext"), | |
parsedConx = JSON.parse(prevConx), | |
encodedRoomHash = parsedConx.game.roomHash, | |
roomHash = Encoding.decode(encodedRoomHash.split("-")[1]), | |
data = { | |
roomHash: roomHash, | |
type: GameType | |
}; | |
fetch("https://game.quizizz.com/play-api/v3/getQuestions", { | |
method: "POST", | |
headers: { | |
"Content-Type": "application/json" | |
}, | |
body: JSON.stringify(data) | |
}).then(t => t.json()).then(t => { | |
let e = 0; | |
for (const o of Object.keys(t.questions)) { | |
e++; | |
const s = t.questions[o], | |
r = s.structure.kind, | |
n = s.structure.answer, | |
c = Encoding.decode(n); | |
ModalContent.insertAdjacentHTML( 'beforeend', `<b>Question: </b>`) | |
ModalContent.insertAdjacentHTML( 'beforeend', `${s.structure.query.text}<br>`) | |
if (c[0] == "[") { | |
newc = c.slice(1, c.length-1) | |
newc = newc.split(","); | |
// c has been turned into an array :) | |
ModalContent.insertAdjacentHTML( 'beforeend', `<b>Answers:</b><br>`) | |
for (let i = 0; i < newc.length; i++) { | |
ModalContent.insertAdjacentHTML( 'beforeend', `${s.structure.options[Number(newc[i])].text || s.structure.options[Number(newc[i])].media[0].url} <br>`) | |
} | |
ModalContent.insertAdjacentHTML( 'beforeend', `<br>`) | |
} else { | |
//console.log(s.structure) | |
ModalContent.insertAdjacentHTML( 'beforeend', `<b>Answer:</b> ${s.structure.options[c].text || s.structure.options[c].media[0].url} <br><br>`) | |
} | |
} | |
}); | |
} | |
window.idiidk(); | |
} else { | |
window.idiidk(); | |
} | |
} |
var x = document.createElement("link");
x.rel = 'stylesheet';
x.type = 'text/css'
x.href = "https://cdn.jsdelivr.net/gh/EastArctica/JS-Plugins@master/Un-Released/Kahoot/KahootModal.css"
document.head.appendChild(x);
var xhttp = new XMLHttpRequest()
var URL = window.location.href
var found = URL.search("https://quizizz.com/join/game/");
if (found == 0) { found = true }
if (found) {
var Modal = document.createElement("div")
Modal.id = "mainModal"
Modal.className = "mainModal"
Modal.style = "position: fixed; z-index: 2147483647; left: 0px; top: 0px; width: 100%; height: 100%; overflow: auto; background-color: rgba(0, 0, 0, 0.4); display: none;"
var ModalContent = document.createElement("div")
ModalContent.className = "modal-content"
ModalContent.id = "ModalContent"
var Close = document.createElement("span")
Close.className = "close"
Close.innerHTML = "×"
var btn = document.createElement("button")
btn.id = "ModalButton"
btn.innerText = "View Answers"
btn.onclick = function() {
Modal.style.display = "block";
}
Close.onclick = function() {
Modal.style.display = "none";
}
window.onclick = function(event) {
if (event.target == Modal) {
Modal.style.display = "none";
}
}
document.getElementsByClassName("actions-container")[0].appendChild(btn)
ModalContent.appendChild(Close)
Modal.appendChild(ModalContent)
document.getElementsByClassName("root-bootstrapper-container")[0].prepend(Modal)
if (!window.idiidk) {
window.idiidk = function() {
const offset = 33;
class Encoding {
static encode(t, e, o = 2) {
const s = this.encodeRaw(e, !0);
return ${s}${this.encodeRaw(t,!1,e)}${String.fromCharCode(33+s.length)}${o}
}
static encodeRaw(t, e, o = "quizizz.com") {
let s = 0;
s = e ? o.charCodeAt(0) : o.charCodeAt(0) + o.charCodeAt(o.length - 1);
const r = [];
for (let o = 0; o < t.length; o++) {
const n = t[o].charCodeAt(0),
c = e ? this.safeAdd(n, s) : this.addOffset(n, s, o, 2);
r.push(String.fromCharCode(c))
}
return r.join("")
}
static decode(t, e = !1) {
if (e) {
const e = this.extractHeader(t);
return this.decodeRaw(e, !0)
} {
const e = this.decode(this.extractHeader(t), !0),
o = this.extractData(t);
return this.decodeRaw(o, !1, e)
}
}
static decodeRaw(t, e, o = "quizizz.com") {
const s = this.extractVersion(t);
let r = 0;
r = e ? o.charCodeAt(0) : o.charCodeAt(0) + o.charCodeAt(o.length - 1), r = -r;
const n = [];
for (let o = 0; o < t.length; o++) {
const c = t[o].charCodeAt(0),
a = e ? this.safeAdd(c, r) : this.addOffset(c, r, o, s);
n.push(String.fromCharCode(a))
}
return n.join("")
}
static addOffset(t, e, o, s) {
return 2 === s ? this.verifyCharCode(t) ? this.safeAdd(t, o % 2 == 0 ? e : -e) : t : this.safeAdd(t, o % 2 == 0 ? e : -e)
}
static extractData(t) {
const e = t.charCodeAt(t.length - 2) - 33;
return t.slice(e, -2)
}
static extractHeader(t) {
const e = t.charCodeAt(t.length - 2) - 33;
return t.slice(0, e)
}
static extractVersion(t) {
if ("string" == typeof t && t[t.length - 1]) {
const e = parseInt(t[t.length - 1], 10);
if (!isNaN(e)) return e
}
return null
}
static safeAdd(t, e) {
const o = t + e;
return o > 65535 ? o - 65535 + 0 - 1 : o < 0 ? 65535 - (0 - o) + 1 : o
}
static verifyCharCode(t) {
if ("number" == typeof t) return !(t >= 55296 && t <= 56319 || t >= 56320 && t <= 57343)
}
static generateIdentifier(t, e, o = 1, s = (new Date).getTime()) {
let r = e;
return "function" == typeof e && (r = e()), "".concat(t, ".").concat(r, "|").concat(o, ".").concat(s)
}
}
var URL = window.location.href
var GameType = URL.slice(URL.search("gameType=")+9, URL.length)
const prevConx = localStorage.getItem("previousContext"),
parsedConx = JSON.parse(prevConx),
encodedRoomHash = parsedConx.game.roomHash,
roomHash = Encoding.decode(encodedRoomHash.split("-")[1]),
data = {
roomHash: roomHash,
type: GameType
};
fetch("https://game.quizizz.com/play-api/v3/getQuestions", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(data)
}).then(t => t.json()).then(t => {
let e = 0;
for (const o of Object.keys(t.questions)) {
e++;
const s = t.questions[o],
r = s.structure.kind,
n = s.structure.answer,
c = Encoding.decode(n);
ModalContent.insertAdjacentHTML( 'beforeend', <b>Question: </b>
)
ModalContent.insertAdjacentHTML( 'beforeend', ${s.structure.query.text}<br>
)
if (c[0] == "[") {
newc = c.slice(1, c.length-1)
newc = newc.split(",");
// c has been turned into an array :)
ModalContent.insertAdjacentHTML( 'beforeend', <b>Answers:</b><br>
)
for (let i = 0; i < newc.length; i++) {
ModalContent.insertAdjacentHTML( 'beforeend', ${s.structure.options[Number(newc[i])].text || s.structure.options[Number(newc[i])].media[0].url} <br>
)
}
ModalContent.insertAdjacentHTML( 'beforeend', <br>
)
} else {
//console.log(s.structure)
ModalContent.insertAdjacentHTML( 'beforeend', <b>Answer:</b> ${s.structure.options[c].text || s.structure.options[c].media[0].url} <br><br>
)
}
}
});
}
window.idiidk();
} else {
window.idiidk();
}
}
var x = document.createElement("link");
x.rel = 'stylesheet';
x.type = 'text/css'
x.href = "https://cdn.jsdelivr.net/gh/EastArctica/JS-Plugins@master/Un-Released/Kahoot/KahootModal.css"
document.head.appendChild(x);
var xhttp = new XMLHttpRequest()
var URL = window.location.href
var found = URL.search("https://quizizz.com/join/game/");
if (found == 0) { found = true }
if (found) {
var Modal = document.createElement("div")
Modal.id = "mainModal"
Modal.className = "mainModal"
Modal.style = "position: fixed; z-index: 2147483647; left: 0px; top: 0px; width: 100%; height: 100%; overflow: auto; background-color: rgba(0, 0, 0, 0.4); display: none;"
var ModalContent = document.createElement("div")
ModalContent.className = "modal-content"
ModalContent.id = "ModalContent"
var Close = document.createElement("span")
Close.className = "close"
Close.innerHTML = "×"
var btn = document.createElement("button")
btn.id = "ModalButton"
btn.innerText = "View Answers"
btn.onclick = function() {
Modal.style.display = "block";
}
Close.onclick = function() {
Modal.style.display = "none";
}
window.onclick = function(event) {
if (event.target == Modal) {
Modal.style.display = "none";
}
}
document.getElementsByClassName("actions-container")[0].appendChild(btn)
ModalContent.appendChild(Close)
Modal.appendChild(ModalContent)
document.getElementsByClassName("root-bootstrapper-container")[0].prepend(Modal)
if (!window.idiidk) {
window.idiidk = function() {
const offset = 33;
class Encoding {
static encode(t, e, o = 2) {
const s = this.encodeRaw(e, !0);
return
${s}${this.encodeRaw(t,!1,e)}${String.fromCharCode(33+s.length)}${o}
}
static encodeRaw(t, e, o = "quizizz.com") {
let s = 0;
s = e ? o.charCodeAt(0) : o.charCodeAt(0) + o.charCodeAt(o.length - 1);
const r = [];
for (let o = 0; o < t.length; o++) {
const n = t[o].charCodeAt(0),
c = e ? this.safeAdd(n, s) : this.addOffset(n, s, o, 2);
r.push(String.fromCharCode(c))
}
return r.join("")
}
static decode(t, e = !1) {
if (e) {
const e = this.extractHeader(t);
return this.decodeRaw(e, !0)
} {
const e = this.decode(this.extractHeader(t), !0),
o = this.extractData(t);
return this.decodeRaw(o, !1, e)
}
}
static decodeRaw(t, e, o = "quizizz.com") {
const s = this.extractVersion(t);
let r = 0;
r = e ? o.charCodeAt(0) : o.charCodeAt(0) + o.charCodeAt(o.length - 1), r = -r;
const n = [];
for (let o = 0; o < t.length; o++) {
const c = t[o].charCodeAt(0),
a = e ? this.safeAdd(c, r) : this.addOffset(c, r, o, s);
n.push(String.fromCharCode(a))
}
return n.join("")
}
static addOffset(t, e, o, s) {
return 2 === s ? this.verifyCharCode(t) ? this.safeAdd(t, o % 2 == 0 ? e : -e) : t : this.safeAdd(t, o % 2 == 0 ? e : -e)
}
static extractData(t) {
const e = t.charCodeAt(t.length - 2) - 33;
return t.slice(e, -2)
}
static extractHeader(t) {
const e = t.charCodeAt(t.length - 2) - 33;
return t.slice(0, e)
}
static extractVersion(t) {
if ("string" == typeof t && t[t.length - 1]) {
const e = parseInt(t[t.length - 1], 10);
if (!isNaN(e)) return e
}
return null
}
static safeAdd(t, e) {
const o = t + e;
return o > 65535 ? o - 65535 + 0 - 1 : o < 0 ? 65535 - (0 - o) + 1 : o
}
static verifyCharCode(t) {
if ("number" == typeof t) return !(t >= 55296 && t <= 56319 || t >= 56320 && t <= 57343)
}
static generateIdentifier(t, e, o = 1, s = (new Date).getTime()) {
let r = e;
return "function" == typeof e && (r = e()), "".concat(t, ".").concat(r, "|").concat(o, ".").concat(s)
}
}
var URL = window.location.href
var GameType = URL.slice(URL.search("gameType=")+9, URL.length)
const prevConx = localStorage.getItem("previousContext"),
parsedConx = JSON.parse(prevConx),
encodedRoomHash = parsedConx.game.roomHash,
roomHash = Encoding.decode(encodedRoomHash.split("-")[1]),
data = {
roomHash: roomHash,
type: GameType
};
fetch("https://game.quizizz.com/play-api/v3/getQuestions", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(data)
}).then(t => t.json()).then(t => {
let e = 0;
for (const o of Object.keys(t.questions)) {
e++;
const s = t.questions[o],
r = s.structure.kind,
n = s.structure.answer,
c = Encoding.decode(n);
ModalContent.insertAdjacentHTML( 'beforeend',
<b>Question: </b>
)ModalContent.insertAdjacentHTML( 'beforeend',
${s.structure.query.text}<br>
)if (c[0] == "[") {
newc = c.slice(1, c.length-1)
newc = newc.split(",");
// c has been turned into an array :)
ModalContent.insertAdjacentHTML( 'beforeend',
<b>Answers:</b><br>
)for (let i = 0; i < newc.length; i++) {
ModalContent.insertAdjacentHTML( 'beforeend',
${s.structure.options[Number(newc[i])].text || s.structure.options[Number(newc[i])].media[0].url} <br>
)}
ModalContent.insertAdjacentHTML( 'beforeend',
<br>
)} else {
//console.log(s.structure)
ModalContent.insertAdjacentHTML( 'beforeend',
<b>Answer:</b> ${s.structure.options[c].text || s.structure.options[c].media[0].url} <br><br>
)}
}
});
}
window.idiidk();
} else {
window.idiidk();
}
}