您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
lepro total comments JS
当前为
// ==UserScript== // @name Lepro Total Comments JS // @description lepro total comments JS // @license MIT // @namespace leprosorium.ru // @include http://leprosorium.ru/comments/* // @include http://*.leprosorium.ru/comments/* // @include http*://leprosorium.ru/comments/* // @include http*://*.leprosorium.ru/comments/* // @copyright 2016, lynxtaa // @grant none // @version 1.2 // ==/UserScript== var BEST_TRESHOLD = 0.75; var controls = document.getElementById('js-comments').querySelector('.b-comments_controls'), comments_holder = document.getElementById('js-comments_holder'), style = document.createElement('style'), best = document.createElement('a'), all = document.createElement('a'), std_dev, best_count; style.textContent = ".is_hidden { display: none; }"; document.body.appendChild(style); // Кнопки управления best.textContent = 'лучшие'; all.textContent = 'все'; controls.appendChild(best); controls.appendChild(all); // Лучшее best.addEventListener('click', function(e) { e.preventDefault(); if (this.className === 'active') { return false; } else if (std_dev) { document.body.appendChild(style); } else { var votes = comments_holder.querySelectorAll('strong.vote_result'); var rating; best_count = votes.length; std_dev = (getStdDev(votes) || 0.1); for (var i = 0; i < votes.length; i++) { rating = parseInt(votes[i].textContent); if ( rating > 0 && (rating / std_dev) < BEST_TRESHOLD) { hideComment(votes[i]); } } this.setAttribute('title', best_count); } this.className = 'active'; this.nextSibling.className = ''; }, false); // Показать всё all.addEventListener('click', function(e) { e.preventDefault(); if (std_dev && this.className !== 'active') { this.className = 'active'; this.previousSibling.className = ''; document.body.removeChild(style); } }, false); // Среднеквадратическое отклонение function getStdDev(votes) { var abovenull = 0, rating_square_sum = 0, rating_sum = 0, rating; for (var i = 0; i < votes.length; i++) { rating = parseInt(votes[i].textContent); if ( rating > 0 ) { abovenull++; rating_sum += rating; rating_square_sum += Math.pow(rating, 2); } else { hideComment(votes[i]); } } abovenull = (abovenull || 1); return Math.sqrt( (rating_square_sum / abovenull) - Math.pow((rating_sum / abovenull), 2) ); } // Прячем function hideComment(el) { while (!el.classList.contains('comment')) { el = el.parentNode; if (el === document) { throw new Error('Can\'t find comment container.'); } } el.classList.add('is_hidden'); best_count--; }