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.

2016-09-26 يوللانغان نەشرى. ئەڭ يېڭى نەشرىنى كۆرۈش.

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.1.6
// @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 *://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
// @grant GM_registerMenuCommand

// ==/UserScript==

/*
not working (external access 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:
Thieme PDF https://profile.thieme.de/HTML/sso/ejournals/login.htm?type=default&subsidiary=www.thieme-connect.de&hook_url=https%3A%2F%2Fwww.thieme-connect.de%2Fproducts%2Febooks%2Fpdf%2F10.1055%2Fb-0034-93621.pdf
*/

function core(mode){

    var domain = location.href;
    var hostname = document.location.hostname;
    GM_setValue('last_domain_hostname', hostname);
    GM_setValue('last_domain', domain);

    //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 += ','+hostname_temp;}
    GM_setValue('eAccess_reloader_userexclude', excluseme_userexclude_temp);
    excludeme_show();
}

function excludeme_edit(){
    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);}
    excludeme_show();
}

function excludeme_show(){
    var exc = GM_getValue('eAccess_reloader_userexclude', []);
    if(exc == []){var text = 'leer';} else {var text = '';}
    alert( 'Ausnahmnen: '+text+exc );
    return true;
}

function excludeme_delete(element, security){
    if(security){
        var ex_temp = GM_getValue('eAccess_reloader_userexclude', []);
        var ex_temp_new = ex_temp.replace(','+element, '');
        GM_setValue('eAccess_reloader_userexclude', ex_temp_new);
        excludeme_show();
    }
}

function excludeme_reset(security){
    if(security){
        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 style="text-decoration: none; color: darkblue;"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 dessen Deinstallation.<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 nutzen</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.1.x<br>Autor: zsewa<!--<br><a href="mailto:[email protected]">Email an Entwickler</a>--></p></div>\
';

    $("body").append ( settings_html1 + GM_getValue('eAccess_reloader_mode', '0') + 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 einen Hostnamen eingeben. Z.B. '+GM_getValue('last_domain_hostname', 'www.reaxys.com')); excludeme(link_exclude); });
    $("#userscript_show_exeptions").click(function() { excludeme_show(); });
    $("#userscript_edit_exeptions").click(function() { excludeme_edit(); });
    $("#userscript_delete_exeptions").click(function() { excludeme_reset(confirm('Wollen Sie wirklich ALLE Ausnahmen entfernen?')); excludeme_show(); });
}

(function() {
    'use strict';
    //store userscript version for prompt at major updates
    var thisVersion = GM_info.script.version; 
    GM_setValue('last_version', thisVersion);

    GM_registerMenuCommand('[TUMeR] Edit exeptions', function() { excludeme_edit(); });
    var usermode = GM_getValue('eAccess_reloader_mode', 0);

    var hostname = document.location.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 host_inner = hostname; GM_registerMenuCommand('[TUMeR] Don\'t exclude '+host_inner, function() { excludeme_delete(host_inner , confirm('Wollen Sie '+host_inner+' wirklich aus den Ausnahmen entfernen?') ); window.location.reload(); }); GM_registerMenuCommand('[TUMeR] Redirect this time', function() { core(0); });}
    } 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 || domain.indexOf('https://eaccess.ub.tum.de/login') != -1 || domain.indexOf('http://eaccess.ub.tum.de/login') != -1 ){
            addsettingstodom();
        } else {
            markaseaccess();
            var last_domain240 = GM_getValue('last_domain');
            var last_dom_host240 = GM_getValue('last_domain_hostname', 0);
            GM_registerMenuCommand('[TUMeR] Exclude '+last_domain240, function() { excludeme(last_dom_host240); window.location.href = last_domain240; });
            //$("#userscript_eAccess_redirector_created_site_link").click(function() {  });
        }
    }

})();