Scripthub

Lots of scripts to enhance your browsing experience or automate tasks.

Устаревшая версия за 24.10.2024. Перейдите к последней версии.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey, Greasemonkey или Violentmonkey.

Для установки этого скрипта вам необходимо установить расширение, такое как Tampermonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Userscripts.

Чтобы установить этот скрипт, сначала вы должны установить расширение браузера, например Tampermonkey.

Чтобы установить этот скрипт, вы должны установить расширение — менеджер скриптов.

(у меня уже есть менеджер скриптов, дайте мне установить скрипт!)

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

(у меня уже есть менеджер стилей, дайте мне установить скрипт!)

// ==UserScript==
// @name        Scripthub
// @description Lots of scripts to enhance your browsing experience or automate tasks.
// @namespace   https://userscripts.org
// @include     *
// @version     1.1.1
// @license     GNU GPLv3
// ==/UserScript==

function showmessagefromscripthub(msg) {
  const message = document.createElement("div");
  message.textContent = msg;
  message.style.position = "fixed";
  message.style.top = "0";
  message.style.right = "0";
  message.style.zIndex = "9999";
  message.style.backgroundColor = "#333";
  message.style.color = "#fff";
  message.style.padding = "10px";
  message.style.opacity = "0";
  message.style.transition = "opacity 0.5s";
  message.style.pointerEvents = "none";
  document.body.appendChild(message);
  
  setTimeout(() => {
      message.style.opacity = "0.7";
  }, 1000);
  setTimeout(() => {
      message.style.opacity = "0";
  }, 4000);
  setTimeout(() => {
      document.body.removeChild(message);
  }, 4600);
}

try {
  if (window.location.hostname === 'userscripts.org') {
    var scr = "https://pooiod7.neocities.org/projects/scripthub/pages" + (window.location.pathname=="/"?"/home":window.location.pathname) + ".js";
    
    var script = document.createElement('script');
    script.src = scr;
    document.body.append(script);
  } else {
    (function() { var isblocked = 
        window.location.href.includes("replit.dev") || 
        window.location.href.includes("replit.co") || 
        window.location.href.includes("unpkg.com") || 
        window.location.origin == "flashloader.pages.dev" || window.location.origin == "https://flashloader.pages.dev" ||
        window.location.href.includes("accounts.google.com") ||
        window.location.href.includes("api.");

      const urlParams = new URLSearchParams(window.location.search);
      const userscripts = urlParams.get('userscripts');
      const cookieName = 'scripthub_scripts';
      const getCookie = (name) => document.cookie.split('; ').find(row => row.startsWith(name + '='));
      const setCookie = (name, value, hours) => {
        const date = new Date();
        date.setTime(date.getTime() + (hours * 60 * 60 * 1000));
        document.cookie = `${name}=${value}; expires=${date.toUTCString()}; path=/`;
      };
      const clearCookie = (name) => {
        document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/`;
      };
      
      var num = getCookie("unabletoloadinguserscripts") || "unabletoloadinguserscripts=0";
      num = num.replace(/\D+/g, '');
      
      if (!getCookie("unabletoloadinguserscripts") || num <= 2 || userscripts) {
        num = parseInt(num, 10) + 1;
        setCookie("unabletoloadinguserscripts", num);
        if (!getCookie("unabletoloadinguserscripts") || getCookie("unabletoloadinguserscripts").replace(/\D+/g, '') == "") {
          showmessagefromscripthub("Unable to load userscripts - website does not support cookies");
          document.addEventListener('keydown', function(event) {
            if (event.ctrlKey && event.key === 'r') {
              event.preventDefault();
              clearCookie("unabletoloadinguserscripts");
              window.location.reload();
            }
          });
          return;
        }
      } else {
        showmessagefromscripthub("Unable to load userscripts - website does not support url querys");
        document.addEventListener('keydown', function(event) {
          if (event.ctrlKey && event.key === 'r') {
            event.preventDefault();
            clearCookie("unabletoloadinguserscripts");
            window.location.reload();
          }
        });
        return;
      }
      
      if (new URLSearchParams(window.location.search).get('noscripts')) {
        clearCookie("unabletoloadinguserscripts");
        document.addEventListener('keydown', function(event) {
          if (event.ctrlKey && event.key === 'q') {
            event.preventDefault();
            const url = new URL(window.location);
            url.searchParams.delete('noscripts');
            window.location.href = url;
          }
        });
        clearCookie(cookieName);
        return;
      } else if (new URLSearchParams(window.location.search).get('forcescripts')) {
        isblocked = false;
        // document.addEventListener('keydown', function(event) {
          // if (event.ctrlKey && event.key === 'q') {
            // event.preventDefault();
            clearCookie("unabletoloadinguserscripts");
            const url = new URL(window.location);
            url.searchParams.delete('forcescripts');
            window.location.href = url;
          // }
        // });
        clearCookie(cookieName);
        return;
      }
      
      if (window.location.href.toLowerCase().includes("recaptcha")) {
        const message = document.createElement("div");
        clearCookie("unabletoloadinguserscripts");
        message.textContent = "//Scripthub does not work with reCAPTCHA";
        document.body.appendChild(message);
        console.log("Scripthub disabled for reCAPTCHA embed");
        return;
      }
      
      const cookieValue = getCookie(cookieName);
  
      if (cookieValue) {
        clearCookie("unabletoloadinguserscripts");
        const scriptUrls = JSON.parse(decodeURIComponent(cookieValue.split('=')[1]));
        scriptUrls.forEach(url => {
          const script = document.createElement('script');
          script.src = url;
          document.body.appendChild(script);
        });
      }
  
      document.addEventListener('keydown', function(event) {
        if (event.ctrlKey && event.key === 'r') {
          event.preventDefault();
          clearCookie(cookieName);
          window.location.reload();
          // window.location.replace(`https://userscripts.org/?tosite=${encodeURIComponent(window.location.href)}`);
        } else if (event.ctrlKey && event.key === 'q') {
          event.preventDefault();
          let ctrlQPressed = false;
          if (ctrlQPressed) {
            window.location.href = 'https://userscripts.org/';
          } else {
            ctrlQPressed = true;
            setTimeout(() => {
              const url = new URL(window.location);
              url.searchParams.set('noscripts', 'true');
              window.location.href = url;
            }, 300);
          }
        }
      });
  
      if (!cookieValue && userscripts) {
        try {
          clearCookie("unabletoloadinguserscripts");
          const scriptUrls = JSON.parse(userscripts);
          scriptUrls.forEach(url => {
            var scriptloaderscripttmp = document.createElement('script');
            scriptloaderscripttmp.src = url;
            document.body.appendChild(scriptloaderscripttmp);
          });
          setCookie(cookieName, encodeURIComponent(userscripts), 1);
  
          urlParams.delete('userscripts');
          var newUrl = `${window.location.pathname}?${urlParams+window.location.hash}`;
          history.replaceState(null, '', newUrl);
          
          const url = window.location.href;
          const [baseUrl, hash] = url.split('#');
          if (baseUrl.endsWith('?')) {
            window.history.replaceState(null, null, baseUrl.slice(0, -1) + (hash ? '#' + hash : ''));
          }
        } catch (e) {
          clearCookie("unabletoloadinguserscripts");
          console.error('Error parsing userscripts:', e);
        }
      } else if (!cookieValue) {
        if (window.location.href.startsWith('blob:') || window.location.href === 'about:blank') {
          console.log("Scripts disabled for this page");
          showmessagefromscripthub("Scripts are unavailable for this page");
          return;
        } else {
          if (!window.location.href.includes("forcescripts") && (isblocked)) {
            showmessagefromscripthub("Press ctrl + q to enable scripts on this page");
            clearCookie("unabletoloadinguserscripts");
            document.addEventListener('keydown', function(event) {
              if (event.ctrlKey && event.key === 'q') {
                event.preventDefault();
                let ctrlQPressed = false;
                if (ctrlQPressed) {
                  window.location.href = 'https://userscripts.org/';
                } else {
                  ctrlQPressed = true;
                  setTimeout(() => {
                    const url = new URL(window.location);
                    url.searchParams.set('forcescripts', 'true');
                    window.location.replace(`https://userscripts.org/?tosite=${encodeURIComponent(url)}`);
                  }, 300);
                }
              }
            });
            return;
          } else {
            window.location.replace(`https://userscripts.org/?tosite=${encodeURIComponent(window.location.href)}`);
          }
        }
      }
    })();
  }
} catch(err) {
  clearCookie("unabletoloadinguserscripts");
  showmessagefromscripthub("Unable to load userscripts: " + err);
}

if (window.location.hostname === 'blocked.goguardian.com' && window.self !== window.top) {
  var script = document.createElement('script');
  script.src = '//pooiod7.neocities.org/projects/scripthub/scripts/gardianunblocker.js';
  document.head.appendChild(script);
  window.iframeunblocker = true;
}