// ==UserScript== // @name Microsoft_Academic_on_UTokyo_gateway // @version 2 // @include https://academic.microsoft* // @grant none // This software is released under the MIT License, see LICENSE. // ==/UserScript== function get_gateway_url(url){ const url_obj = new URL(url); if(url.match('arxiv')){ return url; //don't use gateway for arxiv } else { return 'https://' + url_obj.hostname.replace(/\./g, '-') + '.utokyo.idm.oclc.org' + url_obj.pathname + url_obj.search; } } const wait = (ms, callback) => { setTimeout(() => { callback(); }, ms); } function rewrite() { console.log("rewriting"); const links = Array.from(document.getElementsByTagName('a')); const re_url = new RegExp('^(https?|ftp):\/\/'); const journal_links = links.filter(link => { const href = link.href return href.match(re_url) && (!href.match('microsoft')); }); journal_links.forEach(link => { link.href = get_gateway_url(link.href); }); } wait(1500, rewrite);