NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Google Direct Links // @namespace // @version 2.0.3 // @description Skip redirection URL on Google search results. // @include *www.google.com/* // @include *mail.google.com/* // @include *encrypted.google.com/* // @require https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js // @updateURL https://openuserjs.org/install/Joeviocoe/Google_Direct_Links.user.js // @downloadURL https://openuserjs.org/install/Joeviocoe/Google_Direct_Links.user.js // @icon https://www.google.com/s2/favicons?domain=google.com // @copyright 2018+, Joeviocoe // @license MIT // @noframes // ==/UserScript== // Copyright (c) 2018, Joeviocoe // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright notice, // this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above copyright notice, // this list of conditions and the following disclaimer in the documentation // and/or other materials provided with the distribution. // * Neither the name of Joeviocoe nor the names of its contributors // may be used to endorse or promote products derived from this software // without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // /*jslint browser: true*/ /*global $, jQuery, alert*/ if (window.location.href.indexOf("encrypted.google.com") > -1) { window.location.href = window.location.href.replace('encrypted','www'); } var counter = 0; function links() { console.log("Google Direct Links: Removing redirects on " + document.getElementsByTagName("a").length + " URLs"); var links = document.getElementsByTagName("a"); for ( var i = 0; i < links.length; i++ ) { var link = links[i]; if (link.hasAttribute("data-saferedirecturl")) { link.removeAttribute("data-saferedirecturl"); } if (link.hasAttribute("onmousedown")) { link.removeAttribute("onmousedown"); if (link.removeEventListener) { link.removeEventListener("mousedown", link.onmousedown, false); } else if(link.detachEvent) { link.detachEvent("onmousedown", link.onmousedown); } } if (link.href.indexOf("&sa=") > -1) { link.setAttribute("href", decodeURIComponent(decodeURIComponent(decodeURIComponent(link.href)).split("&sa=")[0])); } if (link.href.indexOf("aclk?sa=") > -1) { link.setAttribute("href", "http" + decodeURIComponent(decodeURIComponent(decodeURIComponent(link.href)).split("http").slice(-1)[0].split("&ctype=")[0])); link.setAttribute("target", "_blank"); } if (link.href.indexOf("s_dest_url=") > -1) { link.setAttribute("href", "http" + decodeURIComponent(decodeURIComponent(decodeURIComponent(link.href)).split("http").slice(-1)[0])); link.setAttribute("target", "_blank"); } if (link.href.indexOf("url=q?") > -1) { link.setAttribute("href", "http" + decodeURIComponent(decodeURIComponent(decodeURIComponent(link.href)).split("http").slice(-1)[0].split("&sa=")[0])); link.setAttribute("target", "_blank"); } } } function images() { $('span:contains("Images may be")').remove(); $('html').contents().find('a[href][data-ved]').children('img[onload][src]').each(function(){ var url = $(this).attr('src'); $(this).parent('a[href][data-ved]').attr('href',url).removeAttr('ping').removeAttr('data-ved'); if ( url.indexOf("base64") < 0 ) { console.log("Google Direct Links: Removing redirects on Image - " + url); } }); } $('*').on('click', function (e) { if ( counter === 0 ) { setTimeout (function() { links(); counter = 0; }, 1000); } counter++; }); $('input').keydown( function(e) { var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0; if(key == 13) { setTimeout (function() { links(); counter = 0; }, 1000); } }); if (window.location.href.indexOf("tbm=isch") > -1) { images(); $('*').on('mousemove', function (e) { if ( counter === 0 ) { setTimeout (function() { images(); counter = 0; }, 1000); } counter++; }); } links(); setTimeout (function() { links(); }, 2000);