1

Ответ на пост «Минусы»43

Возврату минусов быть? Но, кажется, не долго... Не уверен, что пост не снесут, но я лишь расширил работу каких-то аналогичных пользовательских скриптов и постов ранее.

Оценки отображаются как в обычной, так и в мобильной версиях сайта. Вся информация об оценках расположена, как ни странно, в 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);

})();

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества