Mute Siren

Blocks distraction websites and neutralizes links leading to them.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

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

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name        Mute Siren
// @description Blocks distraction websites and neutralizes links leading to them.
// @namespace   damasch
// @include     *
// @version     1
// @grant       none
// ==/UserScript==

var toBlock = [
  'buzzfeed.com',
  'reddit.com',
  'facebook.com'
];

block();
window.setTimeout(block(), 2000);

function block()
{
  for (var b = 0; b < toBlock.length; b++)
  {
    if (window.location.href.match(toBlock[b]))
    {
      window.location = "about:blank";
      return;
    }
  }
  
  var links = document.getElementsByTagName('a');

  for (var l = 0; l < links.length; l++)
  {
    link = links[l];

    if (link.href)
    {
      var block = false;
      for (var b = 0; b < toBlock.length; b++)
      {
        if (link.href.match(toBlock[b]))
        {
          block = true;
          break;
        }
      }

      if (block)
      {
        link.setAttribute('backup-href', link.href);
        link.setAttribute('href', '');
        link.setAttribute('backup-text', link.innerHTML);
        link.innerHTML = '{blocked}';
      }
    }
  }
}