// ==UserScript== // @name Blocking Douban User Status // @namespace Zcc // @version 0.4 // @description Blocking Douban User's Status (including reposts) // @author Zcc // @match *://www.douban.com/* // @match *://www.douban.com/people/* // @copyright 2017+, Zcc // @downloadURL none // ==/UserScript== var blocked_UID, blocked_USR; // get blocking list function getBlocked(){ blocked_UID = JSON.parse(localStorage.getItem('douban_blocked_UID')) || []; blocked_USR = JSON.parse(localStorage.getItem('douban_blocked_USR')) || []; } getBlocked(); if(window.location.pathname === "/"){ // masking user posts/reposts on douban homepage via blocking list console.log("当前屏蔽的用户ID:", blocked_UID); console.log("当前屏蔽的用户昵称:", blocked_USR); var ids_blocked = new RegExp(blocked_UID.join('|')); usr_blocked = new RegExp(blocked_USR.join('|')); $(".status-wrapper").each(function(index){ // "this" directly points to DOM object in each method if (!blocked_UID.length || !blocked_USR.length) { return false; } var resharer = this.querySelector(".reshared_by > a"), usrname = resharer.title ? resharer.title : ""; if (this.dataset.uid.match(ids_blocked) || usrname.match(usr_blocked)) { // block the posts/reposts this.style.display = "none"; // $(this).hide(); } }); }else{ // modify blocking list on user homepage var blockStatus = $('.user-opt .user-group'), listEle = $('.more-opt .user-group-list'); if (!listEle.length) { return false; } // let matches = $('#profile img').attr('src').match(/ul(\d+)/), usrid; // if (!matches || matches.length < 2) return false; // var usrid = matches[1]; var usrid = people_info.id, // is this method stable? usrname = people_info.name; if (blocked_UID.filter(function (num, nickname) { nickname = usrname; return num == usrid; }).length) { // user already blocked blockStatus.append('已屏蔽'); listEle.prepend('