본문으로 이동

사용자:Badbread/위키백과 중독증을 고치기/스크립트

위키백과, 우리 모두의 백과사전.

만일 위키백과 중독증을 정말 고치고 싶다면, 한 시간씩 위키백과:위키백과 중독증을 고치기에 강제로 접속하도록 하는 게 어떨까요? 이 js를 사용자 자바스크립트 문서에 추가하면 한시간이 될 때마다 그 문서에 접속하게 됩니다. 1분이 지날 때까지 그 문서를 벗어날 수 없습니다. 이 자바스크립트 이름은 "위키중독 탈출"(원제:Annoyme) 이며, 원제작자가 제안한 기능이 없는 위키에서는 사용이 불가능합니다. 다만, 한국어 위키백과 내에서는 저자가 시험 결과, 작동이 되는 걸로 확인 되었습니다. 아래 코드를 복사해 여러분이 쓰는 스킨의 자바스크립트 문서에 넣으세요.

// annoyMe
function annoyMe() {
  var time = +(new Date());
  var remainder = time % annoy.freq;
  if ( remainder < annoy.duration ) return rileMeUp( annoy.duration - remainder );
  annoy_runOnce( function() { rileMeUp( annoy.duration ); }, annoy.freq - remainder );
}

function rileMeUp( length ) {
  for (var i=0; i<document.links.length; ++i) {
	document.links[i].oldhref=document.links[i].href;
	document.links[i].href=annoy.target;
  }
  annoy_runOnce( deRile, length );
}

function deRile() {
  for (var i=0; i<document.links.length; ++i) {
	document.links[i].href=document.links[i].oldhref;
  }
  annoy_runOnce( function() { rileMeUp( annoy.duration ) }, annoy.freq - annoy.duration );
}

window.annoy={ 
  freq: 1000*60*60,
  duration: 1000*60, 
  target: 'http://ko.wikipedia.org/wiki/위키백과:위키백과 중독증을 고치기'
}
addOnloadHook( annoyMe );

window.annoy_runOnce=function(f, time) {
  var i=annoy_runOnce.timers.length;
  var ff = function () { clearInterval(annoy_runOnce.timers[i]); f() };
  var timer=setInterval(ff, time);
  annoy_runOnce.timers.push(timer);
}
annoy_runOnce.timers=[];