🏠 Home 

Better Google (Updated)

Don't be evil

// ==UserScript==
// @name         Better Google (Updated)
// @namespace    google
// @version      0.1.25
// @description  Don't be evil
// @author       aligo, adambh, tejaslodaya, re11ding, drwonky
// @license      MIT
// @supportURL   https://github.com/aligo/better-google
// @supportURL   https://github.com/drwonky/better-google
// @match        https://*.google.com/search?*
// @include      /^https?://(?:www|encrypted|ipv[46])\.google\.[^/]+/(?:$|[#?]|search|webhp)/
// @grant        none
// @run-at       document-start
// ==/UserScript==
(function() {
'use strict';
var betterGoogleRow = function(el) {
var byrV5b = el.querySelectorAll('.byrV5b');
var aboutR###lt = el.querySelectorAll('.csDOgf');
var otherAboutR###lt = el.querySelectorAll('.eFM0qc');
if (byrV5b.length > 0) {
var linkEl = el.querySelector('a');
var addEl = linkEl.nextSibling;
var betterAddEl = document.createElement('div');
betterAddEl.className = 'btrAdd';
if (addEl) {
for (var i = 0; i < addEl.children.length; i++) {
var _el = addEl.children[i];
if (_el.className.indexOf('byrV5b') == -1) {
betterAddEl.appendChild(_el);
}
}
}
var betterEl = document.createElement('div');
betterEl.className = 'btrG';
betterEl.appendChild(betterAddEl);
el.appendChild(betterEl);
var urlEl = document.createElement('a');
urlEl.href = linkEl.href;
urlEl.target = '_blank';
urlEl.className = 'btrLink';
var urlCiteEl = document.createElement('cite');
urlCiteEl.innerText = linkEl.href;
urlCiteEl.className = 'iUh30 bc';
urlEl.appendChild(urlCiteEl);
if (otherAboutR###lt[0]) {
otherAboutR###lt[0].style = 'text-wrap: nowrap;';
urlEl.appendChild(otherAboutR###lt[0]);
}
var maxWidth = el.clientWidth - betterAddEl.offsetWidth - 10;
betterEl.insertBefore(urlEl, betterAddEl);
if (urlEl.offsetWidth > maxWidth) {
urlEl.style.width = maxWidth.toString() + 'px';
}
if(aboutR###lt[0]){
betterEl.appendChild(aboutR###lt[0]);
}
byrV5b.forEach(function(el) { el.remove() });
if (linkEl.querySelector('br:first-child')){
linkEl.querySelector('br:first-child').remove();
}
}
}
var prevR###ltCount = 0;
var bettered = false;
var runBetterGoogle = function() {
if (prevR###ltCount != document.querySelectorAll('.MjjYud .yuRUbf').length) {
document.querySelectorAll('.MjjYud .yuRUbf').forEach(betterGoogleRow);
prevR###ltCount = document.querySelectorAll('.MjjYud .yuRUbf').length;
}
if ( !bettered ) {
if ( MutationObserver != undefined ) {
var searchEl = document.getElementById('rcnt');
var observer = new MutationObserver(runBetterGoogle);
observer.observe(searchEl, {childList: true, subtree: true});
}
bettered = true;
}
};
var prepareStyleSheet = function() {
var style = document.createElement('style');
style.setAttribute('media', 'screen');
style.appendChild(document.createTextNode(''));
document.head.appendChild(style);
style.sheet.insertRule('.btrG { display: flex; word-break: break-all; line-height: 18px; }');
style.sheet.insertRule('.btrG .btrAdd { display: inline-block; vertical-align: top; }');
style.sheet.insertRule('.btrG .btrLink { display: flex; flex-direction: row; vertical-align: top; line-height: 18px; text-decoration: none !important; max-width: 570px;}');
style.sheet.insertRule('.btrG .btrLink cite.iUh30 { color: #006621; font-size: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}');
style.sheet.insertRule('.csDOgf.L48a4c { margin-top: 0px !important; }');
style.sheet.insertRule('.srKDX:has( > .kb0PBd.cvP2Ce.LnCrMe) .btrG .btrLink { max-width: 510px !important;}');
//style.sheet.insertRule('.uhHOwf.ez24Df { display: none !important; }'); //For removing images next to r###lts.
//style.sheet.insertRule('.HGLrXd.NJjxre.iUh30.ojE3Fb:not(.xe8e1b .HGLrXd.NJjxre.iUh30.ojE3Fb) { display: none !important;}');
};
var checkElementThenRun = function(selector, func) {
var el = document.querySelector(selector);
if ( el == null ) {
if (window.requestAnimationFrame != undefined) {
window.requestAnimationFrame(function(){ checkElementThenRun(selector, func)});
} else {
document.addEventListener('readystatechange', function(e) {
if (document.readyState == 'complete') {
func();
}
});
}
} else {
func();
}
}
checkElementThenRun('head', prepareStyleSheet);
checkElementThenRun('#rcnt', runBetterGoogle);
})();