🏠 Home 

pikabu.ru Comment Colorizer

Colorizes comments by rating


Install this script?
// ==UserScript==
// @name            pikabu.ru Comment Colorizer
// @description     Colorizes comments by rating
// @author          Sanya_Zol (Alexander Zolotarev)
// @license         Public domain
// @icon            http://s.pikabu.ru/favicon.ico
// @homepageURL     https://greasyfork.org/en/scripts/519-pikabu-ru-comment-colorizer
// @namespace       Sanya_Zol
// @version         0.2.5
// @include         http://pikabu.ru/*
// @include         https://pikabu.ru/*
// @run-at          document-end
// @grant           none
// @require         https://code.jquery.com/jquery-3.3.1.slim.js
// ==/UserScript==
(function($){
var myStyles = document.createElement('style');
myStyles.innerHTML = (
'.comment__body .comment__content{background: #fff;padding:0 3px;border-radius:4px;opacity:.9;}'
+ '.comment__body{padding:3px;margin-top:4px;margin-bottom:4px;border-radius:4px;}'
).replace(/;/g,' !important;');
$('body').append(myStyles);
var filterstr='.comment__rating-count:not([data-pkbcolored])';
var elfunc2=function(element){
var a = $(element).closest('.comment__body');
var content = a.find('.comment__content');
if(!content || !content.length)return false;
var c = ZolCalcColor( parseInt($(element).html()) );
a.css({backgroundColor:c});
// ZolGradient( a.find('td.comment_b'), 'top, '+c+' 0%,#ffffff 100%' );
$(element).attr('data-pkbcolored','yes');
return true;
};
var elfunc=function(){
var This=this;
if(!elfunc2(This)){
setTimeout(function(){
elfunc2(This);
},50);
}
};
// var ZolCalcColor = function(r){var sub = (255-Math.min( Math.round( Math.abs(r)*10 ), 255 )+256).toString(16).substr(1); return '#'+( (r>0)?(sub+'ff'+sub):('ff'+sub+sub) );};
var ZolCalcColor_max = 255/Math.log(1000);
var ZolCalcColor = function(r){
var sub = (255-Math.min( Math.round( Math.log(Math.abs(r)+1)*ZolCalcColor_max ), 255 )+256).toString(16).substr(1);
return '#'+( (r>0)?(sub+'ff'+sub):('ff'+sub+sub) );
};
var ZolGradient = function(a,gr){
// http://stackoverflow.com/a/16697618/870183
// a.css("background-image", "-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #333), color-stop(100%, #222))");
a
.css('background-image', '-webkit-linear-gradient('+gr+')')
.css('background-image', '-moz-linear-gradient('+gr+')')
.css('background-image', '-o-linear-gradient('+gr+')')
.css('background-image', 'linear-gradient('+gr+')');
};
$(filterstr).each(elfunc);
$(document).on('DOMNodeInserted','.comments',function(e){
$(e.originalEvent.relatedNode).find(filterstr).each(elfunc);
});
})(jQuery);