您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Hide dash posts of people who reblog themselves
- // ==UserScript==
- // @name tumblr.com Hide self-reblogs
- // @description Hide dash posts of people who reblog themselves
- // @icon http://38.media.tumblr.com/avatar_fee7ff3e9d6a_48.png
- // @version 0.2.1
- // @license GNU General Public License v3
- // @copyright 2014, Nickel
- // @oujs:author Nickel
- // @grant none
- // @include *://www.tumblr.com/dashboard*
- // @namespace https://greasyfork.org/users/10797
- // ==/UserScript==
- // TODO: add visible counter
- // TODO: also block reblogs from blogs you follow??
- (function(){
- var hidden = 0;
- // don't run in frames
- if( frameElement ){ return; }
- function work() {
- //console.log("hider working!");
- var i, j, child_post, child_reblog;
- // iterate through all posts
- var elm = document.getElementsByClassName("post_info_fence");
- for (i=0; i<elm.length; i++) {
- if( elm[i].workedOn === true ) { continue; }
- elm[i].workedOn = true;
- child_post = "";
- child_reblog = "";
- // look for reblog child index, skip if not found
- for (j=0; j<elm[i].children.length; j++) {
- if( elm[i].children[j].classList.contains("reblog_source") ) {
- child_reblog = j;
- }
- }
- if ( ! child_reblog ) { continue; }
- // look for post child index
- for (j=0; j<elm[i].children.length; j++) {
- if( elm[i].children[j].classList.contains("post_info_link") ) {
- child_post = j;
- }
- }
- // compare tumblr-delivered attributes, if match is found, it's a self reblog
- // hide it.
- if ( elm[i].children[child_post].attributes[0].value ==
- elm[i].children[child_reblog].children[1].attributes[0].value ) {
- elm[i].parentNode.parentNode.parentNode.parentNode.parentNode.style.display = "none";
- hidden++;
- console.log("we've hidden " + hidden + " self-reblogs");
- }
- }
- }
- // work whenever page changes
- var whatToObserve = {childList: true, attributes: true, subtree: true, attributeOldValue: true, attributeFilter: ['class', 'style']};
- var mutationObserver = new MutationObserver(function(mutations) {
- mutations.forEach(function(mutation) {
- if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
- work();
- }
- });
- });
- mutationObserver.observe(document.body, whatToObserve);
- })();