/autolink_to_unsw_library_proxy.user.js
http://gsbabil.googlecode.com/ · JavaScript · 198 lines · 130 code · 16 blank · 52 comment · 7 complexity · f6bef221fc9a4f61e13eedf489f05cba MD5 · raw file
- // ==UserScript==
- // @name AutoLink to UNSW Library Proxy
- // @description Rewrites links to download conference papers through UNSW library proxy.
- // @include http://ieeexplore.ieee.org/*
- // @include http://springerlink.metapress.com/*
- // @include http://www.springerlink.com/*
- // @include http://portal.acm.org/*
- // @include http://www.sciencedirect.com/*
- // ==/UserScript==
-
- SITES =
- [
- /*
- *
- * Basic Idea:
- Rewrite the URL's that leads to "Purchase PDF" on sites like IEEExplore,
- SpringerLink, ACM such that they point to URL's through UNSW Library proxy
- which lets you download these PDF's for free as long as you are a student
- with them.
-
- * Why:
- Reduce the number of clicks, mouse-keyboard actions before you get hold of
- the desired PDF and start reading.
-
- They are free for the UNSW students anyway. You shouldn't have to perform
- 10 clicks and keyboard actions before you get them.
-
- With this script installed in GreaseMonkey, you can just ...
- - search in Google for your conference paper
- - click on the ACM/Springer/IEEE link
- - Once you see the monkey icon (yes, that's right) your PDF is ready to
- download.
-
- * Adding Your Own Site:
-
- {
- url_snip: "if this variable matches with current URL, actions to re-write link(s) begin",
- tag_name: "name of the tag containing the target href",
- href_pattern: "this variable is searched over all anchors (<a href>) for which the link need to be re-written upon a match",
- snr_pattern: [
- {
- search: "pattern-to-search-for",
- replace: "pattern-to-replace-with",
- },
- {
- search: "more-pattern-to-search-for",
- replace: "more-pattern-to-replace-with",
- },
- ]
- },
- *
- *
- */
-
- {
- url_snip: "sciencedirect.com",
- tag_name: "a",
- href_pattern: "sdarticle.pdf",
- snr_pattern: [
- {
- search: "http://www.sciencedirect.com",
- replace: "http://www.sciencedirect.com.wwwproxy0.library.unsw.edu.au",
- },
- ]
- },
- {
- url_snip: "ieeexplore",
- tag_name: "a",
- href_pattern: "stamp.jsp",
- snr_pattern: [
- {
- search: "http://ieeexplore.ieee.org",
- replace: "http://ieeexplore.ieee.org.wwwproxy0.library.unsw.edu.au",
- },
- ]
- },
- {
- url_snip: "ieeexplore",
- tag_name: "a",
- href_pattern: "Sarticle.jsp",
- snr_pattern: [
- {
- search: "http://ieeexplore.ieee.org",
- replace: "http://ieeexplore.ieee.org.wwwproxy0.library.unsw.edu.au",
- },
- {
- search: "articleSale/Sarticle.jsp",
- replace: "stamp/stamp.jsp",
- },
- ]
- },
- {
- url_snip: "springerlink.*metapress",
- tag_name: "a",
- href_pattern: "fulltext",
- snr_pattern: [
- {
- search: "http://springerlink.metapress.com",
- replace: "http://springerlink.metapress.com.wwwproxy0.library.unsw.edu.au",
- },
- ]
- },
- {
- url_snip: "www.*springerlink",
- tag_name: "a",
- href_pattern: "fulltext",
- snr_pattern: [
- {
- search: "http://www.springerlink.com",
- replace: "http://www.springerlink.com.wwwproxy0.library.unsw.edu.au",
- },
- ]
- },
-
- {
- url_snip: "portal.acm",
- tag_name: "a",
- href_pattern: "purchase.cfm",
- snr_pattern: [
- {
- search: "http://portal.acm.org",
- replace: "http://portal.acm.org.wwwproxy0.library.unsw.edu.au",
- },
- {
- search: "purchase.cfm?",
- replace: "ft_gateway.cfm?type=pdf&",
- },
- ]
- },
- {
- url_snip: "portal.acm",
- tag_name: "a",
- href_pattern: "ft_gateway.cfm.*type=pdf&coll=DL",
- snr_pattern: [
- {
- search: "http://portal.acm.org",
- replace: "http://portal.acm.org.wwwproxy0.library.unsw.edu.au",
- },
- ]
- },
-
- ]
-
-
- monkey_icon = "data:image/png;base64,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"
-
-
- function find_tags(tag_name, href_pattern)
- {
- var tags = document.getElementsByTagName(tag_name);
- var href_tags = new Array();
-
- for (var i=0;i<tags.length;i++)
- {
- if (tags[i].href.match(href_pattern))
- {
- href_tags[href_tags.length] = tags[i];
- }
- }
-
- return href_tags;
- }
-
-
- function rewrite_href(href_tags, snr_pattern)
- {
- for (var i=0;i<href_tags.length;i++)
- {
- /* replace old link, with new */
- newElement = document.createElement("a");
- node = href_tags[i].parentNode.insertBefore(newElement, href_tags[i].nextSibling);
- node.style.textDecoration = "blink";
- node.innerHTML = "[ Down<img style='border:0px' src=" + monkey_icon + ">Load ]";
- node.href = href_tags[i].href;
- node.target = "_blank";
- href_tags[i].parentNode.removeChild(href_tags[i]);
-
- /* re-write href of the new link */
- for (var j=0;j<snr_pattern.length;j++)
- {
- node.href = node.href.replace(snr_pattern[j].search,snr_pattern[j].replace);
- }
- }
- }
-
-
- for (var i=0;i<SITES.length;i++)
- {
- if (document.URL.match(SITES[i].url_snip))
- {
- var href_tags = find_tags(SITES[i].tag_name, SITES[i].href_pattern);
- if ( href_tags.length > 0 )
- {
- rewrite_href(href_tags, SITES[i].snr_pattern);
- }
- }
- }