ugly_ / DDFoxy

// ==UserScript==
// @name         DDFoxy
// @namespace    http://your.homepage/
// @version      0.1.2
// @description  Чистим ДД от мудаков.
// @author       ugly_
// @include      http://darkdiary.ru/*
// @require      http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js
// @grant        GM_getValue
// @grant        GM_setValue
// @grant        GM_addStyle
// ==/UserScript==

var hide_single_post = function(pid) {
	var post = $('.' + pid);
	$(post).children('.leftPane').attr("style", "display:none");
	$(post).children('.rightPane').attr("style", "display:none");
	$(post).append(unblock_single_post_button);
	$('.show-post').bind("click", remove_from_ignore_single_post);
};

var show_single_post = function(pid) {
	var post = $('.' + pid);
	$(post).children('.leftPane').attr("style", "");
	$(post).children('.rightPane').attr("style", "");
	$(post).children('.show-post').remove();
};

var hide_users_posts = function(uid) {
	$('.uid_' + uid).hide(500);
};

var hide_users_comments = function(username) {
	$('article.block section.author a.avatar[href $= "' + username + '"]').parent().parent().remove();
};

var get_user_name = function(elem) {
	return $(elem).siblings("a[href $= '/profile']").attr("href").replace("/users/","").replace("/profile","");
};

var get_user_id = function(elem) {
	return $(elem).siblings(".messengerButton").attr("href").replace("/messaging/messenger?to_uid=","");
};

var get_post_id = function(elem, action) {
	if (action == 'show') {
		return $(elem).parent().attr('class').split(' ')[2];
	}
	return $(elem).parent().parent().parent().parent().parent().attr('class').split(' ')[2];
};

var add_to_ignore_single_post = function(event) {
	var pid = get_post_id(this);
	GM_setValue("dd_ignore_single_post", GM_getValue("dd_ignore_single_post", " ").replace(" " + pid + " ", " ") + pid + " ");
	hide_single_post(pid);
	event.preventDefault();
};

var remove_from_ignore_single_post = function(event) {
	var pid = get_post_id(this, 'show');
	GM_setValue("dd_ignore_single_post", GM_getValue("dd_ignore_single_post", " ").replace(" " + pid + " ", " "));
	show_single_post(pid);
	event.preventDefault();
};

var add_to_ignore_users_posts = function(event) {
	var user = get_user_name(this);
	var uid = get_user_id(this);
	GM_setValue("dd_ignore_users_posts", GM_getValue("dd_ignore_users_posts", " ").replace(" " + user + ":" + uid + " ", " ") + user + ":" + uid + " ");
	hide_users_posts(uid);
	event.preventDefault();
};

var remove_from_ignore_users_posts = function(event) {
	var uid = $(this).attr('class').split(" ")[2];
	var username = $(this).attr('class').split(" ")[1];
	GM_setValue("dd_ignore_users_posts", GM_getValue("dd_ignore_users_posts", " ").replace(" " + username + ":" + uid + " ", " "));
	$(this).remove();
	event.preventDefault();
};

var add_to_ignore_users_comments = function(event) {
	var user = get_user_name(this);
	var uid = get_user_id(this);
	GM_setValue("dd_ignore_users_comments", GM_getValue("dd_ignore_users_comments", " ").replace(" " + user + ":" + uid + " ", " ") + user + ":" + uid + " ");
	hide_users_comments(user);
	event.preventDefault();
};

var remove_from_ignore_users_comments = function(event) {
	var uid = $(this).attr('class').split(" ")[2];
	var username = $(this).attr('class').split(" ")[1];
	GM_setValue("dd_ignore_users_comments", GM_getValue("dd_ignore_users_comments", " ").replace(" " + username + ":" + uid + " ", " "));
	$(this).remove();
	event.preventDefault();
};

var block_single_post_button = '<a class="hide-post" title="Скрыть псто" href="#">Скрыть псто</a>';
var unblock_single_post_button = '<a class="show-post" title="Показать псто" href="#">Показать псто</a>';
var block_users_posts_button = '<a class="hide-users-posts" title="Зобанеть пидораса" href="#"><img width="13" height="13" border="0" src="/gfx/delete.gif"></a>';
var block_users_comments_button = '<a class="hide-users-comments" title="Развидеть комметы этого мудака" href="#"><img width="13" height="13" border="0" src="/gfx/entry_editor/del.png"></a>';

var ignored_users_posts = GM_getValue("dd_ignore_users_posts", " ").split(" ");
ignore_list = '<div class="ignore-list"><h1 class="section">Зобаненые мудаки</h1>';
for (var user of ignored_users_posts) {
	var uid = user.split(":")[1];
	var username = user.split(":")[0];
	hide_users_posts(uid);
	ignore_list += '<a class="show-users-posts ' + username + ' ' + uid + '" title="Разбанеть няшку" href="#">' + username + '</a><br>';
}
ignore_list += '</div>';
$('.friendManagement').append(ignore_list);

var ignored_users_comments = GM_getValue("dd_ignore_users_comments", " ").split(" ");
ignore_list = '<div class="ignore-list"><h1 class="section">Зобаненые флудерасты</h1>';
for (var user of ignored_users_comments) {
	var uid = user.split(":")[1];
	var username = user.split(":")[0];
	hide_users_comments(username);
	ignore_list += '<a class="show-users-comments ' + username + ' ' + uid + '" title="Разбанеть няшку" href="#">' + username + '</a><br>';
}
ignore_list += '</div>';
$('.friendManagement').append(ignore_list);

$('div.leftPane  :nth-child(3n)').append(block_users_posts_button);
$('div.rightPane > header.entryList > div.meta > span').append(' | ' + block_single_post_button);
$('article.block section.author').append(block_users_comments_button);
$('.hide-post').bind("click", add_to_ignore_single_post);
$('.show-post').bind("click", remove_from_ignore_single_post);
$('.hide-users-posts').bind("click", add_to_ignore_users_posts);
$('.show-users-posts').bind("click", remove_from_ignore_users_posts);
$('.hide-users-comments').bind("click", add_to_ignore_users_comments);
$('.show-users-comments').bind("click", remove_from_ignore_users_comments);
//GM_setValue("dd_ignore_users_posts", " ");
//GM_setValue("dd_ignore_single_post", " ");
//GM_setValue("dd_ignore_users_comments", " ");

var ignored_posts = GM_getValue("dd_ignore_single_post", " ").split(" ");
ignored_posts.pop();
ignored_posts.shift();
for (var post of ignored_posts) {
	hide_single_post(post);
}
$("a:contains('_DARK_SKY_')").text("Фохсе");
$("a:contains('dark_one')").text("Лось");
$("img[src^='/user_data/home/41/81950/avatar.jpg']").attr("src", "http://fantasyflash.ru/avatar/ava_smesh/image/avsmesh2.jpg");

$('.block').append('<a></a>');
var background_color = $('.block').css('background-color');
var background_color_active = $('body').css('background-color');
if (window.location.pathname.indexOf('/user') !== 0) {
	background_color_active = background_color;
}
var color = $('.block a').css('color');
var color_active = $('.block a:hover').css('color');

GM_addStyle ( "                                                                                                            \
.navbar-foxy {                                                                                                             \
background-color:" + background_color + ";                                                                                 \
    color:" + color + ";                                                                                                   \
    border-radius:0;                                                                                                       \
}                                                                                                                          \
                                                                                                                           \
#bs-example-navbar-collapse-1 > ul.nav.navbar-nav.navbar-right > li.dropdown.open > ul > li > a:hover,                     \
#bs-example-navbar-collapse-1 > ul.nav.navbar-nav.navbar-right > li.dropdown.open > ul > li > a:focus,                     \
.navbar-foxy .navbar-collapse > ul.navbar-nav > li > a:hover,                                                              \
.navbar-foxy .navbar-header > ul > li > a:hover,                                                                           \
.navbar-foxy .navbar-header > ul > li > a:focus,                                                                           \
.navbar-foxy .navbar-header > ul > li > ul > li > a:hover,                                                                 \
.navbar-foxy .navbar-header > ul > li > ul > li > a:focus,                                                                 \
.navbar-foxy .navbar-collapse > ul.navbar-nav > li > a:focus {                                                             \
  background-color: " + background_color_active + ";                                                                       \
  color: " + color_active + ";                                                                                             \
}                                                                                                                          \
 .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {                                                            \
            background-image:none !important;                                                                              \
}                                                                                                                          \
			                                                                                                               \
.navbar-foxy .navbar-collapse > ul.navbar-nav > li > ul > li > a,                                                          \
.navbar-foxy .navbar-header > ul > li > a,                                                                                 \
.navbar-foxy .navbar-header > ul > li > ul > li > a,                                                                       \
.navbar-foxy ul,                                                                                                           \
.navbar-foxy a {                                                                                                           \
	background-color: " + background_color + ";                                                                            \
    color:" + color + ";                                                                                                   \
}                                                                                                                          \
                                                                                                                           \
" );
$('.navbar-default').toggleClass('navbar-default navbar-foxy');
$('.navbar-foxy .navbar-right').prepend('<li><a href="#">Вверх</a></li>');