Ответ на пост «Минусы»
Я медленно-медленно расчехляю свой минусомет 😁
Ответ на пост «Минусы»
Возврату минусов быть? Но, кажется, не долго... Не уверен, что пост не снесут, но я лишь расширил работу каких-то аналогичных пользовательских скриптов и постов ранее.
Оценки отображаются как в обычной, так и в мобильной версиях сайта. Вся информация об оценках расположена, как ни странно, в html. Всё что делает скрипт - это достаёт эту информацию и показывает в других, новых блоках.
Установка:
1. Для своего браузера установить расширение Tampermonkey
2. Открыть Tampermonkey и создать новый скрипт
3. Вставить скрипт ниже и сохранить
4. Можно перезагружать страницу наслаждаться видимыми оценками
/// ==UserScript==
// @name Pikabu Panamka Check
// @namespace http://tampermonkey.net/
// @VERSION 1.0
// @Description Display post & comment stats
// @Author Pikabusher
// @match *://pikabu.ru/*
// @GrAnt none
// ==/UserScript==
(function() {
'use strict';
function addPlusesAndMinuses() {
document.querySelectorAll('.story__rating-block').forEach(block => {
if (block.getAttribute('data-custom-added') === 'true') return;
const pluses = block.getAttribute('data-pluses');
const minuses = block.getAttribute('data-minuses');
const ratingCount = block.querySelector('.story__rating-count');
if (!ratingCount) return;
const plusEl = document.createElement('div');
plusEl.textContent = pluses;
plusEl.classList.add('custom-rating-plus');
plusEl.style.textAlign = 'center';
plusEl.style.fontSize = '0.9em';
plusEl.style.color = 'green';
const minusEl = document.createElement('div');
minusEl.textContent = minuses;
minusEl.classList.add('custom-rating-minus');
minusEl.style.textAlign = 'center';
minusEl.style.fontSize = '0.9em';
minusEl.style.color = 'red';
ratingCount.parentNode.insertBefore(plusEl, ratingCount);
if (ratingCount.nextSibling) {
ratingCount.parentNode.insertBefore(minusEl, ratingCount.nextSibling);
} else {
ratingCount.parentNode.appendChild(minusEl);
}
block.setAttribute('data-custom-added', 'true');
});
document.querySelectorAll('.comment__rating').forEach(comment => {
if (comment.getAttribute('data-custom-added') === 'true') return;
const pluses = comment.getAttribute('data-pluses');
const minuses = comment.getAttribute('data-minuses');
const ratingCount = comment.querySelector('.comment__rating-count');
if (!ratingCount) return;
const plusEl = document.createElement('div');
plusEl.textContent = pluses;
plusEl.classList.add('custom-comment-rating-plus');
plusEl.style.textAlign = 'center';
plusEl.style.fontSize = '0.75em';
plusEl.style.color = 'green';
const minusEl = document.createElement('div');
minusEl.textContent = minuses;
minusEl.classList.add('custom-comment-rating-minus');
minusEl.style.textAlign = 'center';
minusEl.style.fontSize = '0.75em';
minusEl.style.color = 'red';
ratingCount.parentNode.insertBefore(plusEl, ratingCount);
if (ratingCount.nextSibling) {
ratingCount.parentNode.insertBefore(minusEl, ratingCount.nextSibling);
} else {
ratingCount.parentNode.appendChild(minusEl);
}
comment.setAttribute('data-custom-added', 'true');
});
}
function addFooterPlusMinus() {
document.querySelectorAll('.story__footer-separator').forEach(sep => {
if (sep.parentElement.querySelector('.custom-footer-plusminus')) return;
const ratingBlock = sep.parentElement.querySelector('.story__footer-rating .story__rating-block');
if (!ratingBlock) return;
const pluses = ratingBlock.getAttribute('data-pluses');
const minuses = ratingBlock.getAttribute('data-minuses');
const newBlock = document.createElement('div');
newBlock.className = 'custom-footer-plusminus';
newBlock.style.display = 'flex';
newBlock.style.flexDirection = 'column';
newBlock.style.alignItems = 'center';
newBlock.style.paddingRight = '8px';
const plusEl = document.createElement('div');
plusEl.textContent = '+' + pluses;
plusEl.style.color = 'green';
plusEl.style.fontSize = '0.9em';
const minusEl = document.createElement('div');
minusEl.textContent = '-' + minuses;
minusEl.style.color = 'red';
minusEl.style.fontSize = '0.9em';
newBlock.appendChild(plusEl);
newBlock.appendChild(minusEl);
sep.insertAdjacentElement('afterend', newBlock);
});
}
function runAll() {
addPlusesAndMinuses();
addFooterPlusMinus();
}
runAll();
setInterval(runAll, 1000);
})();
Ответ на пост «Минусы»
Мне вот интересно, а как вообще проводилась в "верхах пикабу" идея о возвращении минусов?
- мы хотим полностью убрать отображение рейтинга у постов, рейтинг которых меньше 0. Ваши идеи?
- о, пользователи вроде как просят (ахахах) вернуть минусы. нам похуй, конечно, но что, если вместо отрицательного рейтинга мы будем... ОТОБРАЖАТЬ ЗДОРОВЕННЫЙ МИНУС? при этом скроем реальное количество как минусов, ТАК И ПЛЮСОВ?!!!
- ГЕНИАЛЬНО!!!!!