E-H Better Gallery Hiding

Hide galleries based on flags, uploader, ongoing status. Displays a count notice.

Verze ze dne 06. 01. 2019. Zobrazit nejnovější verzi.

// ==UserScript==
// @name           E-H Better Gallery Hiding
// @description    Hide galleries based on flags, uploader, ongoing status. Displays a count notice.
// @author         Hen Tie
// @homepage       https://hen-tie.tumblr.com/
// @namespace      https://greasyfork.org/en/users/8336
// @include        /https?:\/\/(e-|ex)hentai\.org\/?(\?page=.*)?(\?f_.*)?/
// @grant          none
// @require        https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js
// @icon           https://i.imgur.com/pMMVGRx.png
// @version        2.4
// ==/UserScript==

/*───────────────────┬────────────────────────┬────────────────────────────────────┐
│  uploader hiding   │      title hiding      │            flag hiding             │
├────────────────────┼────────────────────────┼────────────────────────────────────┤
│ edit "var blocked" │ edit "var hidePixiv"   │ uses tag flagging hath perk        │
│ case insensitive   │ edit "var hideOngoing" │ pick tags and tick "hide" checkbox │
│ format:            │ format:                │                                    │
│ ['user1','user2']  │ true/false             │                                    │
└────────────────────┴────────────────────────┴───────────────────────────────────*/

var blocked = []; //list of blocked uploaders, case insensitive
var hidePixiv = false;
var hideOngoing = false;

//track removed galleries
var removed = 0;
var fRemoved = 0;
var uRemoved = 0;
var oRemoved = 0;
var pRemoved = 0;

//list view filters
if($('.gtr0').length > 1) {
	$('.gtr0, .gtr1').each(function() {
		var uploader = $(this).find('.itu a').text().toLowerCase(); //name of uploader
		var galTitle = $(this).find('.it5 a').text(); //title of gallery

		$.each(blocked, function(index,value) {
			blocked[index] = value.toLowerCase();
		});

		//check if gallery is flagged and hidden
		if ($(this).find('.it5 a').not('[onmouseover]').length !== 0) { //if gallery has no hover thumbnail
			$(this).remove();
			removed++;
			fRemoved++;
		}
		//check if uploader is blocked
		else if ($.inArray(uploader, blocked) !== -1) {
			$(this).remove();
			removed++;
			uRemoved++;
		}
		//check for ongoing gallery
		else if(/ongoing/i.test(galTitle) && hideOngoing) {
			$(this).remove();
			removed++;
			oRemoved++;
		}
		//check for pixiv gallery
		else if(/pixiv/i.test(galTitle) && hidePixiv) {
			$(this).remove();
			removed++;
			pRemoved++;
		}
	});
}
//thumbnail view filters
else if($('.id1').length > 1) {
	$('.id1').each(function() {
		var galTitle = $(this).find('.id2 a').text(); //title of gallery

		//check if gallery is flagged and hidden
		if ($(this).find('.id3 img[src="https://exhentai.org/img/blank.gif"]').length !== 0) { //if gallery cover is placeholder img
			$(this).remove();
			removed++;
			fRemoved++;
		}
		//check for ongoing gallery
		else if(/ongoing/i.test(galTitle) && hideOngoing) {
			$(this).remove();
			removed++;
			oRemoved++;
		}
		//check for pixiv gallery
		else if(/pixiv/i.test(galTitle) && hidePixiv) {
			$(this).remove();
			removed++;
			pRemoved++;
		}
	});
}

//if anything was removed show count
var removedInfo = 'Flagged:'+fRemoved+' Uploader:'+uRemoved+' Ongoing:'+oRemoved+' Pixiv:'+pRemoved;
if (removed > 0) {
	$('p.ip').append('<span>'+' | <span class="hiddenCount" title="'+removedInfo+'">Hiding '+removed+'</span></span>');
	$('.hiddenCount').css('border-bottom','1px dotted currentColor');
}