// ==UserScript== // @name LeetCode 考题频率显示 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 当打开一道题时 查询它是否在codeTop上存在 如果存在 就显示它最近的考察频率 // @author Leochens // @match https://leetcode.cn/problems/* // @icon https://www.google.com/s2/favicons?sz=64&domain=leetcode.cn // @grant GM_xmlhttpRequest // @license MIT // @connect * // @downloadURL none // ==/UserScript== function fmtDate(utcdate) { let dateee; if (utcdate) { dateee = new Date(utcdate).toJSON(); } else { dateee = new Date().toJSON(); } return new Date(+new Date(dateee) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ') .replace(/\.[\d]{3}Z/, ''); } window.onload = function(){ 'use strict'; const title = document.querySelector('h4[data-cypress="QuestionTitle"]'); const titleText = title.innerText; const container = title.parentNode; const codeTop = document.createElement("span"); codeTop.setAttribute("id","codeTop"); codeTop.setAttribute("style","display: inline-block;vertical-align: middle;margin-left: 20px;font-size: 12px;font-weight: 500;color: #666") container.insertBefore(codeTop,container.lastChild); // 获取codeTop数据 GM_xmlhttpRequest({ method: "get", url: `https://codetop.cc/api/questions/?page=1&search=${encodeURI(titleText).replace(".","")}&ordering=-frequency`, // data: 'typeName=XXX&content=XXX&options=XXX', headers: { "Content-Type": "application/json" }, onload: function(res) { // code if(res.status === 200){ const obj = JSON.parse(res.response); console.log(obj); const value = obj.list[0].value; const time = obj.list[0].time; let color = "green"; if(value > 50) color = "orange" if(value > 100) color = "red"; codeTop.innerHTML = "本题考察频率: " +` ${value} `+" 最近考察时间:"+fmtDate(time); }else{ console.log("获取codeTop数据失败!") } }, onerror:function(e){ console.log("获取codeTop数据失败!") } }); }