您需要先安装一个扩展,例如 篡改猴、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.5
- // ==/UserScript==
- var BEST_TRESHOLD = 0.75,
- std_dev;
- var all = document.createElement('a'),
- best = document.createElement('a'),
- controls = document.getElementById('js-comments').querySelector('.b-comments_controls'),
- holder = document.getElementById('js-comments_holder'),
- style = document.createElement('style');
- style.textContent = ".is_hidden { display: none; }";
- document.body.appendChild(style);
- controls.querySelector('a[data-key="sort"]').className = '';
- // Кнопки управления
- best.textContent = 'лучшие';
- all.textContent = 'все';
- controls.appendChild(best);
- controls.appendChild(all);
- // Лучшее
- best.addEventListener('click', function(e) {
- e.preventDefault();
- if (this.className === 'active') {
- return false;
- }
- this.className = 'active';
- this.nextSibling.className = '';
- if (std_dev) {
- document.body.appendChild(style);
- } else {
- parseComments();
- }
- }, 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 parseComments() {
- var votes = [].slice.call(holder.querySelectorAll('strong.vote_result'));
- var abovenull = 0,
- rating_square_sum = 0,
- rating_sum = 0,
- shown = votes.length;
- var ratings = votes.map(function(el) {
- var rating = +el.textContent;
- if (rating > 0) {
- abovenull++;
- rating_sum += rating;
- rating_square_sum += Math.pow(rating, 2);
- }
- return { el, rating };
- });
- abovenull = abovenull || 1;
- std_dev = Math.sqrt((rating_square_sum / abovenull) -
- Math.pow(rating_sum / abovenull, 2)) || 0.1;
- for (var i = ratings.length; i--; ) {
- if (ratings[i].rating / std_dev < BEST_TRESHOLD) {
- var comment = ratings[i].el.parentNode.parentNode.parentNode.parentNode;
- if (!comment.classList.contains('comment')) throw new Error("Can't find comment.");
- comment.classList.add('is_hidden');
- shown--;
- }
- }
- best.setAttribute('title', shown);
- }