Skip to content

Instantly share code, notes, and snippets.

@krisrok
Created January 25, 2023 10:14
Show Gist options
  • Save krisrok/8cd1603ce3e19678d1d4cbb28a2cfca5 to your computer and use it in GitHub Desktop.
Save krisrok/8cd1603ce3e19678d1d4cbb28a2cfca5 to your computer and use it in GitHub Desktop.
DuckDuckGo To Google Button forked from https://greasyfork.org/scripts/376631 ==UserScript==
// ==UserScript==
// @name DuckDuckGo to Google Button (forked)
// @namespace https://puac.de/
// @version 0.1.2
// @description Displays a button on DuckDuckGo that redirects to the same search on Google. Forked to fix incorrectly encoded url parameters.
// @author Hans Puac, krisrok
// @match https://duckduckgo.com/*
// @run-at document-end
// ==/UserScript==
(function () {
'use strict';
var searchPattern = /[?|&]ia=([^&]*)/;
var searchTypeMap = {
'images': 'isch',
'videos': 'vid',
'news': 'nws'
};
var generateImage = function () {
var image = document.createElement("img");
image.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAABPdJREFUWIXFl31MU1cYxp9zb297S2mpUBTq/CIVBgboFKdGzYxOo1uiWRZJplG3ScT4gdNNmc6MkCULjg0TxCgbTqeLcy6bRpGRGafbzJgfIIrg12DoHIwCpbaln/fesz8mncptS53E96/b+z73fX6n555z3wM85SCRiHt378gSrN3rxZ6OSbDahglOOw8qEHAqkdUOcZDY2BZFnKHSKyi2x+fnO54YgKOsOM/XdHWrePNaPCgNq6eaaKpMN59nRg1fGrPinZuPDeDcU5rpb2io8jfUGwcC2g8kSkPV017Yr80vfIMAsuRBAew7i1d6TlbvhMPOPI75g8GYs1qZZLM5Njf3Xr+crHnpti3eyqO7noQ5ABC/TyOyNkk29+gNR1nJYk/VkS+p1xO+MKeEpFRS4nIRUNn6YFPSOumU8SbDknX2sAC9FTuMvSerb6PLoghmyo4Y4eZS0r9DXFy5dkXeWQJQaX+xxuVgXvW1t63211+cSNwuAgDsuIxOMu75sXJ/vSyAbeuGWl/NL+NlhSoeqhmzv9COblhOsr8RgxW079mVJlyp/ZEKEkMnZwYdeT8A343N0z0nGn/ynGjvNy00SkM18+Yvi1614UCoYgF9eTnXxdr4+Jzwe0HAzH/plQvorswSe+fAvtMC9I2REPALFr6rW7tx20DMIw0CAPTwQtaX8KuX8VlYAKCK5+D4VAWxwwNuwpTrQz4qTR0Mc+D+MhQyRy7oMwcAIlyCLrcFqqlDwSSNeXOwzAHg37fdb3u5X8ZvgfqlLpty8vqaUAXyD7kud/RIpkiNzWMUH7w1ly9SAAAR76XI7ZMMP7IJOBeykNMN4x0roiIFSEqQpgF9O6Hoi5ETSQrNnUgLDzS8PmL4D+ApBCHgAgCU5W2yIsE+atAAGHgCAOBibsiJBPdfg7b8eAXagb5VwBkqASx/UNDOmfBez0R9Wf3qSWvMS4O+iRnpamPWaLDB8jXNrru/d9C4R+9rVKQuAKAwKY/5/jaKjLeNBYAafh4KOmLg8Lcjhr+9F0BaMIPcLOIH4JfLlVZ7nm3t7G9OAOiV9Gvg/hQQUigxukkXJRBUKHOw4S4Hh98FADhnuZxadKF8UzCAUNFmlQ4JMl/pUfFwvj5L3RwAAACqNa/bJK2ke9osD4kpKKpbzxYV11YsicT84+PukvN/SJlyOVMCW9V3HQBQJm05x6gSL8s94BRd5GjLqf3v/7bjwMLDh4PONwAUnN7Lf3jqzJHvG8T1cvloNZX0KmFt3++HPr27mw4kHr/5850OjzVoQzJck+BJi0s6EquK2b3x2J9nUVgoFZwui9Zo+XmdbtuyRuv1ORZ3DzdBNxfN9dmQ6MO8s9PZrzbPVy+SBQCA7XX7Xvu2+YeDHtEbaqAAAIYw4KCgXuqTbW5N2hS4m1fB4dADAJKHke6Zuqhh2dkk0NDIPlhcW5F/tOVUkVf0hYUIF3qVHsOdqyE4kr0zx7Jpy2erWx7MB23LS+r25VTdPlNu8zr+93adrBvjnKF6e/KKWYmNj+ZCHkzKLh0cd6Wrqbqu+9ozj2PMEhbTEydcGJFgfHFd8pLwXXGw+KTu81WN3bcKrlpvDZUGcDRTshzM8anNabGmvDUZi6tCaSM6nH525WBGu8eW1+XuntrpvmfsFVy8JAqMklUJOi661xClbzWohpwxaKNLclIXtUVS+6nFP4ZN4ITLRid2AAAAAElFTkSuQmCC';
image.style.width = '15px';
image.style.float = 'left';
image.style.margin = '10px 7px';
image.style.cursor = 'pointer';
return image;
};
var redirect = function () {
var url = 'https://www.google.com/search?q=';
var match = searchPattern.exec(window.location.search);
var searchInput = document.getElementById('search_form_input').value;
url += encodeURIComponent(searchInput);
if (match && match.length > 0) {
var searchType = match[1];
if (typeof searchTypeMap[searchType] !== 'undefined') {
url += '&tbm=' + searchTypeMap[searchType];
}
}
window.location.href = url;
};
var duckbar = document.getElementById('duckbar');
if (duckbar !== null) {
var image = generateImage();
duckbar.prepend(image);
image.addEventListener('click', redirect);
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment