您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
合并相同发贴人和时间的帖子内容
// ==UserScript== // @name 聚合相同用户和时间的帖子 // @namespace http://tampermonkey.net/ // @version 1.2 // @description 合并相同发贴人和时间的帖子内容 // @author You // @match https://nextptt.app/boards/*/post* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; function addMinutes(timeStr, addMinute) { let [month, day, hour, minute] = timeStr.match(/\d+/g).map(Number); minute += addMinute; if (minute >= 60) { // 处理分钟溢出 minute = minute % 60; hour += 1; } return `${String(month).padStart(2, '0')}/${String(day).padStart(2, '0')} ${String(hour).padStart(2, '0')}:${String(minute).padStart(2, '0')}`; } let posts = document.querySelectorAll(".css-vhp0yr"); let postMap = new Map(); posts.forEach(post => { let user = post.querySelector(".chakra-text.css-1rr669u")?.innerText.trim(); let time = post.querySelector(".chakra-text.css-emr6qx")?.innerText.trim(); let contentElem = post.querySelector(".chakra-text.css-1yejqes"); let content = contentElem?.innerText.trim(); if (user && time && contentElem) { let time1 = addMinutes(time, 1); let time2 = addMinutes(time, 2); let time3 = addMinutes(time, 3); let time4 = addMinutes(time, 4); let key1 = `${user}||${time}`; let key2 = `${user}||${time1}`; let key3 = `${user}||${time2}`; let key4 = `${user}||${time3}`; let key5 = `${user}||${time4}`; if (postMap.has(key1)) { let existingElem = postMap.get(key1).querySelector(".chakra-text.css-1yejqes"); existingElem.innerHTML += `<br>${content}`; post.remove(); } else { postMap.set(key1, post); postMap.set(key2, post); postMap.set(key3, post); postMap.set(key4, post); } } }); })();