Skip to content

Instantly share code, notes, and snippets.

@dnordstrom
Last active December 23, 2015 11:59
Show Gist options
  • Save dnordstrom/6632592 to your computer and use it in GitHub Desktop.
Save dnordstrom/6632592 to your computer and use it in GitHub Desktop.
Search engine management tool for OpenSearch capable browsers—including provider XML for Startpage, DuckDuckGo, DeviantArt People Search, etc.

Introduction

A search provider installer for OpenSearch capable browsers---including provider XML for Startpage, DuckDuckGo, DeviantArt People Search, etc. This initial version is just a simple installer script, to be loaded by a bookmarklet.

Compatibility: OpenSearch is implemented in Firefox (2+), Chrome, and IE (7+). Opera does not support OpenSearch—however, Opera 17+ Developer Previews feature a shiny new search engine manager. An Opera 18 preview is available at the time of writing.

Firefox Aurora is for the adventurous ones.

To do

  • Add simple bookmarklet to inject installer script on current page.
  • Extend bookmarklet to show available providers, or create XML on-the-fly.
  • Add guide for setting up provider for Startpage with custom settings URL.

Usage

Install by inject · · · bookmarklet

This is a simple method, but may be blocked if plugins such as NoScript for Firefox prevent cross-site scripting (XSS). This is a good thing, so please install NoScript if you haven't already, along with HTTPS Everywhere to redirect to HTTPS whenever available.

Due to security concerns, I cannot recommend Google Chrome.

  1. Drag this link into your bookmarks—it's a bookmarklet that prompts for a URL to a Javascript file to inject, and appends a script tag to the document body.
  2. Click it, then paste the URL to the installer (install.js), which should take care of the rest.

Note: At this time, the installer simply loads the DeviantArt People Search provider.

Install by hand · · · console

  1. Load your browser's console. In Firefox, it's located at Tools -> Web Developer -> Web Console.
  2. Call window.external.AddSearchProvider(url) with the URL to a provider XML file. For the DeviantArt People Search provider: window.external.AddSearchProvider("https://gist.github.com/dnordstrom/6632592/raw/eb09e24d9624d1927f58e3516489834b44451027/deviantart_people_search_plugin-20130919.xml");.
  3. You will receive a confirmation dialog which completes the installation.

License

WTFPL

Copyright © 2000 Daniel Nordstrom <[email protected]>
This work is free. You can redistribute it and/or modify it under the terms of the Do What The Fuck You Want To Public License, Version 2, as published by Sam Hocevar. See the COPYING file for more details.

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <[email protected]>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.
<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>DeviantArt People</ShortName>
<Description>DeviantArt People Search, based on deviantART Search by masterhuck.</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16" type="image/x-icon">data:image/x-icon;base64,AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAVVlOAGRpXQBvcmYAbXBoAHJ3bQB5em8AgYN7AI+QjACTlIEAmp+RAJyfmAClr5kApamdAKWxmwCrtJ0Aq66jALK5ogCwuqUAv7qgALW3rwC1vaoAub+qAMC7ogDDvqUAt8KuAL3AqQC/wqwAvcSwAMPHsQDKzLcAw8u5AMfOvQDO0b4Ay9TCANjVwwDW2sgA197OANzdywDa3s4A3t3MAN3l1QDk49QA4ujZAOXo2gDn694A6e7hAPL16QD19uwA9fjtAPr+9QD8//cA/v/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdERsAAAAAAAAAAAAAACEcEQ4MDxsAAAAAAAAAACQgBSAZFQIMGwAAAAAAAAAnBwAMIgoAAxEAAAAAAAAsLAAAFCwQAAAWGwAAAAAALC8AAAAxAAAAHBEAAAAAAC8IAAEAMwABAAYeAAAAAAAJAAQEADQABAQACQAAAAAAAAsLCwAzAAsLCwAAAAAAKgALAAAzLy4AAAsAGAAAACcJAC8vLikkJycACRgAAAAjAAAAACwnJwAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD8fwAA8B8AAOAPAADABwAAwAcAAIADAACAAwAAgAMAAIADAACAAwAAAAEAAAABAAAQEQAAPHkAAP//AAA=</Image>
<Url type="text/html" method="GET" template="https://browse.deviantart.com/photography/people?q={searchTerms}"/>
<moz:SearchForm>https://browse.deviantart.com/photography/people</moz:SearchForm>
</OpenSearchDescription>
<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>DuckDuckGo</ShortName>
<Description>DuckDuckGo Search, adds DuckDuckGo.com over HTTPS to your OpenSearch capable browser.</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16">data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB4UlEQVQ4jX2QvWuTURSHf/9AtmK1g1gVxUFFBBU/NnHqJHTMpoPiIFmUDkJxdxClU8HBLgqKgxRC1ZQOkVBDSNOmYtJamzQhpubzzZv3I3kcYovxvnjh4cDlnuee85Mk+fWf9Lod/j1+q87u49uULovyFRNJkrX4jq7jUWuaAst2WUgWyc0+Z/uiKFwyUaNls5AssrZRpdfvDwkaLZu1jSo7uU0qkQm2L8hA9abNbt0yft+fwvGwHI/mm1m+n5eBAOhDy/Zo2Z7RHIpEufUyTX17i/w5GQgGzXsPf7VdQxCKRLEcj29nZTAkCEWiQwKApu3StF0c1yN7SqyfEaU7wpoTndd7KxC8Qt+vgu+Cb+Gt3sWaE35CsCnICS8m5LebwenVX8BXwbog+6duDWrnrdicFCsnhNzKjtnceEV/RfQzovteOPPCXRC1p2L9qkgdE6njA9ROJ0xB5RFkhPNJJI/+H1Vmpk2Bk4f8YPT8pFg+8hfjovxA1J6JL+NChakwQTkUpsIU7wvng/Diwk+LXkaQF72UKE+JxGGhH/cmCMqhMjNNfEzEx8TySZELD1i9of37+JhQ9toBgnJopxN8Pn2IpVGxeFAsjQYjSSo9eWgI3MoOqZvXiY2IjyMiFoAk/QbkIfpi7R6kbgAAAABJRU5ErkJggg==</Image>
<Url type="text/html" method="POST" template="https://www.duckduckgo.com/">
<Param name="q" value="{searchTerms}"/>
<Param name="k1" value="-1"/> <!-- Advertisements -->
<Param name="kp" value="-1"/> <!-- Safe Search -->
<Param name="kh" value="1"/> <!-- HTTPS -->
<Param name="kg" value="p"/> <!-- POST -->
<Param name="kd" value="1"/> <!-- Redirect -->
<Param name="k4" value="-1"/> <!-- Sidebar -->
<Param name="kk" value="1"/> <!-- Shortcuts -->
<Param name="ke" value="-1"/> <!-- Feedback -->
<Param name="kr" value="-1"/> <!-- Top Links -->
</Url>
<moz:SearchForm>https://www.duckduckgo.com/</moz:SearchForm>
</OpenSearchDescription>
(function (window, console) {
console.log("Search Installer: Started.");
if (window.external && ("AddSearchProvider" in window.external)) {
/**
* Firefox 2 and IE 7, OpenSearch
*/
window.external.AddSearchProvider("https://gist.github.com/dnordstrom/6632592/raw/2620ec442c0d7454cbac6ee2c7f1319a7d82438e/deviantart_people_search_plugin-20130919.xml");
console.log("Search Installer: Successfully added search provider.");
} else {
/**
* No OpenSearch support
*/
alert("Your browser does not support OpenSearch! Firefox is recommended&mdash;try the nightly Firefox Aurora build.");
console.log("Search Installer: No OpenSearch support for search provider DeviantArt People Search.");
}
console.log("Search Installer: Finished.");
}(window, console));
<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>Startpage</ShortName>
<Description>Startpage Search, adds Startpage.com over HTTPS to your OpenSearch capable browser.</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16">data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC5klEQVQ4jV3O329TZRzH8fMfnGvmRW+88sf+AYUFJAwWJxAhyqI4gUzMWkfUZeg6cMGFlq7LqXS6snVLdWzg5mrpzNlshpNMmjFCNMYbjMR4Ia16YcSe50fX5+3FKaPxSV7J9/l8k0++VvKWNomiJrFe1zivV0lu0VtGb1cZXdek7mhjxW9qE1tTxIqK2NpDmlhREy9q4kWFUygz9nEBp/AHTj13iprRDW2syLfanFtRDF2vW1EMrWiGrmvO31Bcen+cxccCuLaNa9tkjg/Ud5r4TW2sDwra9C8rwq4ivNzAVZxdVuSbAsw+28545wD5Jr8o82KIs8uaoW+0sd5bUqbXVfR+Vecq+lzJh8lbpF4Nk28K0D9fps9VDE7d3Sq5cKHAQEEZ6928NKGsIpRVhBYUPVlFT1Yy/Uw7rm1zrSlA75Uyp7KSd7KSSHgO17a52DXM6bwyVnBBmq6rkq6rijfmFAOLiv5FxVuZMrPNO3Btm7H2IG/OSbrnJOf6/IKRY8OcuqaMdeJzaTpnJN3zko3fagBUFASzkpMTJWae9kvmH2/GeSlMbluAmeYddE+V6M5KYx2dkeaVjOTeXzX+VYb8j5tcXNW8/aUi8rWmJ13i8lN+SW5bgMGT4xyfKNE5LTlxRRirIyPM5Y0qAH05xbFpSe4H/w9w788aryVLTNdLEnuDHJmUdExKjmaEsQ6nhfnul00Avvi+ygNpAHggDaV//HnQVXQkS3z25HZc28bZG+RwWvDypDDWwTFhIkuaxrf00yZHJgQP8zM5xf6U4NDwfT59Yjsje4IcSHkcSgtjPZ8UtDqC0wuK9FqVzinB61OC0Kzk978NP5drtDmCfQnBvoTHwch92hKCtoTH/jEPa3fco9H4jUfX3C3XOPCJ8HeOx57/aU14WC3nK7REH0mtam7/WuPSquaFhMfOaIWWqEdL1GNnzLcrWhfzsFpHPLMrVmngmee2VOo8P4/7dsd8bR8J8x95G/ePEZdcmgAAAABJRU5ErkJggg==</Image>
<Url type="text/html" method="POST" template="https://www.startpage.com/do/search">
<Param name="query" value="{searchTerms}"/>
<Param name="prf" value="913d670a3438f8fa0936ad78f4bb805f"/>
</Url>
<moz:SearchForm>https://www.startpage.com/</moz:SearchForm>
</OpenSearchDescription>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment