Colorizes comments by rating
// ==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);