search with engines
This commit is contained in:
parent
8a8222158c
commit
0e924a27d1
1 changed files with 29 additions and 4 deletions
|
@ -2,11 +2,36 @@ import * as tabs from '../background/tabs';
|
|||
import * as histories from '../background/histories';
|
||||
import * as consoleActions from './console';
|
||||
|
||||
const normalizeUrl = (string) => {
|
||||
const DEFAULT_SEARCH_ENGINES = {
|
||||
default: 'google',
|
||||
engines: {
|
||||
'google': 'https://google.com/search?q={}',
|
||||
'yahoo': 'https://search.yahoo.com/search?p={}',
|
||||
'bing': 'https://www.bing.com/search?q={}',
|
||||
'duckduckgo': 'https://duckduckgo.com/?q={}',
|
||||
'twitter': 'https://twitter.com/search?q={}',
|
||||
'wikipedia': 'https://en.wikipedia.org/w/index.php?search={}'
|
||||
}
|
||||
};
|
||||
|
||||
const normalizeUrl = (string, searchConfig) => {
|
||||
try {
|
||||
return new URL(string).href;
|
||||
} catch (e) {
|
||||
return 'http://' + string;
|
||||
if (string.includes('.') && !string.includes(' ')) {
|
||||
return 'http://' + string;
|
||||
}
|
||||
let query = encodeURI(string);
|
||||
let template = searchConfig.engines[
|
||||
searchConfig.default
|
||||
];
|
||||
for (let key in searchConfig.engines) {
|
||||
if (string.startsWith(key + ' ')) {
|
||||
query = encodeURI(string.replace(key + ' ', ''));
|
||||
template = searchConfig.engines[key];
|
||||
}
|
||||
}
|
||||
return template.replace('{}', query);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -43,10 +68,10 @@ const doCommand = (name, remaining) => {
|
|||
case 'o':
|
||||
case 'open':
|
||||
// TODO use search engined and pass keywords to them
|
||||
return openCommand(normalizeUrl(remaining));
|
||||
return openCommand(normalizeUrl(remaining, DEFAULT_SEARCH_ENGINES));
|
||||
case 't':
|
||||
case 'tabopen':
|
||||
return tabopenCommand(normalizeUrl(remaining));
|
||||
return tabopenCommand(normalizeUrl(remaining, DEFAULT_SEARCH_ENGINES));
|
||||
case 'b':
|
||||
case 'buffer':
|
||||
return bufferCommand(remaining);
|
||||
|
|
Reference in a new issue