NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Auto Volt
// @namespace http://tampermonkey.net/
// @version 0.1
// @description help you do the UST vocab list homework
// @author programmer G7
// @match http://volt.cle.ust.hk/mw/stu/index.php
// @grant none
// @copyright 2020, matthew36 (https://openuserjs.org/users/matthew36)
// @license MIT
// ==/UserScript==
var vocabList = [];
var result = "";
var currentID = 0;
function getVoltResult(){
return document?.getElementById("quick_reference_frame")?.contentDocument?.getElementsByTagName("body")[0]?.getElementsByTagName("div")[0];
}
function getVocabName(){
return getVoltResult()?.getElementsByTagName("b")[0]?.innerText;
}
function getPartOfSpeech(){
return getVoltResult()?.getElementsByTagName("sub")[0]?.innerText;
}
function getDefinition(){
return getVoltResult()?.getElementsByTagName("b")[1]?.innerText;
}
function getExample(){
return getVoltResult()?.getElementsByTagName("i")[0]?.innerText;
}
function getTableInCurrentPage(currentID){
return `${currentID+1} ${getVocabName()} \"Definition: ${getDefinition()} \n\nExample sentence: ${getExample()} \n\nWhat I've learned: ${getVocabName()} is ${getPartOfSpeech()}\" Vocab List`;
}
function setInput(str){
var input = document.getElementById("word");
input.value = str;
}
function clickSearchButton(){
var button = document.getElementById("button");
button.click();
}
function search(str){
setInput(str);
clickSearchButton();
}
function copyToClipboard(str){
const el = document.createElement('textarea');
el.value = str;
el.setAttribute('readonly', '');
el.style.position = 'absolute';
el.style.left = '-9999px';
document.body.appendChild(el);
el.select();
document.execCommand('copy');
document.body.removeChild(el);
}
function addNextVocabToResult(){
var vocab = vocabList[currentID];
if(vocab==undefined) {
console.log("completed vocab list searching");
console.log(result);
copyToClipboard(result);
alert("completed volt, the result have been copied in your clipboard, please paste it into the google sheet then copy and paste it into your google doc")
return;
}
search(vocab);//search the vocab
setTimeout(function () {
result += getTableInCurrentPage(currentID)+"\n";//add it into result
currentID++;
addNextVocabToResult(currentID);
}, 1000);
}
function generateVocabListHomework(){
resetAll();
AskForVocabList();
addNextVocabToResult();
}
function AskForVocabList(){
var input = prompt("vocab List", "please use enter to split each vocab")
if(input == undefined) return;
if(input.length <= 0) return;
vocabList = input.split("\n");
}
function resetAll(){
vocabList = [];
result = "";
currentID = 0;
}
(function() {
'use strict';
// Your code here...
var el = document.createElement("button");
el.value = "DO HOMEWORK"
el.innerText = "DO VocabList homework"
el.style.width = innerWidth+"px"
el.style.height = "300px"
el.onclick = generateVocabListHomework
document.body.appendChild(el);
})();