popup.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. /* Config */
  2. const config = {
  3. advanced: false,
  4. showAdvancedMessage: "Show Settings",
  5. hideAdvancedMessage: "Hide Settings",
  6. disableVoteSubmission: false,
  7. links: {
  8. website: "https://returnyoutubedislike.com",
  9. github: "https://github.com/Anarios/return-youtube-dislike",
  10. discord: "https://discord.gg/mYnESY4Md5",
  11. donate: "https://returnyoutubedislike.com/donate",
  12. faq: "https://returnyoutubedislike.com/faq",
  13. },
  14. };
  15. /* Links */
  16. document.getElementById("link_website").addEventListener("click", () => {
  17. chrome.tabs.create({ url: config.links.website });
  18. });
  19. document.getElementById("link_github").addEventListener("click", () => {
  20. chrome.tabs.create({ url: config.links.github });
  21. });
  22. document.getElementById("link_discord").addEventListener("click", () => {
  23. chrome.tabs.create({ url: config.links.discord });
  24. });
  25. document.getElementById("link_faq").addEventListener("click", () => {
  26. chrome.tabs.create({ url: config.links.faq });
  27. });
  28. document.getElementById("link_donate").addEventListener("click", () => {
  29. chrome.tabs.create({ url: config.links.donate });
  30. });
  31. document
  32. .getElementById("disable_vote_submission")
  33. .addEventListener("click", (ev) => {
  34. chrome.storage.sync.set({ disableVoteSubmission: ev.target.checked });
  35. });
  36. /* Advanced Toggle */
  37. const advancedToggle = document.getElementById("advancedToggle");
  38. advancedToggle.addEventListener("click", () => {
  39. const adv = document.getElementById("advancedSettings");
  40. if (config.advanced) {
  41. adv.style.display = "none";
  42. advancedToggle.innerHTML = config.showAdvancedMessage;
  43. config.advanced = false;
  44. } else {
  45. adv.style.display = "block";
  46. advancedToggle.innerHTML = config.hideAdvancedMessage;
  47. config.advanced = true;
  48. }
  49. });
  50. initConfig();
  51. function initConfig() {
  52. initializeDisableVoteSubmission();
  53. initializeVersionNumber();
  54. }
  55. function initializeVersionNumber() {
  56. const version = chrome.runtime.getManifest().version;
  57. document.getElementById('ext-version').innerHTML = 'v' + version;
  58. }
  59. function initializeDisableVoteSubmission() {
  60. chrome.storage.sync.get(["disableVoteSubmission"], (res) => {
  61. handleDisableVoteSubmissionChangeEvent(res.disableVoteSubmission);
  62. });
  63. }
  64. chrome.storage.onChanged.addListener(storageChangeHandler);
  65. function storageChangeHandler(changes, area) {
  66. if (changes.disableVoteSubmission !== undefined) {
  67. handleDisableVoteSubmissionChangeEvent(
  68. changes.disableVoteSubmission.newValue
  69. );
  70. }
  71. }
  72. function handleDisableVoteSubmissionChangeEvent(value) {
  73. config.disableVoteSubmission = value;
  74. document.getElementById("disable_vote_submission").checked = value;
  75. }
  76. (async function getStatus() {
  77. let status = document.getElementById("status");
  78. let serverStatus = document.getElementById("server-status");
  79. let resp = await fetch(
  80. "https://returnyoutubedislikeapi.com/votes?videoId=YbJOTdZBX1g"
  81. );
  82. let result = await resp.status;
  83. if (result === 200) {
  84. status.innerText = "Online";
  85. status.style.color = "green";
  86. serverStatus.style.filter =
  87. "invert(58%) sepia(81%) saturate(2618%) hue-rotate(81deg) brightness(119%) contrast(129%)";
  88. } else {
  89. status.innerText = "Offline";
  90. status.style.color = "red";
  91. serverStatus.style.filter =
  92. "invert(11%) sepia(100%) saturate(6449%) hue-rotate(3deg) brightness(116%) contrast(115%)";
  93. }
  94. })();
  95. /* popup-script.js
  96. document.querySelector('#login')
  97. .addEventListener('click', function () {
  98. chrome.runtime.sendMessage({ message: 'get_auth_token' });
  99. });
  100. document.querySelector("#log_off").addEventListener("click", function () {
  101. chrome.runtime.sendMessage({ message: "log_off" });
  102. });
  103. */