您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
LeetCode.com - 显示题目 zerotrac rating,一键跳转国服
当前为
您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
- // ==UserScript==
- // @name LeetCode Rating Helper
- // @namespace http://tampermonkey.net/
- // @version 0.2
- // @description LeetCode.com - 显示题目 zerotrac rating,一键跳转国服
- // @icon https://www.google.com/s2/favicons?sz=64&domain=greatest.deepsurf.us
- // @grant none
- // @match *://leetcode.com/problems/*
- // @license The Unlicense
- // @run-at document-idle
- // ==/UserScript==
- (function () {
- "use strict";
- function waitFor(condition, callback) {
- if (!condition()) {
- window.setTimeout(waitFor.bind(null, condition, callback), 1000);
- } else {
- callback();
- }
- }
- function isLoadFinish() {
- var tag = isCNSite() ? "nav" : "img";
- return document.querySelector(tag) != null;
- }
- function isCNSite() {
- return location.hostname === "leetcode.cn";
- }
- let url = window.location.href;
- url = url.replace("leetcode.com", "leetcode.cn");
- url = url.replace("/description", "/solution");
- let a = url.split("/");
- let titleSlug = a[4];
- waitFor(isLoadFinish, () => {
- console.log(url);
- let assistant = document.createElement("a");
- assistant.href = url;
- assistant.target = "_blank";
- assistant.innerHTML =
- '<div class="flex flex-1 select-none justify-center whitespace-nowrap rounded-t-[5px] px-4 py-[10px] text-xs cursor-pointer text-label-2 dark:text-dark-label-2 px-5">Solutions (CN) ↗</div>';
- let elements = document.querySelector(
- "#qd-content > div.h-full.flex-col.ssg__qd-splitter-primary-w > div > div > div > div:nth-child(1) > div > div"
- );
- elements.appendChild(assistant);
- fetch("https://zerotrac.github.io/leetcode_problem_rating/data.json")
- .then((response) => response.json())
- .then((data) => {
- for (let i = 0; i < data.length; i++) {
- if (data[i].TitleSlug === titleSlug) {
- let rating = Math.round(data[i].Rating);
- let contestSlug = data[i].ContestSlug;
- let contestLink = "https://leetcode.com/contest/" + contestSlug;
- let contestID_en = data[i].ContestID_en;
- console.log(rating);
- let sel = document.querySelector(
- "#qd-content > div.h-full.flex-col.ssg__qd-splitter-primary-w > div > div > div > div.flex.h-full.w-full.overflow-y-auto > div > div > div.w-full.px-5.pt-4 > div > div:nth-child(1) > div.flex-1 > div > div > span"
- );
- let zerotrac = document.createElement("a");
- zerotrac.href = contestLink;
- zerotrac.target = "_blank";
- zerotrac.innerHTML =
- '<div class="flex flex-1 select-none justify-center whitespace-nowrap rounded-t-[5px] px-4 py-[10px] text-xs cursor-pointer text-label-2 dark:text-dark-label-2 px-5">' +
- " Rating: " +
- rating +
- " ↗</div>";
- elements.appendChild(zerotrac);
- }
- }
- });
- });
- })();