Last active
July 6, 2017 09:06
-
-
Save metaquanta/eb26bde53c9356d23a6337af8c9ee862 to your computer and use it in GitHub Desktop.
load chrome search engines snippet (WiP/RIP/old Chrome only)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function() { | |
const mySearchEngines = | |
{ | |
'domain': SEARCH_DOMAIN, | |
'engines': [ | |
{ | |
'keyword': 'maps.google.com', | |
'name': 'Maps', | |
'url': 'https://www.google.com/maps/search/%s', | |
}, | |
{ | |
'keyword': 'wikipedia', | |
'name': 'Wikipedia', | |
'url': 'https://en.wikipedia.org/w/index.php?search=%s', | |
}, | |
{ | |
'keyword': 'alpha', | |
'name': 'WolframAlpha', | |
'url': 'https://www.wolframalpha.com/input/?i=%s', | |
}, | |
{ | |
'url': | |
'https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=%s', | |
}, | |
{ | |
'url': | |
'https://scholar.google.com/scholar?hl=en&q=%s', | |
}, | |
{ | |
'keyword': 'b', | |
'url': 'chrome://bookmarks/?#q=%s', | |
}, | |
{ | |
'keyword': 'h', | |
'url': 'chrome://history/?#q=%s', | |
}, | |
{'url': 'https://github.com/search?q=%s'} | |
] | |
} | |
function defaultKeyword(url) { | |
const searchDomain = mySearchEngines.domain; | |
_stripDomain = (string, domain) => | |
(string.indexOf(searchDomain) == | |
(string.length - searchDomain.length)) ? | |
string.slice(0, -searchDomain.length - 1) : | |
string; | |
_stripWww = (string) => | |
(string.indexOf('www') == 0) ? string.slice(3) : string | |
return _stripWww(_stripDomain( | |
new URL(url).hostname, mySearchEngines['domain'])); | |
} | |
function build(eng) { | |
console.log(eng) | |
return { | |
...{ | |
canBeDefault: true, | |
canBeEdited: false, | |
canBeRemoved: false, | |
default: false, | |
isOmniboxExtension: false, | |
urlLocked: false, | |
get displayName() { | |
return this.name | |
}, | |
get name() { | |
return eng.keyword.split('.')[0] | |
} | |
}, | |
...eng | |
}; | |
} | |
function iterator(engines) { | |
return (function* () { | |
for (const engine of engines) { | |
if (engine.keyword) { | |
for (const keyword of (engine.keyword instanceof Array) ? | |
engine.keyword : | |
[engine.keyword]) { | |
yield build({...engine, ...{keyword}}); | |
} | |
} else { | |
const lastKeyword = defaultKeyword(engine.url); | |
const opts = {...engine, ...{keyword: lastKeyword}} | |
yield build({...engine, ...{keyword: lastKeyword}}); | |
} | |
} | |
})(); | |
} | |
arr = Array.from(iterator(mySearchEngines.engines)); | |
console.log(arr) | |
// const semInst = SearchEngineManager.getInstance(); | |
// SearchEngineManager.updateSearchEngineList( | |
// sem.defaultsList_.dataModel_.array_, | |
// myEngines, | |
// sem.extensionList_.dataModel_.array_); | |
})() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment