remove oo.pe redirection in Arca.live
当前为
// ==UserScript==
// @name oo.pe redirection remover
// @name:ko oo.pe 리디렉션 제거기
// @namespace OOPE_REMOVER_V1
// @match https://arca.live/b/*
// @run-at document-end
// @version 1.23
// @author Laria
// @description remove oo.pe redirection in Arca.live
// @description:ko 아카라이브 oo.pe 리디렉션을 제거합니다.
// @supportURL https://greasyfork.org/scripts/485591
// @icon https://www.google.com/s2/favicons?sz=64&domain=oo.pe
// @license MIT
// @encoding utf-8
// ==/UserScript==
/*
* Note: Please install with greasyfork, it will update automatically..
*
* More info. https://greasyfork.org/scripts/485591
*
*/
/*
* == Change log ==
* 1.0 - release
* 1.1 - add retry
* 1.2 - detect comment reload
* 1.21 - apply link's description
* 1.22 - check article comment before register event listner, retry 7 -> 10
* 1.23 - add site:unsafelink(unsafelink.com)
*/
//root
(function() {
'use strict';
//target list
const targetList = [
'oo.pe',
'unsafelink.com', //added in 1.23
];
function resolveLink(tar = document) {
function _resolveLink(_container, _link) {
function _res(_tar) {
//tokenizing
const token = _tar.split('/');
//search oo.pe prefix
const pref = token.indexOf(_link);
//join link after prefix
return token.slice(pref + 1).join('/');
}
//search link include 'oo.pe'
_container.querySelectorAll(`a[href*="${_link}"]`).forEach(function(src) {
try {
src.title = _res(src.title);
src.href = _res(src.href);
} catch (_) {}
});
}
//try to resolve registered link
targetList.forEach((_tarLink)=>{_resolveLink(tar, _tarLink);});
}
//try entire
resolveLink();
//repeat resolve and add event listner
setTimeout(() => {
resolveLink();
}, 50);
setTimeout(() => {
resolveLink();
if(document.querySelector('.article-comment')) {
//resolve link when comment reload
document.querySelector('.article-comment').querySelector('.newcomment-alert').addEventListener('click', (event) => {
event.preventDefault();
//try to resole while server connection pending (1000ms)
for (let i = 1; i <= 10; i++) {
setTimeout(function() {
resolveLink(document.querySelector('.article-comment'));
}, 100 * i);
}
});
}
}, 200);
})();