您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to take over the world!
- // ==UserScript==
- // @name AtCoder Bookmarks
- // @namespace http://tampermonkey.net/
- // @version 0.1.3
- // @description try to take over the world!
- // @author You
- // @match https://atcoder.jp/contests/*/tasks/*
- // @match https://atcoder-bookmarks.oxyshower.xyz
- // @match http://localhost:3000/
- // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
- // @grant GM.setValue
- // @grant GM.getValue
- // @grant GM_listValues
- // @grant GM.deleteValue
- // @require http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js
- // ==/UserScript==
- (function () {
- "use strict";
- const URL = location.href;
- if (URL.match("https://atcoder-bookmarks.oxyshower.xyz")) {
- let id = 0;
- let datalist = [];
- for (const key of GM_listValues()) {
- let username = "",
- problemname = "",
- problemurl,
- idx = 8;
- while (key[idx] != "$") username += key[idx++];
- idx++;
- while (key[idx] != "$") problemname += key[idx++];
- idx++;
- problemurl = key.substr(idx);
- datalist[id++] = {
- userName: username,
- problemName: problemname,
- problemUrl: problemurl,
- };
- }
- localStorage.removeItem("atcoder");
- // objectは保存できない -> 文字列で保存
- localStorage.setItem("atcoder", JSON.stringify(datalist));
- // console.log(JSON.stringify(datalist));
- } else {
- const userName = document
- .getElementsByClassName("dropdown-toggle")[1]
- .textContent.slice(10, -17);
- const problemUrl = location.href;
- const problemName = document
- .getElementsByClassName("h2")[0]
- .textContent.slice(4, -9);
- const value =
- "atcoder" + "$" + userName + "$" + problemName + "$" + problemUrl;
- let html =
- '<button type="button" style="border: none; outline: none; color: rgb(218, 200, 42); background-color: white;" class="Bookmark">☆</button>';
- $(".h2").append(html);
- let onoff = "off";
- for (const key of GM_listValues()) {
- if (key == value) {
- onoff = "on";
- $(".Bookmark").text("★");
- }
- }
- $(".Bookmark").click(function () {
- switch (onoff) {
- case "off":
- onoff = "on";
- $(".Bookmark").text("★");
- GM.setValue(value);
- break;
- case "on":
- onoff = "off";
- $(".Bookmark").text("☆");
- GM.deleteValue(value);
- break;
- }
- });
- }
- })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址