Замена логотипа VK
目前為
// ==UserScript==
// @name Vkontakte Logo for BC
// @namespace scriptomatika
// @description Замена логотипа VK
// @include https://vk.com/*
// @include http://*ozvs4y3pnu.cmle.ru/*
// @include http://*ozvs4y3pnu.nblz.ru/*
// @noframes
// @icon http://static.scriptomatika.ru/stylish/134972/badcomedian.jpg
// @author mouse-karaganda
// @version 1.0.11
// @grant none
// ==/UserScript==
var paramWindow = (typeof unsafeWindow == 'object') ? unsafeWindow : window;
(function(unsafeWindow) {
var console = unsafeWindow.console;
var isBadComedian = function() {
var result = /\/badcomedian\b/.test(location.href);
result = result || /\/\w+-25557243/.test(location.href);
result = result || /=25557243\b/.test(location.href);
return result;
};
var isEvgenComedian = function() {
var result = /\/evgencomedian\b/.test(location.href);
result = result || /\/\w+3664185/.test(location.href);
result = result || /=3664185\b/.test(location.href);
return result;
};
var renderStyle = function(content) {
var style = document.createElement('style');
style.setAttribute('type', 'text/css');
style.innerHTML = content;
document.body.appendChild(style);
};
var badcomedianLogo = ('http://static.scriptomatika.ru/stylish/134972/badcomedian.png');
var evgencomedianLogo = ('http://static.scriptomatika.ru/stylish/134972/evgencomedian.png');
var defaultLogo = ('https://vk.com/images/icons/favicons/fav_logo.ico?5');
renderStyle(
'.top_home_link .top_home_logo.comedian { background-position: 0 0; background-size: cover; width: 33px; height: 33px; margin-top: 5px; }\n\
.comedian.badcomedian { background-image: url(' + badcomedianLogo + '); }\n\
.comedian.evgencomedian { background-image: url(' + evgencomedianLogo + '); }'
);
var faviconSelector = ('link[rel="shortcut icon"]');
var topHomeSelector = ('.top_home_link .top_home_logo');
var get = function(selector) {
return document.querySelector(selector);
};
var setLogo = function(addClass) {
var topHomeLogo = get(topHomeSelector);
if (!/\bcomedian\b/.test(topHomeLogo.className)) {
topHomeLogo.className += (' comedian');
}
var oldIconReg = /(^| )\b\w+comedian\b/g;
if (oldIconReg.test(topHomeLogo.className)) {
topHomeLogo.className = topHomeLogo.className.replace(oldIconReg, '');
}
topHomeLogo.className += (' ' + addClass);
var favicon = get(faviconSelector);
// Проверим, отображается ли стандартная иконка
var isDefault = true;
if (/^https:\/\/vk.com\//.test(favicon.href)) {
isDefault = /\/fav_logo.ico/.test(favicon.href);
}
if (isDefault) {
favicon.href = eval(addClass + 'Logo');
}
};
var deleteLogo = function() {
var comedianReg = /(^| )\b\w*comedian\b/g;
var topHomeLogo = get(topHomeSelector);
topHomeLogo.className = topHomeLogo.className.replace(comedianReg, '');
var favicon = get(faviconSelector);
favicon.href = defaultLogo;
};
var changeLogo = function() {
if (isBadComedian()) {
setLogo('badcomedian');
} else if (isEvgenComedian()) {
setLogo('evgencomedian');
} else {
deleteLogo();
}
};
changeLogo();
unsafeWindow.setInterval(changeLogo, 300);
})(paramWindow);