隐藏大量发帖无人回复者(就是你,广告哥)的帖子,自动加载下一页以凑到30贴以上
- // ==UserScript==
- // @name hide S1 ads (x)
- // @namespace http://tampermonkey.net/
- // @version 0.4
- // @description 隐藏大量发帖无人回复者(就是你,广告哥)的帖子,自动加载下一页以凑到30贴以上
- // @author whzfjk
- // @match https://bbs.saraba1st.com/2b/forum-*-*.html
- // @grant none
- // ==/UserScript==
- function killAds() {
- 'use strict';
- var post_threshold = 4;
- var replied_threshold = 2;
- var rst = document.evaluate( '//*[starts-with(@id, "normalthread_")]', document, null, XPathR###lt.ANY_TYPE, null);
- var post = rst.iterateNext();
- var collect = new Map();
- var remain = 0;
- while (post) {
- remain += 1;
- var name = post.querySelector('cite > a').text;
- if (!collect.get(name)) {
- collect.set(name, {cnt: 0, noreply_cnt: 0, posts: []});
- }
- var ent = collect.get(name);
- ent.cnt += 1;
- var reply = parseInt(post.querySelector('tr > td.num > a').text);
- if (reply === 0) {
- ent.noreply_cnt += 1;
- }
- ent.posts.push(post);
- post = rst.iterateNext();
- }
- for (var [k, v] of collect) {
- if (v.cnt > post_threshold && v.cnt - v.noreply_cnt < replied_threshold) {
- console.log("prepare to hide " + k);
- for (var p of v.posts) {
- p.hidden = true;
- }
- remain -= v.posts.length;
- }
- }
- return remain;
- }
- (function() {
- 'use strict';
- var nextPage = document.querySelector('#autopbn');
- for (var posts = killAds(); posts < 30; posts = killAds()) {
- console.log('need more posts');
- nextPage.click();
- }
- })();