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 histories from '../background/histories';
|
||||||
import * as consoleActions from './console';
|
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 {
|
try {
|
||||||
return new URL(string).href;
|
return new URL(string).href;
|
||||||
} catch (e) {
|
} 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 'o':
|
||||||
case 'open':
|
case 'open':
|
||||||
// TODO use search engined and pass keywords to them
|
// TODO use search engined and pass keywords to them
|
||||||
return openCommand(normalizeUrl(remaining));
|
return openCommand(normalizeUrl(remaining, DEFAULT_SEARCH_ENGINES));
|
||||||
case 't':
|
case 't':
|
||||||
case 'tabopen':
|
case 'tabopen':
|
||||||
return tabopenCommand(normalizeUrl(remaining));
|
return tabopenCommand(normalizeUrl(remaining, DEFAULT_SEARCH_ENGINES));
|
||||||
case 'b':
|
case 'b':
|
||||||
case 'buffer':
|
case 'buffer':
|
||||||
return bufferCommand(remaining);
|
return bufferCommand(remaining);
|
||||||
|
|
Reference in a new issue