Cookie Setter

Set cookies for current website

  1. // ==UserScript==
  2. // @name Cookie Setter
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description Set cookies for current website
  6. // @author Jaeger <JaegerCode@gmail.com>
  7. // @match *://*/*
  8. // @grant GM_setValue
  9. // @grant GM_getValue
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. // Create and attach UI
  16. var button = document.createElement('button');
  17. button.innerText = 'Set Cookie';
  18. button.style.position = 'fixed';
  19. button.style.right = '20px';
  20. button.style.bottom = '20px';
  21. button.style.zIndex = '9999';
  22. button.style.padding = '10px 20px';
  23. button.style.borderRadius = '5px';
  24. button.style.border = 'none';
  25. button.style.backgroundColor = '#007BFF';
  26. button.style.color = 'white';
  27. button.style.cursor = 'pointer';
  28. button.onclick = showPopup;
  29. document.body.appendChild(button);
  30.  
  31. // auto hidden button
  32. setTimeout(() => document.body.removeChild(button), 3000);
  33.  
  34. function showPopup() {
  35. var popup = document.createElement('div');
  36. popup.innerHTML = `
  37. <div style="position: fixed; z-index:999; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); display: flex; justify-content: center; align-items: center;">
  38. <div style="background: white; padding: 20px; width: 400px; border-radius: 10px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);">
  39. <h2 style="margin-top: 0; color: #333;">Set Cookie</h2>
  40. <textarea id="cookie-input" placeholder="key1=value1;key2=value2;" rows="10" style="width: 100%; border: 1px solid #ccc; border-radius: 5px; padding: 10px; box-sizing: border-box;">${GM_getValue('cookie', '')}</textarea>
  41. <div style="margin: 10px 0;">
  42. <label style="display: block; margin-bottom: 5px;">
  43. <input type="checkbox" id="save-cookie" ${GM_getValue('save', false) ? 'checked' : ''}>
  44. Save Cookie
  45. </label>
  46. <label style="display: block;">
  47. <input type="checkbox" id="auto-apply" ${GM_getValue('auto', false) ? 'checked' : ''}>
  48. Auto Apply Cookie
  49. </label>
  50. </div>
  51. <button id="close-button" style="padding: 10px 20px; border: none; border-radius: 5px; background: #333333; color: white; cursor: pointer;">Close</button>
  52. <button id="apply-button" style="padding: 10px 20px; border: none; border-radius: 5px; background: #007BFF; color: white; cursor: pointer;">Apply</button>
  53. </div>
  54. </div>
  55. `;
  56. document.body.appendChild(popup);
  57. document.getElementById('apply-button').onclick = function() {
  58. var cookie = document.getElementById('cookie-input').value;
  59. var save = document.getElementById('save-cookie').checked;
  60. var auto = document.getElementById('auto-apply').checked;
  61. GM_setValue('cookie', save ? cookie : '');
  62. GM_setValue('save', save);
  63. GM_setValue('auto', auto);
  64. setCookie(cookie);
  65. document.body.removeChild(popup);
  66. window.location.reload();
  67. };
  68.  
  69. document.getElementById('close-button').onclick = function() {
  70. document.body.removeChild(popup);
  71. };
  72.  
  73. document.getElementById('auto-apply').onchange = function() {
  74. var autoApply = document.getElementById('auto-apply').checked;
  75. if (autoApply) {
  76. document.getElementById('save-cookie').checked = true;
  77. }
  78. };
  79. document.getElementById('save-cookie').onchange = function() {
  80. var autoApply = document.getElementById('save-cookie').checked;
  81. if (!autoApply) {
  82. document.getElementById('auto-apply').checked = false;
  83. }
  84. };
  85. }
  86.  
  87. // Set cookie
  88. function setCookie(cookieString) {
  89. var cookies = cookieString.split(';');
  90. for (var i = 0; i < cookies.length; i++) {
  91. var cookie = cookies[i].trim();
  92. var equalsPos = cookie.indexOf('=');
  93. var name = cookie.substring(0, equalsPos);
  94. var value = cookie.substring(equalsPos + 1);
  95. document.cookie = name + '=' + value + '; domain=.' + location.hostname.split('.').slice(-2).join('.');
  96. }
  97. }
  98.  
  99. // Auto apply cookie
  100. if (GM_getValue('save', false) && GM_getValue('auto', false)) {
  101. setCookie(GM_getValue('cookie', ''));
  102. }
  103. })();