您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
AtCoderの問題のページから直接解説のページに行くことができます。
- // ==UserScript==
- // @name AtCoder Traffic Light
- // @namespace http://tampermonkey.net/
- // @version 1.0
- // @description AtCoderの問題のページから直接解説のページに行くことができます。
- // 問題横のボタンが赤の場合:読み込み中です待っていてください。
- // 問題横のボタンが黄の場合:全体解説のみありました。
- // 問題横のボタンが緑の場合:この問題の解説がありました。
- // @author soraie
- // @match https://atcoder.jp/contests/*/tasks/*
- // @grant none
- // ==/UserScript==
- /* ユーザー設定項目 */
- const color = {
- "green":"#2cf44c", //緑
- "yellow":"#fff25e", //黄色
- "red":"#ff5757" //赤
- };
- /* 設定項目終わり */
- //各解説のサイト
- //1.各問題解説:https://atcoder.jp/contests/{contest}/editorial/{number}
- //2.全体解説pdf:https://img.atcoder.jp/{contest}/editorial.pdf
- //3.スライド:https://www.slideshare.net/{chokudai}/{contest}
- //ユーザー解説:他
- //全体解説Youtube:https://youtube.com/{any}
- if(moment() < endTime)return;//コンテスト中
- let btn = $(".btn.btn-default.btn-sm").eq(0);
- btn.css("background-color",color.red);
- btn.css("pointer-events","none");
- (function() {
- 'use strict';
- let now = location.href.split("/"),url = `https://1d878d9b.us-south.apigw.appdomain.cloud/proxy?url=https://atcoder.jp/contests/${now[4]}/tasks/${now[6]}/editorial?lang=ja`;
- $.ajax(url).done((data) => {
- let link = data.response.split("コンテスト全体の解説");
- link[0] = link[0].match(/<a.*公式解説.*a>|<a.*ユーザ.*a>/g);link[1] = link[1].match(/<a.*公式解説.*a>|<a.*ユーザ.*a>/g);
- let final = "";//最終的なボタンのリンク
- if(link[0] !== null){
- for(let i = 0;i < link[0].length;i++){
- let ele = link[0][i].match(/href=".*".*target/)[0];
- ele = ele.replace(/href="|".*target/g,"");
- if(ele.match(/\/editorial\//) !== null){
- final = ele;
- break;
- }
- final = ele;
- }
- btn.attr("href",final);btn.attr("target","_blank");btn.css("pointer-events","");
- btn.css("background-color",color.green);
- }
- else{
- if(link[1] === null){
- //もう何もできないので潔く負けを認める
- btn.text("解説無し");
- }
- for(let i = 0;i < link[1].length;i++){
- let ele = link[1][i].match(/href=".*".*target/)[0];
- ele = ele.replace(/href="|".*target/g,"");
- if(ele.match(/editorial\.pdf/) !== null){
- final = ele;
- break;
- }
- final = ele;
- }
- btn.attr("href",final);btn.attr("target","_blank");btn.css("pointer-events","");
- btn.css("background-color",color.yellow);
- }
- })
- })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址