NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name pikabu_best_comments // @namespace http://pikabu.ru // @include http://pikabu.ru/story/* // @author ppaskannyy // @grant none // @version 1.2.1 // @match http://pikabu.ru/story/* // @match https://pikabu.ru/story/* // @copyright 2012+, ppaskannyy // ==/UserScript== $(function($){ // options var _fgAuthor = '#F76D59'; var _bgAuthor = '#FFAA9D'; var _fgPositiveMark = '#339900'; var _fgNegativeMark = '#CC0000'; var _bgColor = '#F8F8F8'; var _bgColorNew = '#E8E8FF'; var _bgColorSelected = '#3D438D'; var authorName = $.trim($('.info a:nth-child(3):first').text()); ShowCommentsPanel(); function ShowCommentsPanel() { var allComments = GetAllComments(); ShowComments(allComments); } function GetAllComments() { var allComments = []; $('.comm_wrap_counter').each(function(index, item){ var id = $(item).attr('id'); var markItem = $('td.info noindex :first-child', item); var userName = $.trim($('td.info > noindex > a[style=""], a[style*="color"]', item).text()); var mark = parseInt(markItem.text().match(/\-*\d+/)); var isRoot = $(item).attr('incl') == 0; // var hasImg = $('.comment_desc', item).find('img').length > 0; var hasImg = $('.c_img', item).length > 0; var hasGif = $('.preview_gif', item).length > 0; // if ($('a[href *= "youtu"]', item).length > 0) var hasYou = $('a[href *= "youtu"]', item).length > 0; var hasHref = ($('a[rel][href]', item).length - $('a[href *= "youtu"]', item).length) > 0; allComments.push( { id: id, mark: mark, isRoot: isRoot, isAuthor: userName == authorName, hasImg: hasImg, hasGif: hasGif, hasYou: hasYou, hasHref: hasHref }); }); // remove comments without mark allComments = allComments.reduce(function(prev, cur) { if (!isNaN(cur.mark)) { prev.push(cur); } return prev; }, []); // best desc, time asc allComments.sort(function(a, b) { return a.mark == b.mark ? (a.id < b.id ? 1 : -1) : ((isNaN(a.mark) ? 0 : a.mark) > (isNaN(b.mark) ? 0 : b.mark) ? 1 : -1) }); allComments.reverse(); return allComments; } function ShowComments(comments) { var wnd = $('<div class="hbc" style="width: 80px; top: 35px; bottom: 10px; right: 22px; overflow: auto; position: fixed; font-size:90%"></div>'); $(wnd).css('background-color', _bgColor); $('body').append(wnd); $.each(comments, function(index, comment) { // create item var item = $('<div class="hbc__item" style="text-align: right; padding-right:15px;"><a href="#">0</a></div>'); $('a', item).attr('href', '#' + comment.id); $('a', item).text(isNaN(comment.mark) ? '?' : (comment.mark >= 0 ? '+'+comment.mark : comment.mark)); // mark color if (comment.mark >= 0) $('a', item).css('color', _fgPositiveMark); else $('a', item).css('color', _fgNegativeMark); if (comment.isAuthor) { $('a', item).css('background-color', 'pink'); } if (comment.hasImg) { $('a', item).prepend('<span style="color: blue; font-weight: bold;">i </span>'); } if (comment.hasGif) { $('a', item).prepend('<span style="color: blue; font-weight: bold;">g </span>'); } // root if (comment.isRoot) { $('a', item).prepend('<span style="color: grey; font-weight: bold;">r </span>'); } if (comment.hasYou) { $('a', item).prepend('<span style="color: orange; font-weight: bold;">y </span>'); } if (comment.hasHref) { $('a', item).prepend('<span style="color: violet; font-weight: bold;">u </span>'); } // onclick event /* $(item).bind('click', function(){ Comment_OnClick(); setTimeout(function(){ShowCommentsPanel();}, 50); // ??????test notcorrect ! });*/ $(item).bind('click', Comment_OnClick()); // add item $(wnd).append(item); }); // highlight author name td.info > noindex > $('a:contains("' + authorName + '")').css({'padding':'0px','background-color':_bgAuthor}); } function Comment_OnClick() { $('.hbc__item').css('background-color', _bgColor); $(this).css('background-color', _bgColorSelected); } });