您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
check and show AC
// ==UserScript== // @license MIT // @name AtCoder Show Result // @namespace http://tampermonkey.net/ // @version 1.0.0 // @description check and show AC // @author twil3akine // @match https://atcoder.jp/contests/*/tasks // @grant none // ==/UserScript== 'use strict' const GREEN = "rgba(92,184,92,0.75)"; const YELLOW = "rgba(240,173,78,0.75)"; const getResult = async (url) => { const formatInfo = (cells) => { const name = cells[1].querySelector("a").textContent.trim().split(" ")[0]; const lang = cells[3].querySelector("a").textContent.trim(); const result = cells[6].querySelector("span").textContent.trim(); return { name: name, lang: lang, result: result, } } let count = 0 let contents = []; while (true) { try { count++; const response = await fetch(`${url}?page=${count}`); const text = await response.text(); const parser = new DOMParser(); const doc = parser.parseFromString(text, 'text/html'); if (doc.querySelector(".panel-body")) { return contents; } const trs = doc.querySelectorAll("tr"); trs.forEach((tr, idx) => { if (idx === 0) return ; let cells = tr.querySelectorAll("td"); contents.push(formatInfo(cells)); }); } catch (e) { console.error(`Error fetching the page: ${e}`); return []; } } } const getQuestions = () => { const questions = [""]; const trs = document.querySelectorAll("tr"); trs.forEach((tr, idx) => { if (idx === 0) return; let questName = tr.querySelector("td").querySelector("a").textContent.trim(); questions.push(questName); }) return questions; } const adaptResult = (questions, results) => { const trs = document.querySelectorAll("tr"); results.reverse().forEach(result => { const targetElement = trs[questions.indexOf(result.name)]; targetElement.style.backgroundColor = (result.result === "AC") ? GREEN : YELLOW; targetElement.style.filter = "brightness(1.25)"; }) } const app = async () => { const currentURL = window.location.href; const fetchPage = currentURL.replace("tasks", "submissions/me"); const results = await getResult(fetchPage); const questions = getQuestions(currentURL); adaptResult(questions, results); } app();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址