← All posts tagged Juick

Tenno-Seremel

Ванга в треде. Представляю следующую жуйкоинновацию, её ещё нет, но, вангую, она будет когда-нибудь в будущем. Последний пост YGNCH должен висеть сверху во «всех сообщениях» (т.е. /?show=all) для залогинненых пользователей.

Tenno-Seremel

Юзерскрипт скрывает картинки *nsfw и *18+ постов (хватит изобретать новые теги, упоротые!) пустой рамкой. Для отображения нужно клацнуть мышкой. В комментариях к посту (и самом посте) скрываются вообще все картинки. По крайней мере должны, если разметка всё-таки одинаковая. Если этого не нужно, можно вызов juick_hide_in_comments() закомментировать.

Вроде работает. Потом ещё потестирую.

// ==UserScript==
// @id             juick-nsfw-hider
// @name           Juick NSFW hider
// @version        1.0
// @namespace      
// @author         Tenno Seremel
// @description    
// @include        http://juick.com/*
// @include        https://juick.com/*
// @run-at         document-end
// ==/UserScript==
(function(){
	var HIDE_TAGS = ['nsfw', '18+'];
	var placeholder = document.createElement('span');
	placeholder.setAttribute(
		'style',
		'background: #FFF; outline: 1px dashed #ccc; position: absolute; left: 0; top: 0; width: 100%; height: 100%; cursor: pointer;'
	);
	placeholder.setAttribute('title', 'Показать.');
	// add_to_child - add to .ir child (list) or directly (separate post with comments)
	function insert_cover(post_el, add_to_child)
	{
		var image_block = (add_to_child) ? post_el.querySelector('.ir') : post_el;
		if (image_block) {
			image_block.style.position = 'relative';
			var new_cover = placeholder.cloneNode(true);
			new_cover.addEventListener('click', remove_cover, false);
			image_block.appendChild(new_cover);
		}
	}
	function remove_cover(ev)
	{
		var target = ev.target;
		target.parentNode.removeChild(target);
	}
	function juick_hide_in_list()
	{
		var posts = document.querySelectorAll('#content > article');
		for (var i = 0, len = posts.length; i < len; i++) {
			var current = posts[i];
			var tag_els = current.querySelectorAll('.u > a');
			// skip first as it's a username
			for (var j = 1, len2 = tag_els.length; j < len2; j++) {
				var current_tag = tag_els[j].textContent.trim().toLowerCase();
				if (HIDE_TAGS.indexOf(current_tag) !== -1) {
					insert_cover(current, true);
					break;
				}
			}
		}
	}
	function juick_hide_in_comments()
	{
		var tag_els = document.querySelectorAll('.msgthread .msg-tags > a');
		for (var i = 0, len = tag_els.length; i < len; i++) {
			var current_tag = tag_els[i].textContent.trim().toLowerCase();
			if (HIDE_TAGS.indexOf(current_tag) !== -1) {
				var posts = document.querySelectorAll('#content .msg .msg-media');
				for (var i = 0, len = posts.length; i < len; i++) {
					insert_cover(posts[i]);
				}
				return;
			}
		}
	}
	juick_hide_in_list();
	juick_hide_in_comments();
})();

Tenno-Seremel

Ну что, чуваки, BL, похоже, никогда работать не будет, судя по отсутствию ответа на прямой вопрос #2692401/2 (вот это новость, да). С чем всех и поздравляю. Придётся все подписки выбросить и смотреть через вебморду, там у меня, по крайней мере, блокировка работает — на юзерскриптах. Займусь как доберусь до дома, пожалуй.