Disable specific sites

A script to prevent a user opening some specific sites

Verze ze dne 09. 01. 2022. Zobrazit nejnovější verzi.

K instalaci tototo skriptu si budete muset nainstalovat rozšíření jako Tampermonkey, Greasemonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

K instalaci tohoto skriptu si budete muset nainstalovat manažer uživatelských skriptů.

(Už mám manažer uživatelských skriptů, nechte mě ho nainstalovat!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Už mám manažer uživatelských stylů, nechte mě ho nainstalovat!)

// ==UserScript==
// @name         Disable specific sites
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  A script to prevent a user opening some specific sites
// @author       You
// @match        *
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        GM_registerMenuCommand
// @grant        GM_unregisterMenuCommand
// @license      MIT
// @run-at       document-start
// ==/UserScript==

(function() {
    'use strict';

    var disableStatus = false

    function init(){
        reloadDisableStatus()
        stopLoadingPageIfInDisableList()
    }

    function showDisableGmBtns(){
        let menu = GM_registerMenuCommand("Disable This Site", ()=>{
            toggleDisableStatus()
            document.body.innerHTML = ""
            GM_unregisterMenuCommand(menu)

        })
    }

    function showEnableGmBtns(){
        let menu = GM_registerMenuCommand("Enable This Site", ()=>{
            toggleDisableStatus()
            GM_unregisterMenuCommand(menu)
            location.reload()
        })
    }

    /* function isInDisableList(){
        return localStorage.DisableSpecificSites?true:false
    } */

    function reloadDisableStatus(){
        disableStatus = localStorage.DisableSpecificSites=="true"?true:false
    }

    function stopLoadingPageIfInDisableList(){
        if(disableStatus == true){
            //console.log(disableStatus)
            //showErrorPage()
            window.stop()
            showEnableGmBtns()
        }else {
            showDisableGmBtns()
        }

    }

    function toggleDisableStatus(){
        if(disableStatus){
            disableStatus = false
            localStorage.DisableSpecificSites = false
            showDisableGmBtns()
        }
        else{
            disableStatus = true
            localStorage.DisableSpecificSites = true
            showEnableGmBtns()
        }
    }

    function showErrorPage(){
        const HTMLcode = `
        <div style="text-align: center; margin-top: 30%">
        <svg xmlns="http://www.w3.org/2000/svg" width="72" height="72" fill="currentColor" class="bi bi-slash-circle" viewBox="0 0 16 16">
        <path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/>
        <path d="M11.354 4.646a.5.5 0 0 0-.708 0l-6 6a.5.5 0 0 0 .708.708l6-6a.5.5 0 0 0 0-.708z"/>
        </svg>
        <div style='margin-top: 20px; font-size: 24px;font-family: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"'>
            This Webpage is disabled.
        </div>
        </div>
        `

        document.write(HTMLcode)
    }

    init()


})();