Guest User

Untitled

a guest
Nov 24th, 2021
447
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.
  5. // @author       syndiate
  6. // @match        *://www.youtube.com/*
  7. // @run_at       document_start
  8. // ==/UserScript==
  9.  
  10. //1st method
  11. window.addEventListener('DOMNodeInserted', checkButton);
  12. function checkButton(e) {
  13.     if (e.target.id == "button") {
  14.          init();
  15.         window.removeEventListener('DOMNodeInserted', checkButton);
  16.     }
  17. }
  18.  
  19. //2nd method
  20. window.addEventListener('yt-page-data-updated', init, false);
  21.  
  22. function init() {
  23.     let data = document.querySelector("ytd-app").data;
  24.     if(data.response.contents.twoColumnWatchNextResults == undefined) return;
  25.     let contents = data.response.contents.twoColumnWatchNextResults.results.results.contents;
  26.     let vidroot;
  27.     for (let p = 0; p < contents.length && typeof (vidroot = contents[p]).videoPrimaryInfoRenderer == 'undefined'; p++);
  28.     let ratio = data.playerResponse.videoDetails.averageRating;
  29.     let percent = (ratio - 1) * 25;
  30.     let likes = Number(vidroot.videoPrimaryInfoRenderer.videoActions.menuRenderer.topLevelButtons[0].toggleButtonRenderer.toggledText.accessibility.accessibilityData.label.replace(/[^0-9]/g, '')) - 1;
  31.     let dislikes = Math.round(4 * likes / (ratio - 1)) - likes;
  32.     let bts = document.querySelectorAll("yt-formatted-string#text.ytd-toggle-button-renderer");
  33.     bts[1].innerHTML = FormatNumber(dislikes);
  34.     document.querySelector("ytd-sentiment-bar-renderer").removeAttribute("hidden");
  35.     document.getElementById("like-bar").setAttribute("style", "width: " + Math.round(percent) + "%;");
  36.     document.getElementById("sentiment").setAttribute("style", "width: " +
  37.         bts[0].parentElement.getBoundingClientRect().width +
  38.         bts[1].parentElement.getBoundingClientRect().width + 12) + "px;";
  39. }
  40.  
  41. function FormatNumber(value) {
  42.     return Intl.NumberFormat('en-US', { notation: 'compact' }).format(value);
  43. }
Advertisement
Add Comment
Please, Sign In to add comment