Replace Facebook 'Angry' with 'Dislike'

Makes it feel more like a dislike button!

  1. // ==UserScript==
  2. // @name Replace Facebook 'Angry' with 'Dislike'
  3. // @namespace http://kippykip.com/
  4. // @version 1.2.1
  5. // @description Makes it feel more like a dislike button!
  6. // @author Kippykip
  7. // @match https://www.facebook.com/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. //The majority of this code is just a modified version of my "Halloween Reactions Restored for Facebook" script
  12. //It's totally R A D I C A L ironically
  13. //You should totally get it.
  14. //https://greasyfork.org/en/scripts/24512-halloween-reactions-restored-for-facebook
  15.  
  16. function addGlobalStyle(css) {
  17. var head, style;
  18. head = document.getElementsByTagName('head')[0];
  19. if (!head) { return; }
  20. style = document.createElement('style');
  21. style.type = 'text/css';
  22. style.innerHTML = css;
  23. head.appendChild(style);
  24. }
  25.  
  26. //All the class codes, these may change in the future
  27. var CODE_Angry = '._3j7q';
  28. var CODE_Popup = '._9-_';
  29. var CODE_LinkText = 'UFILikeLink';
  30. var CODE_MiniColourBar = '_dsx';
  31. var CODE_NotificationIMG = '_10cu img _8o _8r img';
  32. var CODE_NotificationPopup = '_1x8t img _8o _8r img';
  33. var CODE_ReactionsFullview = '_ds- _45hc';
  34. var CODE_ReactionsBar = '_4sm1';
  35. var CODE_ReactionText = '_1vea';
  36. //This just searches part of the filename, then it replaces the whole thing
  37. var CODE_NotificationAngry = '6K8v8Ju8kL2';
  38. //Replacement Content
  39. var CODE_MiniReactURL = 'https://i.imgur.com/nsOLVfB.png';
  40. var CODE_PopupReactURL = 'https://i.imgur.com/ppM9qhP.png';
  41. var CODE_NotificationAngryRURL = 'https://i.imgur.com/pTD0eop.png';
  42.  
  43. //Replace the reaction bar images and... that's it.
  44. //Angry
  45. addGlobalStyle(CODE_Angry + '{background-image:url(' + CODE_MiniReactURL + ') !important;background-repeat:no-repeat}');
  46. addGlobalStyle(CODE_Popup + CODE_Angry + '{background-image:url(' + CODE_PopupReactURL + ') !important;background-repeat:no-repeat;background-size:auto;background-position:0 0}');
  47.  
  48. //Changes the link colour
  49. function SetLinkColours()
  50. {
  51. TMP_Class = document.getElementsByClassName(CODE_LinkText);
  52. for(var i = 0; i < TMP_Class.length; i++)
  53. {
  54. //If it contains the name of the reaction
  55. //Angry
  56. if(TMP_Class[i].childNodes[2] !== undefined)
  57. {
  58. if(TMP_Class[i].childNodes[2].nodeValue == "Angry")
  59. {
  60. //THEN replace it, otherwise it replaces all colours
  61. TMP_Class[i].childNodes[2].nodeValue = "Dislike";
  62. TMP_Class[i].style.color = "rgb(242,82,104)";
  63. }
  64. }
  65. }
  66.  
  67. //View reactions fullscreen thingy
  68. //Mini bar underneath
  69. var TMP_Classi = document.getElementsByClassName(CODE_MiniColourBar)[0];
  70. //Text
  71. var TMP_Classii = document.getElementsByClassName(CODE_ReactionsFullview);
  72. for(var ii = 0; ii < TMP_Classii.length; ii++)
  73. {
  74. if(TMP_Classii[ii].childNodes[0].childNodes[0].childNodes[0] !== undefined)
  75. {
  76. if(TMP_Classii[ii].childNodes[0].childNodes[0].childNodes[0].getAttribute('aria-label').indexOf('Angry') > -1)
  77. {
  78. if(TMP_Classii[ii].childNodes[0].childNodes[0].childNodes[0].style.color == 'rgb(247, 113, 75)')
  79. {
  80. TMP_Classii[ii].childNodes[0].childNodes[0].childNodes[0].style.color = "rgb(242,82,104)";
  81. TMP_Classi.style.background = "rgb(242,82,104)";
  82. }
  83. }
  84. }
  85. }
  86. //Reaction Bar Text
  87. var TMP_Classiii = document.getElementsByClassName(CODE_ReactionsBar);
  88. for(var iii = 0; iii < TMP_Classiii.length; iii++)
  89. {
  90. if(TMP_Classiii[iii].innerHTML == "Angry")
  91. {
  92. TMP_Classiii[iii].innerHTML = "Dislike";
  93. }
  94. }
  95. //Reaction Text
  96. var TMP_Classiiii = document.getElementsByClassName(CODE_ReactionText);
  97. for(var iiii = 0; iiii < TMP_Classiiii.length; iiii++)
  98. {
  99. if(TMP_Classiiii[iiii].innerHTML == "Angry")
  100. {
  101. TMP_Classiiii[iiii].innerHTML = "Dislike";
  102. }
  103. }
  104. }
  105.  
  106. //Replace the images in notifications too
  107. function SetN_IMGS()
  108. {
  109. //Replace the ones from the notifications button
  110. var TMP_Class = document.getElementsByClassName(CODE_NotificationIMG);
  111. for(var i = 0; i < TMP_Class.length; i++)
  112. {
  113. //Angry
  114. if(TMP_Class[i].src.indexOf(CODE_NotificationAngry) > -1)
  115. {
  116. TMP_Class[i].src = CODE_NotificationAngryRURL;
  117. }
  118. }
  119. //This is for the notifications that popup on the left side!
  120. var TMP_Classi = document.getElementsByClassName(CODE_NotificationPopup);
  121. for(var ii = 0; ii < TMP_Classi.length; ii++)
  122. {
  123. //Angry
  124. if(TMP_Classi[ii].src.indexOf(CODE_NotificationAngry) > -1)
  125. {
  126. TMP_Classi[ii].src = CODE_NotificationAngryRURL;
  127. }
  128. }
  129. }
  130.  
  131. //Add event listeners
  132. //Run the colour set function
  133. document.addEventListener("DOMNodeInserted", SetLinkColours, false);
  134. //Replace notification images
  135. document.addEventListener("DOMNodeInserted", SetN_IMGS, false);