Greasy Fork is available in English.
置顶v2ex高赞回复
// ==UserScript== // @name topPost // @namespace http://tampermonkey.net/ // @version 0.2 // @description 置顶v2ex高赞回复 // @author yuyinws // @match *://v2ex.com/t/* // @match *://*.v2ex.com/t/* // @grant GM_registerMenuCommand // @grant GM_unregisterMenuCommand // @grant GM_getValue // @grant GM_setValue // @icon https://www.v2ex.com/static/favicon.ico // @run-at document-end // @license MIT // ==/UserScript== (() => { // star限制值 let starLimit = GM_getValue("starLimit") || 5; // 菜单注册 GM_registerMenuCommand(`star限制值:${starLimit}(点击修改)`, () => { let starLimit = prompt("请输入"); GM_setValue("starLimit", starLimit); }); let postMap = new Map(); let topEl = document.createElement("div"); topEl.className = "box"; let refEl = document.querySelector("#Main").childNodes[5]; let sepEl = document.createElement("div"); sepEl.className = "sep20"; let cellEl = document.createElement("div"); cellEl.className = "cell"; cellEl.innerText = "高赞回复"; // 获取所有有star的回复 document.querySelectorAll("div[id^=r_]").forEach((item) => { let clonedItem = item.cloneNode(true); if (clonedItem.querySelector(".fade")) { let star = Number(clonedItem.querySelector(".fade").innerText); if (star >= starLimit) { postMap.set(clonedItem, Number(item.querySelector(".fade").innerText)); } } }); // 排序 const sortMap = new Map([...postMap].sort((a, b) => b[1] - a[1])); if (sortMap.size > 0) { topEl.appendChild(cellEl); for (let [key] of sortMap) { topEl.appendChild(key); } refEl.parentNode.insertBefore(sepEl, refEl); refEl.parentNode.insertBefore(topEl, refEl); } })();