您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
多合一功能脚本:1. 过滤低评论新闻 2. 过滤疑似广告 3. 智能后台加载(5次/轮) 4. 新标签页打开新闻详情。5. 光标悬停新闻卡片显示手型
// ==UserScript== // @name 【中羽在线】新闻过滤与自动展开 // @namespace https://github.com/realSilasYang // @version 2025-9-13 // @description 多合一功能脚本:1. 过滤低评论新闻 2. 过滤疑似广告 3. 智能后台加载(5次/轮) 4. 新标签页打开新闻详情。5. 光标悬停新闻卡片显示手型 // @author 阳熙来 // @match https://www.badmintoncn.com/* // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAIAAAAlC+aJAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGYktHRAD/AP8A/6C9p5MAAAABb3JOVAHPoneaAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDI1LTA5LTA0VDE0OjIzOjQ3KzAwOjAw4mf5PgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNS0wOS0wNFQxNDoyMzo0MyswMDowMGd1ZZEAAAAodEVYdGRhdGU6dGltZXN0YW1wADIwMjUtMDktMDRUMTQ6MjM6NDcrMDA6MDDEL2BdAAAAWmVYSWZNTQAqAAAACAAFARIAAwAAAAEAAQAAARoABQAAAAEAAABKARsABQAAAAEAAABSASgAAwAAAAEAAgAAAhMAAwAAAAEAAQAAAAAAAAAAAEgAAAABAAAASAAAAAEfUvc0AAASSUlEQVRo3u1aeXTV1Z3/3Pvb3paVLJDFJJCEsIYtQAiIpSCirT2VXceKVabWbojK1Ho6ejrTqaVSa08dpjOMC5UtpbZjKQSTakXDFrIIhAAJkBBeIMtL8pK3/LZ77/zxSAgWNBGoM+f0c+5555633N/3c7/f7/1+7/f7iBACtxIcvH9OQa98MJjHkk//Cv30r/zfxt8JfN7PuiWL9vuVrusA7Ru3BOTWO/EVXEXi/4UTm6b5ScL1j8G8f6sJcMACTEAHum0TgGHpDWdO3tINumkEOGAAPQKtwHnbDstqO6z3yssm5ufPuX3WW2/93rYZAJsj8soExAB8bNc5eGRgEOPm+IAF9Ah0CfzPu+93hnrdqrRobmGyJJYsvPPAX444XO65c+e+uGFD3ug8mQKAaTNFurJ3hFwxl6sD399KAwwwCMoqj7XolumI8dnK7g+rhRpX+l5FyXvvrVx5f2lpWf7E/Oee++eIugihnIATcMI54f1bzq/y+UHh5mggBBzrCvzxUFVAVqA6mGXScGj26Jy5OWnxgAx4L15av/5nGzduHDVqVGnpOykpI8TlY4gDINdx2FuuAcuyAHDOncCJ47VgDERissadHh4VV3n+QhAIAwBSRwx/+aUNJ+tODRuWmJmZ9fbbuzjjEohhGGSQx82tIMAYE0IILn79xuavL5h/8M/vxLqcnFsmQVAmneC1fr21J8QEbI4uf/C2jPSSkpJXX3195coVTzyxBoBLczFui0EFhWtjyCbE/4p3fX39xEmT9VBQycz59s9+jhEpPi5MyrkVmpSYONcTbTY23TG3yGKCEGJZllNT/N3BL945z+1xlZaWqJLGwHAtQ7r5JnRNF1u/fj03bAd1Wo3nj+x5x22b3O61hS5palt3T1RiSm1DU3XNCUkilMKpKQA8HveRw4dmzpw5derUS+2XGLMBfEY9iEGDDRj9OHHseHxMrEbUaOJR4IGWuuSHLzx77PDqmvIn6uof33toc1WLX4hvfntdp6+bC9HDzchajDFb2HvLSvKn5FdUVdjC7urp0s3w4OWJYGgaoAAVoAIQAIcwre1vbunxdwthhUVQpYDRsfO/f32m6pCTW37vRUVxfNTUeCaI7z39/X94aJUFyEQK9eqwwBiTIM2ePae4uPjpp54qKy2NiorSFMdQTXoIBKjoC38M4IAAofIbm1596vHvHSovn1A4PigHlBgFvZe2v/hztHVptiVpQgzTdh05Entb3MJ77l2+eKkT1KU5oEFRFAAuzZU9KrukpGRHcfHevXtNZgz5WB+sqnif9Vhc2JdNauum10fGJwu/aXmbOzqq5yzMhQYAkICpY9f98U/PHTiyuvTdb+zas/3oSZ8l7l+x6tGVD4keo39VW9j25eXEt77z+LbibZxzzvktMKHLiYrgVBjcNIAQZRt+9fLTa5+CUGRLjw6e3lfy2nceWQWoUGScbvjls0/6G0/EaBiRllzdeO5Ea+d//ua18xdb//lfnrP1MOcmgyVB0sORzM98+Ze/unChZevWrZxx0zQ5H1xUHqrTmKbZ6e8OC/HBwf3TRo0RbUbnxl1Hn/yBb/PTVsUvbF/F9uJNAIhLgywjI33Nzu3P7Ht/bUnpmi1v+YUIMpGekfbihn8TwuoJdkXW1E0jZOjtvg5b8E2bNhUXFwshent7ByPPEOOAAAjs3l5G8My31nxt1p2us74jG3fESyHd7Z3z+Hzty6M9E+6qqep+YPmaEw11RPZIqQlff/YHcePH+7t6shXnNxYUeVvq827L3fgfv1z96OOhYNjldksgESUA0BT17bff9ng88+bNG4xE0vPPPz842SNuK8BBHapMRIJQpzgS973y+kQSnaQLpSfQ5W/MKnKfa9s/ZsLkxx58+Myxs2frG/WQv/JgeUJububInLaWSw0XvLdPmXbHPfMefuiRxLjEosJCwoStG5IiM85URTUtMzcnp6WlpbW1NTU19cYJcODyqSnAAUHAOSxLQnpa1tGX3rCqGoZTh9ndMSpmeFdXw4jJclyC399W4cyKum/Z1ydMmPqH3b+1w8FT+ysEdc8qvKPDb55s880tnFkwtXDVihWJntjpkwskm4IR2SEzQJUkQkhKSkp7e3t7e3tSUtLAZPszEBBXTzgEB4FNuKyj9lfbkrptBHTJ5qqhchEK4FxMUaYwjvm66z0JKaMnTV+y9CtHa081NbacP1DZ7PPnjc8XDkezr2v57ILcceMeW706K2lE/szpUAk4BAElsCxLVdWEhATbtnt6emJjY2+EQOT0EQCBIAQgjBBBiADVSaD0EL3o50FD4Q4GD6Gei76mtOkjlRQ/d/q83qNuF4tJyF696snRGZkl75S1nD710bGqnPE5XLKaOjvuXrBgyphxDz36tXBvcP7dd8IEDZvQJEmSTNNWZCUqKiqshwkhqqreoA9cvvARgQgTygGTJHfxug8rnFRVuEPlHlWVVIdgeotrVpJpNjk0o7vrkscZK8nKhEkzv7XqgfqzjTXvlh7+YF9KVkZMXFR3b8998+cnj0j78U9/eqmx+e6F98AjsaBJVUmSKCEghERHR5umqSjK9Qxp8E4MQggI9fl7XW4XwvzcvsNx8+e3flhp9RpuSaVWWCYhxkLeDm/qhDQtMZpYbXGxuNhQrfFOOU5zRKUtW/rw5IJZtdW1f95S3OJrTc1K74I9/657clLTN/zrC++VlHx54Zecw6JAwBkIvXzVlGXZsixZlm+UAAAOaE5HV9Bo93fX1hxvLz1Y+MPvn9+zL9TtdzJDYaYAOCW2ZUaNGynLXtCOaCcXrAd2gMoGFEdeZtY3H3osPX3k1p3b3yndG5s2ghGxeNE9Y8bkvfCLn27fXpybl5szOodQMFtElEAIkSQJV1+dPxMBAU7AgV37yzfueislM7Om+J2Yo80Fa9ZU/WlPnMGdNreoxIh6vsGXOTId2d2QfNDcEjf0QCPXvTLrRrQHIWnSlFlr1z0dtuyNr/x7W0e7Gh919113T5oy9Y3Nm7dsebO5+cKM6TOjot39mo/gJmiAEZy6dKms+kgowSMEvT1zwluvFw+zyBdWPdpUVkbBTQkAQYj2dHgTZqQiSkAPQoRkBAULdHQ0OliAJiYQ1UW5ftfshUuWL66sqdrz3p99oZ4VS1fOnDVzx+bN1dWVxb/9rapoaempUVFR19v7y/SGFIlDwJv7yj6sr7Pjo0iX8dWk/J6SGm/xB8unFebeXnB440uaGXJbphzu6XF2jXpwnPurCVBKBW0krmHhUMh2EAsuiaR64qdLqfeCZAOpOtw1F8+9umVbbHTcVxYuPHuk6tH7H7Btm3Oempq6aNGiyZMnJyYmLl269CYQ0IHtH5T97sAHcWNGhrrNdN2xIn3moR9uEnXnJ4/Lvn3e7Lrdu42WphgjIDvJWcU/9/kFGHcYUfWwwzB7ArLOFRAhmzyFOWckpd8J13iDxWtSbiuM097mC2cb89Myaw4cXr16dSgUAuB0OsPhcEZGRmNj400wIQpIpn3R6w2AEVUWpvDIrmk5Yw+UlZs+7mvomjLzDn+Q9XYFraAxXHGZFxvdc8egqwluATmoSgwEYXAu6dGu3s62mkB3fYxbBnW4qFuTrOz0NAdRC2cU5uXllZSUCCEMw5gwYUJJSUlcXNz1RBo8OAWfmJM7Z+w4o73Do0jULVU2n3BOyihY+aVuE83ewO92HRg+arqUmNdhOnQ/9Va1dW6uQ/Ii+FXYKuDWqOpQiUoNETwXpzS6xEftjX8ItZVSs26Em8dJJDE2BoCu64FAgFL6zDPPHD16NC0t7XoyDUkDwtbDVFZHZ2b5WfBM41mqyDZn9U1nH1hyf3N5ndINSY5uqPemZGUrLjdjJgG8p1puS07H5FRLChOLEwJVopoQCpclBgITJMDQKlOdOjMoSfK1dj3w4NfWr1+/ePHibdu23XfffZIkRZz4mq48eA1wgAvCf/Paxs5A27Kiu+bk5xv+rugEz6lwy65zBx558YlG2h5gZnfA+qjO22U67ZgROk10G9nvvnwQvjGKq6gnGGOaTgg3kd0gTggoCCikw9f+kW15Afz46X8aN2ZMW1tbRUXFjh07RueOjiQRlF5XzqFd6i0J0SNH/OK1jRaCC6bOmD+twAz1RI9M2t108EPHyZWvPNat+lWZch3nmtrPtPfy6FRLSVet0bu/uwedBW7neENNgK1Bl8AoQAU1BeHJSbkf1TTPyJn6x917frPlzf3790+aNIkQIsnSp4r06SYkhCAkks8JQ9i5WfnF7/7h+Km66dOmj00dayq8/lIzV8TJptqFCxemu4YfLNtPueRUHLYkfN0BbiguVxzTZXT5E+6eLZuBYCDs79VlV6JJ3WHqDmPEwarAxv86vPapn73w4qvZYyeGw+HIlZ/ZzDCMyByfLRILITjjlNJIMkepaoNNnTN7w5ZNZzsuzZ5YOCUxXY2PunC+yRkbc+Bw5ZLF91EiTlYdTY1PptxBhGpCBI2wFRKNDU2pWox7ySrhDwbcSUZ05iVzWEWdqKmTXbFznv3RjuzcWYGQUDVNkeXIHYRQ0p8CfcZIHNn+vh8TADYYgaIlRL22dWun4c8aPy47OjU5NaHlUmtHe0eHr2PpinsbjjW0NHklyA7FZTDOIUlcZVQ5dvZcisMRu3Be9PCcv1Sc2bbzUGx8wcOP/Dg9Y46qjAyHqDvKfVVraeB0qAR0XeecExBKaf+PCQhlzEXV8Sk575bv21Ze5jX9RflT8lzJhbkTVSoOVFW3+XsfWffgqdpzrc2NMQ63HZIpdzJKQwpixmZlf7HIjvfsLq/p9bn/cdVzswq+TNgwVR0uGDiTZC3SPrgBAn0Wj2AwGNn7j+WxRBAKyIRkZGZu2vq6LdNj1UemFRa4qRaXHJuRlVl+6EBnZ+jB7y6tqzh6pv60qjo45bpi+l16csHIKd/8ComNSUjPmTV5gUpjqeohXOMcVIKswdZBBz7tMxDos3hUVlZmZmT2OxD6ur8sspzFU+MTD71fXrX/UGz68N/v2xs9enhabHpubPLkiXnHmk+2d3aueHCZ26VcbDvTyztix0QVLS/6wsOLkOQ0VKrJbhmgkX6TBCIxEAaAygyEABT9mfQnpqL461yI2UySJcMw9uzZc++99w48gIUQnMCGIAKqLSBwqPrIzC/OcU/NGT23IEjtR5avWD5mThRUG6z5zLmRamKsazg6BGwBD0EMgROQuClTAH13xEj1ivVVLSmgoL/cNojWx1XmIYSgEgXQ09PT1NR0+Qn8sk4i+8AhBIGQIHPMmDEjd1Tu6X21Z11q1vzpL+94rWZS9Yo77pwTm52XMcwlx8EOI9oJTgDADAIUslO9Uimw+pr4ygAhPl3ogbi6ed7nAKFQqL29PTJnjH1ca5HqCgGAEXEJcMnd5TU1e9+PVz3Hzp750csvnmk/Z3E7CF+QB6BEQkgIUQo0rU/vQ5NysAT6TS0jI6OyspIzDmCgG1BA4VA4HETSQyHOeUJCAgwbvRAHT3v3ViawaCMseQOsh7oJEh1qAgBogMNx5Vmi3zZkgALkcuVJ9H00lE79dWujy5Yte+WVV4QQH6sVDyxZtrW1DRs2DACNhHwNGBn31I6NZ0SwW4iQEIYQtmCsb3xS6bt/DBHXJbBz586kpKRQKHTN+m5ksnbtWgCapgAgMiCT4eNz2lhYCGEJHhIsJNh1CfDrjJtFQAgxffr0adOm9Ys7ELZlP/nkk84IXJrDrUmampGVdb6xSRi2CJnhTr9uGvrnS+DChQsAkpKSNm3aVFtb297e3tHRUV1d/ZOf/CQ3N7ffCB0OB4DscWOamppEwBQBJnQhTMEs2xKcXbu3djVuBQHOOWOssrIyUhWLi4tLTU2NlFo1TXM4HC6Xq5/DrNlF3o42IYTo1oUQwhCCCcEjIn9OBESf+1ZVVRUVFfXL6nQ6I2UmSmlksm7dOosxIYSu60K/LIJ5Rd5BELgBfBIB0zTD4ct9z5deeik/P9/pdEZoaJqWkZGxevXq48ePR3jqEfksHpHe+FsRGFRZJRKMmc1O159uamqilCYmJqalpTmdTlVVVVXlfSc45QKERGJc37E/oNUVyREGHPB/3fcfKgZFIBAIaJomyzJnXJIlIUSk2tqfKQkhROTe3RfLB9L//AlERLRtW5Ik0zQjx07/+1ctd4208dMJDMRQyciD/B4hRFEUIUTEcQFE2qCf3P/5G+BG//AkrmEzH8Ot1cCN/uXsc9fA3/87/XnjfwGGUhrV4mKBvAAAAABJRU5ErkJggg== // @license GNU GPLv3 // @grant GM_openInTab // @grant GM_addStyle // @run-at document-start // ==/UserScript== (function () { 'use strict'; // -------------------------------------------------------------------------------- // 模块0: 添加自定义样式 // 作用:让新闻列表和热点新闻在鼠标悬停时显示为可点击状态 // -------------------------------------------------------------------------------- GM_addStyle(` .news_list, .newst.hot { cursor: pointer; } `); // -------------------------------------------------------------------------------- // 模块1: 新闻过滤 (评论数) // 作用:只保留评论数 >= 20 的新闻,低于此数的直接移除 // -------------------------------------------------------------------------------- function shouldKeep(box) { // 找到评论图标 const pjImg = box.querySelector('img.news_pj'); if (!pjImg) return false; // 评论数在图标的下一个文本节点 const nextNode = pjImg.nextSibling; if (!nextNode || nextNode.nodeType !== 3 || !nextNode.nodeValue) return false; // 转换为数字 const commentNum = parseInt(nextNode.nodeValue.trim(), 10); // 保留评论数 >= 20 的新闻 return !isNaN(commentNum) && commentNum >= 20; } // 过滤单条新闻 function filterSingle(box) { if (!shouldKeep(box)) { box.remove(); } } // 过滤整个页面的新闻 function filterAll(root = document) { root.querySelectorAll('.news_list').forEach(filterSingle); } // 监听 DOM 变化,动态过滤新加载的新闻 const newsObserver = new MutationObserver(mutations => { for (const m of mutations) { for (const node of m.addedNodes) { if (node.nodeType !== 1) continue; // 只处理元素节点 if (node.classList && node.classList.contains('news_list')) { filterSingle(node); } else { filterAll(node); } } } }); // -------------------------------------------------------------------------------- // 模块2: 过滤疑似广告内容 // 作用:移除包含特定广告关键词的新闻 // -------------------------------------------------------------------------------- function filterExclamationNews() { const mainNewsContainer = document.querySelector('div.news.main'); if (!mainNewsContainer) return; // 定义广告关键词(大小写不敏感) const adKeywords = [ '!', '品牌', '胜利', 'VICTOR', 'YONEX', '尤尼克斯', '李宁', '薰风', '薰', 'KUMPOOO', '川崎', 'Kawasaki', '得物', '波力', 'BONNY', '极光', '亚瑟士', 'ASICS', '耐克', '欧击', '蟹羽', '球拍', '球鞋', '羽鞋', '球线', '新品', '产品', '上市', '发布', '评测', '测评', '赏析', '试打', '试穿', '上手', '限量', '抢先', '纪念', '隆重', '报名', '签约', '代言' ]; // 转换为正则(忽略大小写) const adRegex = new RegExp(adKeywords.join('|'), 'i'); // 遍历新闻列表 const listItems = mainNewsContainer.querySelectorAll('li'); listItems.forEach(li => { if (li.textContent && adRegex.test(li.textContent)) { li.remove(); // 删除匹配的新闻 } }); } // -------------------------------------------------------------------------------- // 模块3: 混合模式自动点击展开 // 作用:自动点击“加载更多”按钮,最多点击5次 // -------------------------------------------------------------------------------- let isInitialLoad = true; // 延迟函数 function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } // 批量点击“加载更多” async function performClickBatch() { console.log('开始新一轮自动加载(最多5次)...'); const CLICK_LIMIT = 5; const CLICK_DELAY = 500; // 每次点击间隔 0.5 秒 for (let i = 0; i < CLICK_LIMIT; i++) { const currentButton = document.getElementById('loadingButton'); if (currentButton && currentButton.offsetParent !== null) { currentButton.click(); console.log(`后台自动点击第 ${i + 1} 次。`); await sleep(CLICK_DELAY); } else { console.log('“加载更多”按钮消失,提前结束本轮。'); break; } } console.log('本轮点击完成。'); } // 监听“加载更多”按钮是否进入视口 const buttonObserver = new IntersectionObserver(async (entries) => { const buttonEntry = entries[0]; if (!isInitialLoad && buttonEntry.isIntersecting) { console.log('检测到您已滚动到底部,再次启动自动加载...'); const button = buttonEntry.target; buttonObserver.unobserve(button); await performClickBatch(); const buttonAfterClick = document.getElementById('loadingButton'); if (buttonAfterClick) { console.log('加载完成,进入“待命”状态,等待您下一次滚动...'); buttonObserver.observe(buttonAfterClick); } else { console.log('所有内容已加载完毕。'); } } }, { threshold: 0.1 }); // -------------------------------------------------------------------------------- // 模块4: 点击新闻区域打开新标签页 // 作用:点击新闻列表项时,在新标签页打开新闻详情 // -------------------------------------------------------------------------------- function handleNewsClick(event) { const newsList = event.target.closest('.news_list'); if (!newsList) return; // 如果点击的是标签(如分类标签),则不触发 if (event.target.closest('.gray_label')) return; // 获取新闻 ID const newsIdElement = newsList.querySelector('.newst'); if (!newsIdElement) return; const newsId = newsIdElement.getAttribute('title'); if (newsId) { event.preventDefault(); event.stopPropagation(); const url = `https://www.badmintoncn.com/newsm.php?a=view&id=${newsId}&mag_hide_progress=1`; console.log(`打开新标签页: ${url}`); GM_openInTab(url, { active: true }); } } // -------------------------------------------------------------------------------- // 模块5: 脚本初始化 // -------------------------------------------------------------------------------- document.addEventListener('DOMContentLoaded', async () => { // 1. 启动两种新闻过滤 filterAll(); // 过滤低评论新闻 filterExclamationNews(); // 过滤疑似广告新闻 newsObserver.observe(document.documentElement, { childList: true, subtree: true }); // 2. 启动点击打开新标签页功能 document.body.addEventListener('click', handleNewsClick, true); // 3. 启动混合模式加载 let loadButton = document.getElementById('loadingButton'); while (!loadButton) { await sleep(500); loadButton = document.getElementById('loadingButton'); } if (isInitialLoad) { await performClickBatch(); isInitialLoad = false; } const buttonToObserve = document.getElementById('loadingButton'); if (buttonToObserve) { console.log('首次加载完成,进入“待命”状态,等待您滚动到底部...'); buttonObserver.observe(buttonToObserve); } }); })();