Greasy Fork

Canvas Grade Calculator

Calculates the Letter Grade for Canvas

< 脚本Canvas Grade Calculator的反馈

评价:好评 - 脚本运行良好

§
发表于:2024-02-25

I added + and - to grades. You can place custom values in the script in the "else if." After you install, you also have to add your custom canvas grades link in the @match rules. Thank you to SaturnKai for the original code.
// ==UserScript==
// @name Canvas Grade Calculator
// @namespace 0612
// @version 1.6
// @description Calculates the Letter Grade for Canvas
// @author SaturnKai
// @match http*://*.instructure.com/*
// @match http*://*.canvas.*.edu/*
// @run-at document-end
// @grant none
// ==/UserScript==

function getLetterGrade(percent) {
let grade = percent.match(/\d+\.?\d+/)?.[0];
if (!grade || percent.includes("(")) {
return "";
}
if (grade > 100) {
return " (A+)";
} else if (grade >=93 && grade <=100) {
return " (A)";
} else if (grade >=90 && grade <=92.99) {
return " (A-)";
} else if (grade >=87 && grade <=89.99) {
return " (B+)";
} else if (grade >=83 && grade<=86.99) {
return " (B)"
} else if (grade >=80 && grade <=82.99) {
return " (B-)"
} else if (grade >=77 && grade <=79.99) {
return " (C+)"
} else if (grade >=73 && grade <=76.99) {
return " (C)"
} else if (grade >=70 && grade <=72.99) {
return " (C-)"
} else if (grade >= 60) {
return " (D)";
} else if (grade < 60) {
return " (F)";
} else {
return "";
}
}

function addLetterGrade(element) {
element.innerText += getLetterGrade(element.innerText);
}

function main() {
document.querySelectorAll("td.percent").forEach(addLetterGrade);
document.querySelectorAll(".final_grade .grade").forEach(addLetterGrade);
}

if (document.readyState === "complete" || document.readyState === "interactive") {
main();
} else {
window.addEventListener("DOMContentLoaded", () => {
main();
});
}

发表回复

登录以发表回复。