您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
calculate average grades in vulcan
// ==UserScript== // @name average vulcan // @namespace http://tampermonkey.net/ // @version 1.1 // @description calculate average grades in vulcan // @author bewu // @license MIT // @match https://uonetplus-uczen.vulcan.net.pl/* // @icon https://cdn-icons-png.flaticon.com/512/5084/5084428.png // @grant none // @require https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js // ==/UserScript== (function() { 'use strict'; console.info("average vulcan by bewu"); var subjectsDiv = $("#ext-element-110"); var waitGrades = setInterval(function() { if (subjectsDiv.length != 0 && subjectsDiv[0].childElementCount != 0) { console.info("loaded grades!"); clearInterval(waitGrades); start(subjectsDiv[0]); } else { subjectsDiv = $("#ext-element-110"); } }, 100); })(); function start(subjects) { console.info(subjects); for (var i = 0; i < subjects.childElementCount; i++) { avg(subjects.children[i], subjects.getElementsByClassName("x-label-el")[i]); } } function avg(s, sName) { s = s.querySelectorAll("span[aria-label]"); if (s.length != 0) { // if there are any grades console.info(sName.innerText); var gSum = 0.0; var weightSum = 0; for (var i = 0; i < s.length; i++) { var tempG = s[i].innerText.replace(" (%)", "") // temp string to hold grade if (tempG.length > 1) { // if grade is not only + or - tempG = tempG.replace("+", ".5"); if (tempG.includes("-")) { // handling grades with a - tempG = tempG.replace("-", ".0"); if (!isNaN(tempG)) { tempG = (parseInt(tempG) - 0.25).toString(); } } } if (!isNaN(tempG)) { // if the grade is numeric var tempW = s[i].getAttribute("aria-label").split("waga: ")[1].split(",")[0]; // temp string to hold grade's weight if (tempW != "0") { // if weight is not 0 gSum += parseInt(tempW) * parseFloat(tempG); weightSum += parseInt(tempW); console.info(tempG + " " + tempW); } } } var sAverage; if (weightSum > 0) { // to avoid dividing by 0 sAverage = Math.round(gSum / weightSum * 100) / 100; // calculating the average console.info(sName.innerText + " " + sAverage); sName.innerHTML = sName.innerText + "<i> (" + sAverage + ")</i>"; } } }