Search keywords on paste
This commit is contained in:
parent
f914d76ce8
commit
09c5247dba
7 changed files with 70 additions and 61 deletions
|
@ -1,4 +1,5 @@
|
|||
import * as parsers from './parsers';
|
||||
import * as urls from '../../shared/urls';
|
||||
import TabPresenter from '../presenters/tab';
|
||||
import WindowPresenter from '../presenters/window';
|
||||
import SettingRepository from '../repositories/setting';
|
||||
|
@ -103,6 +104,6 @@ export default class CommandIndicator {
|
|||
|
||||
async urlOrSearch(keywords) {
|
||||
let settings = await this.settingRepository.get();
|
||||
return parsers.normalizeUrl(keywords, settings.search);
|
||||
return urls.normalizeUrl(keywords, settings.search);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,27 +1,3 @@
|
|||
const trimStart = (str) => {
|
||||
// NOTE String.trimStart is available on Firefox 61
|
||||
return str.replace(/^\s+/, '');
|
||||
};
|
||||
|
||||
const normalizeUrl = (keywords, searchSettings) => {
|
||||
try {
|
||||
return new URL(keywords).href;
|
||||
} catch (e) {
|
||||
if (keywords.includes('.') && !keywords.includes(' ')) {
|
||||
return 'http://' + keywords;
|
||||
}
|
||||
let template = searchSettings.engines[searchSettings.default];
|
||||
let query = keywords;
|
||||
|
||||
let first = trimStart(keywords).split(' ')[0];
|
||||
if (Object.keys(searchSettings.engines).includes(first)) {
|
||||
template = searchSettings.engines[first];
|
||||
query = trimStart(trimStart(keywords).slice(first.length));
|
||||
}
|
||||
return template.replace('{}', encodeURIComponent(query));
|
||||
}
|
||||
};
|
||||
|
||||
const mustNumber = (v) => {
|
||||
let num = Number(v);
|
||||
if (isNaN(num)) {
|
||||
|
@ -52,4 +28,4 @@ const parseSetOption = (word, types) => {
|
|||
}
|
||||
};
|
||||
|
||||
export { normalizeUrl, parseSetOption };
|
||||
export { parseSetOption };
|
||||
|
|
Reference in a new issue