Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2021
335
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         YouTube Restore Dislike Counters
  3. // @version      1.0.0
  4. // @description  A userscript to restore the dislike counts on YouTube. Not 100% accurate all the time, but stil pretty accurate.
  5. // @author       syndiate
  6. // @match        *://www.youtube.com/*
  7. // @run_at       document_start
  8. // ==/UserScript==
  9.  
  10. async function waitForElm(s) {
  11.     while (!document.querySelector(s)) {
  12.         await new Promise(r => requestAnimationFrame(r))
  13.     }
  14.     return;
  15. }
  16.  
  17. function FormatNumber(value) {
  18.     var suffixes = ["", "K", "M", "B","T"];
  19.     var suffixNum = Math.floor(Math.max(("" + value).length - 1, 1) / 3);
  20.     var v = parseFloat((suffixNum != 0 ? (value / Math.pow(1000,suffixNum)) : value).toPrecision(3));
  21.     if (v % 1 != 0) v = v.toFixed(1);
  22.     return v + suffixes[suffixNum];
  23. }
  24.  
  25. async function init() {
  26.     var data = document.querySelector("ytd-app").data;
  27.     var c = data.response.contents.twoColumnWatchNextResults.results.results.contents;
  28.     var vidroot;
  29.     for (var p = 0; p < c.length && typeof (vidroot = c[p]).videoPrimaryInfoRenderer == 'undefined'; p++);
  30.     var ratio = data.playerResponse.videoDetails.averageRating;
  31.     var likes = Number(vidroot.videoPrimaryInfoRenderer.videoActions.menuRenderer.topLevelButtons[0].toggleButtonRenderer.toggledText.accessibility.accessibilityData.label.replace(/[^0-9]/g,'')) - 1;
  32.     var dislikes = Math.round(likes * ((5 - ratio) / (ratio - 1)));
  33.     var percent = ratio * 20;
  34.    
  35.     var bts = document.querySelectorAll("yt-formatted-string#text.ytd-toggle-button-renderer");
  36.     bts[0].innerHTML = FormatNumber(likes);
  37.     bts[1].innerHTML = FormatNumber(dislikes);
  38.     //vvv Show precentage in SHARE button vvv
  39.     //document.querySelector("yt-formatted-string#text.ytd-button-renderer").innerHTML = percent.toFixed(2).toString() + " %";
  40.     document.querySelector("ytd-sentiment-bar-renderer").removeAttribute("hidden");
  41.     document.getElementById("like-bar").style.width = parseInt(percent) + "%;";
  42.     document.getElementById("sentiment").style.width = (bts[0].parentElement.getBoundingClientRect().width + bts[1].parentElement.getBoundingClientRect().width + 12) + "px;";
  43. }
  44.  
  45. waitForElm("yt-formatted-string#text.ytd-toggle-button-renderer").then(() => init());
  46. window.addEventListener('yt-page-data-updated', init, false);
  47.  
  48.  
  49.  
  50.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement