您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
I dont care.
当前为
- // ==UserScript==
- // @name hide douban feeds
- // @namespace http://houkanshan.github.io/
- // @version 0.5.1
- // @description I dont care.
- // @match http://www.douban.com/*
- // @require http://libs.baidu.com/underscore/1.3.3/underscore-min.js
- // @require http://libs.baidu.com/jquery/2.0.3/jquery.min.js
- // @copyright 2014+, Houkanshan
- // ==/UserScript==
- //
- // GistID: 3a48bf702e115e1ae966
- var blockedCSS = (function () {/*
- .blocked-feed .mod {
- height: 54px;
- overflow: hidden;
- opacity: 0.2;
- margin-bottom: 14px;
- }
- .blocked-feed .action-block:before {
- content: '+';
- }
- .action-block:before {
- content: '×';
- float: right;
- color: #ebebeb;
- margin-top: -16px;
- height: 12px;
- width: 12px;
- line-height: 12px;
- vertical-align: middle;
- display: block;
- cursor: pointer;
- }
- */}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];
- insertCSS(blockedCSS)
- var blockWords = ['月饼', '发工资', '某荚', '贵荚', '豌豆荚', '要参加线上活动', '宋冬野']
- var blockIdKey = 'blocked_feed_ids'
- var blockIds = localStorage[blockIdKey] ? JSON.parse(localStorage[blockIdKey]) : []
- var listSel = '.stream-items'
- var feedSel = '[data-sid]'
- var idBlockedSel = '[data-sid="' + blockIds.join('"], [data-sid="') + '"]'
- var list = $(listSel)
- var feeds = list.find(feedSel)
- var blockedFeeds = list.find(idBlockedSel)
- blockedFeeds = blockedFeeds.add(feeds.filter(function(i, el) {
- return _.some(blockWords, function(word) {
- return el.textContent.match(word)
- })
- }))
- blockedFeeds.addClass('blocked-feed')
- feeds.prepend('<span class="action-block">')
- list.on('click', '.action-block', function(e){
- var el = $(e.currentTarget)
- var feed = el.closest(feedSel)
- var sid = feed.data('sid')
- var hasBlocked = feed.is('.blocked-feed')
- if (hasBlocked) {
- blockIds = _.without(blockIds, sid)
- localStorage[blockIdKey] = JSON.stringify(blockIds)
- feed.removeClass('blocked-feed')
- } else {
- blockIds.push(sid)
- localStorage[blockIdKey] = JSON.stringify(blockIds)
- feed.addClass('blocked-feed')
- }
- })
- list.on('click', '.blocked-feed', function(e) {
- var el = $(e.currentTarget)
- el.removeClass('blocked-feed')
- })
- function insertCSS(css, options) {
- var elem = document.createElement('style');
- elem.setAttribute('type', 'text/css');
- if ('textContent' in elem) {
- elem.textContent = css;
- } else {
- elem.styleSheet.cssText = css;
- }
- var head = document.getElementsByTagName('head')[0];
- if (options && options.prepend) {
- head.insertBefore(elem, head.childNodes[0]);
- } else {
- head.appendChild(elem);
- }
- };