TUM eAccess Redirector

Automatically redirect to the proxified equivalent as provided by the libary of the Technische Universitaet Muenchen via the eAccess-System. TUM credentials required.

As of 31.07.2016. See ბოლო ვერსია.

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

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

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

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

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

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

(I already have a user script manager, let me install it!)

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.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name         TUM eAccess Redirector
// @name:de      TUM eAccess Redirector
// @version      1.0.0.0
// @description  Automatically redirect to the proxified equivalent as provided by the libary of the Technische Universitaet Muenchen via the eAccess-System. TUM credentials required.
// @description:de   Userscript, dass auf einigen Seiten, mit denen die Universitätsbiblothek der Technischen Universität München kooperiert, die eAccess-Version aufruft.
// @author       zsewa
// @namespace https://greatest.deepsurf.us/users/57483
// @require https://code.jquery.com/jquery-3.1.0.min.js

// @match *://*.eaccess.ub.tum.de/*

// @match *://opac.ub.tum.de/InfoGuideClient.tumsis/*
// @match *://bvb-new-primo.hosted.exlibrisgroup.com/primo_library/libweb/action/search.do*vid=49BVB_TUM01_VU1*
// @match *://bvb-new-primo.hosted.exlibrisgroup.com/primo_library/libweb/action/dlSearch.do*vid=49BVB_TUM01_VU1*
// @match *://mediatum.ub.tum.de/*
// @match *://sfx.bib-bvb.de/*
// @match *://ezb.uni-regensburg.de/ezeit/*bibid=TUM*
// @match *://ezb.uni-regensburg.de/*bibid=TUM*
// @match *://ezb.uni-regensburg.de/index.phtml*bibid=TUM*
// @match *://rzblx1.uni-regensburg.de/ezeit/ezb.phtml*bibid=TUM*
// @match *://rzblx10.uni-regensburg.de/dbinfo/*
// @match *://dbis.uni-regensburg.de/dbinfo/dbliste.php*bibid=TUM*

// @match *://science.sciencemag.org/*
// @match *://www.sciencedirect.com/*
// @match *://www.nature.com/*

// @match *://*.thieme-connect.de/*
// @match *://link.springer.com/*
// @match *://springer.com/*

// @match *://apps.webofknowledge.com/*
// @match *://www.emeraldinsight.com/*
// @match *://www.degruyter.com/*
// @match *://ieeexplore.ieee.org/*
// @match *://onlinelibrary.wiley.com/*
// @match *://www.worldscientific.com/*
// @match *://ebooks.worldscinet.com/*
// @match *://*.ncbi.nlm.nih.gov/*
// @match *://*.tandfonline.com/*
// @match *://*.biochemj.org/*
// @match *://*.aappublications.org/*
// @match *://*.ovid.com/*
// @match *://*.scopus.com/*
// @match *://*.annualreviews.org/*
// @match *://*.thiemebilddatenbankanatomie.de/*
// @match *://*.jove.com/*
// @match *://*.jstor.org/*
// @match *://app.knovel.com/*
// @match *://tecfinder.wti.frankfurt.de/*
// @match *://*.gbv.de/*
// @match *://roempp.thieme.de/*
// @match *://*.cas.org/*
// @match *://stneasy.fiz-karlsruhe.de/*
// @match *://*.umwelt-online.de/*

// @match *://*.acs.org/*
// @match *://*.rsc.org/*
// @match *://*.gbv.de/*
// @match *://www.reaxys.com/*

// @match *://*.aacrjournals.org/*
// @match *://*.bmj.com/*
// @match *://www.hematologylibrary.org/*
// @match *://www.karger.com/*
// @match *://web.b.ebscohost.com/*
// @match *://search.ebscohost.com/*
// @match *://*.agu-hochschulen.de/*
// @match *://elibrary.asabe.org/*

// @match *://www.hanser-elibrary.com/*

// @match *://www.ami-informiert.de/*
// @match *://www.allthatstats.com/*
// @match *://www.oecd-ilibrary.org/*

// @match *://www.ams.org/*
// @match *://www.ems-ph.org/*
// @match *://*.siam.org/*
// @match *://zbmath.org/*
// @match *://proquest.tech.safaribooksonline.de/*
// @match *://www.zentralblatt-math.org/*

// @match *://error.incites.thomsonreuters.com/error/Error*DestApp=IC2ESI&*Error=IPError
// @match *://error.incites.thomsonreuters.com/error/Error*DestApp=IC2JCR&*Error=IPError
// @match *://login.webofknowledge.com/error/Error*Error=IPError

// @match *://global.factiva.com/

// @match *://www.video2brain.com/*

// @grant GM_setValue
// @grant GM_getValue
// @grant GM_addStyle

// ==/UserScript==

/*
not working (externam permitted):
UPTODATE ://www.uptodate.com/
Chemical abstracts http://webcsd.ccdc.cam.ac.uk
DIN-Normen etc. ://tum.eresearchcenter.eu
Emerald http://www.emeraldgrouppublishing.com

not working:
*/

function core(mode){

    var domain = location.href;
    var hostname = document.location.hostname;
    //special rules - bugfixes
    //Reaxys
    if(domain.indexOf('www.reaxys.com/reaxys/session.do') != -1){var domain = 'https://www-reaxys-com.eaccess.ub.tum.de/reaxys/secured/search.do';}
    //Essential science indicators Thomas Reuters InCites
    if(hostname == 'error.incites.thomsonreuters.com' && domain.indexOf('error.incites.thomsonreuters.com/error/Error?DestApp=IC2ESI') != -1){var domain = 'https://esi.incites.thomsonreuters.com/IndicatorsAction.action';}
    //Journal Citation Reports Thomas Reuters InCites
    if(hostname == 'error.incites.thomsonreuters.com' && domain.indexOf('error.incites.thomsonreuters.com/error/Error?DestApp=IC2JCR') != -1){var domain = 'https://jcr.incites.thomsonreuters.com/JCRJournalHomeAction.action';}
    //WebofScience/WebofKnowledge
    if(hostname == 'login.webofknowledge.com'){var domain = 'https://apps.webofknowledge.com/';}

    switch(mode) {
        case 1:
            //confirmation mode
            if (window.confirm("Redirect to TUM eAccess?")){void(window.document.location.replace('https://eaccess.ub.tum.de/login?url='+domain));            }
            break;
        case 2:
            //html page mode
            var html = '<center><img src="http://www.ub.tum.de/files/eacessbutton.jpg" height="40" width="40"></div><br><br>Resource is reloaded via TUM eAccess...<br><br>You are redirected form '+window.location.hostname+' to the fitting resource in the TUM eAccess system. Login may be required.<br><br>To change the behavior of this userscript open it in your Tapermonkey or Greasemonkey extention. You can specify a mode there.<br><br><br><br><br><br>Thanks for using TUM eAccess Redirector.</center>';
            document.write(html);
            void(location.href='https://eaccess.ub.tum.de/login?url='+domain); //default way to reload via eacess
            break;
        default:
            //default mode - silent
            void(window.document.location.replace('https://eaccess.ub.tum.de/login?url='+domain));
    }
}

function set_usermode(value){
    GM_setValue('eAccess_reloader_mode', value);
}

function excludeme(hostname_passed){
    var hostname_temp = hostname_passed;
    var excluseme_userexclude_temp = GM_getValue('eAccess_reloader_userexclude', []); if(excluseme_userexclude_temp.indexOf(hostname_temp) == -1){excluseme_userexclude_temp.push(hostname_temp);}
    GM_setValue('eAccess_reloader_userexclude', excluseme_userexclude_temp);
}

function excludeme_reset(sec){
    if(sec){
        var excluseme_userexclude_temp = []; //reset via decommenting
        GM_setValue('eAccess_reloader_userexclude', excluseme_userexclude_temp);
    }
}

function markaseaccess(){
    $("body").prepend ( '<div id="eAccess_userscript_created_content" style="z-index:9000;float:true;bottom:1.5%;right:1.5%;position:fixed;"><a id="userscript_eAccess_redirector_created_site_link" target="_blank" href="https://login.eaccess.ub.tum.de/login">By <img src="https://www.tum.de/typo3conf/ext/in2template/Resources/Public/Images/tum-logo.svg" height="28 px">&nbsp;&nbsp;<img src="https://www.ub.tum.de/files/eacessbutton.jpg" height="28px" width="28px"></a></div>');
}

function addsettingstodom(){
    var settings_html1 = '\
<div class="container">\
<div class="row">\
<br>\
<p><h3>Die folgenden Zeilen werden durch ein Userscript produziert und verschwinden bei Deinstallation von diesem.<br>Dieser Teil der Webseite ist nur für Sie sichtbar.</h3></p>\
<h2>Einstellungen des TUM eAccess Redirector Userscripts</h2>\
Das "TUM eAccess Redirector Userscript" überprüft die URL aufgerufener Seiten und läd diese über die proxyfizierte Version neu.<br>Das Userscript basiert auf der Funktion des Bookmarklets, automatisiert jedoch den Ablauf.\
<br><br>\
<div class="row"><div class="eight columns"><h2> Einstellungen </h2><form><b>Modus:</b> Das Script kann in 3 verschieden Modi ausgefürt werden. Dies wirk sich auf das Verhalten aus.<br><br><fieldset><div class="csc-mailform-field"><label for="modeselect">Modus (aktuell: <b>';


    var settings_html2='</b>)</a></label><select name="modeselect" size="3" style="width: 500px"> <option id="userscript_opt_0">Mode 0 (Standard): Automatische Weiterleitung ohne Meldungen</option> <option id="userscript_opt_1">Mode 1 (Confirmation): Vor dem Weiterleiten IMMER fragen (außer Ausnahmen)</option> <option id="userscript_opt_2">Mode 2 (Hinweis): Automatische Weiterleitung mit kurzzeitiger Meldung</option></select></div></fieldset></form></div></div>\
<b>Ausnahmen:</b> Das Script leitet auf viele über eAccess erreichbare Seiten um. Sollten Sie das bei bestimmten Seiten NICHT wünschen klicken sie folgenden Link und geben Sie den Hostnamen ein.<br>Geben Sie z.B. statt der URL "http://link.springer.com/content" Folgendes ein: "link.springer.com". Aber z.B.: "www.reaxys.com".<br><br><a id="userscript_add_exeption">Weiterleitungs-Ausnahme hinzufügen</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a id="userscript_show_exeptions">Ausnahmen ansehen</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a id="userscript_delete_exeptions">Ausnahmen löschen</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a id="userscript_edit_exeptions">Ausnahmen manuell bearbeiten (Achtung: Profimodus!)</a><br>\
<br><br><h2>Vielen Dank, dass sie den TUM eAccess Redirector benutzen</h2><br></div></div>\
</div>\
<div class="three columns"><div class="content-box content-box--heavy content-box--green"><div class="csc-header csc-header-n1"><h4 class="csc-firstHeader">TUM eAccess Redirector</h4></div><p class="bodytext"><a target="_blank" title="Installationsseite" href="https://greatest.deepsurf.us/de/scripts/21778-tum-eaccess-redirector" class="external-link-new-window">Installationsseite</a><br>Version: 1.0.0.0<br>Autor: zsewa<!--<br><a href="mailto:[email protected]">Email an Entwickler</a>--></p></div>\
';

    $("body").append ( settings_html1 + GM_getValue('eAccess_reloader_mode', 'nicht eingestellt') + settings_html2 );
    $("#userscript_opt_0").click(function() { set_usermode(0); alert('Mode '+GM_getValue('eAccess_reloader_mode', 0)+' wurde gesetzt.'); location.reload(); });
    $("#userscript_opt_1").click(function() { set_usermode(1); alert('Mode '+GM_getValue('eAccess_reloader_mode', 0)+' wurde gesetzt.'); location.reload(); });
    $("#userscript_opt_2").click(function() { set_usermode(2); alert('Mode '+GM_getValue('eAccess_reloader_mode', 0)+' wurde gesetzt.'); location.reload(); });

    $("#userscript_add_exeption").click(function() { var link_exclude = prompt('Bitte Hostnamen eingeben:'); excludeme(link_exclude); alert( 'Ausnahmen: '+GM_getValue('eAccess_reloader_userexclude', []) ); });
    $("#userscript_show_exeptions").click(function() { alert( 'Ausnahmnen: '+GM_getValue('eAccess_reloader_userexclude', []) ); });
    $("#userscript_edit_exeptions").click(function() { var ex_temp = GM_getValue('eAccess_reloader_userexclude', []); var ex_temp_new = prompt('Ändern Sie etwas und klicken Sie OK. Wollen SIe doch nichts ändern beenden Sie mit Abbrechen. Aktuelle Ausnahmen: ',ex_temp); if(ex_temp_new != null){GM_setValue('eAccess_reloader_userexclude', ex_temp_new); } });
    $("#userscript_delete_exeptions").click(function() { excludeme_reset(confirm('Wollen Sie wirklich ALLE Ausnahmen entfernen?')); alert( 'Ausnahmnen: '+GM_getValue('eAccess_reloader_userexclude', []) ); });

}

(function() {

    'use strict';
    //modes:
    //0: Default = Silent, redirect without showing a html page
    //1: Confirmation, ask always before reload, exclude some pages manualy
    //2: HTML page mode, show a redirect page; may cause problems with history
    //set_usermode(0); //decomment and load some page with redirection
    var usermode = GM_getValue('eAccess_reloader_mode', 0);

    var hostname = document.location.hostname;

    //exclude via hostname
    var userexclude = GM_getValue('eAccess_reloader_userexclude', []);

    if( hostname.indexOf('eaccess.ub.tum.de') == -1){
        if( userexclude.indexOf(hostname) == -1 ){
            core(usermode);
        }
    } else {
        var domain = location.href;
        if(domain.indexOf('https://login.eaccess.ub.tum.de/menu') != -1 || domain.indexOf('https://login.eaccess.ub.tum.de/login') != -1 || domain.indexOf('http://eaccess.ub.tum.de/menu') != -1 || domain.indexOf('https://eaccess.ub.tum.de/menu') != -1 ){
            addsettingstodom();
        } else {
            markaseaccess();
            $("#userscript_eAccess_redirector_created_site_link").click(function() {  });
        }
    }

})();