您需要先安装一个扩展,例如 篡改猴、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.1
- // ==/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--;
- }