Started querying wikipedia
This commit is contained in:
+23
-4
@@ -3,11 +3,30 @@
|
||||
let app = {
|
||||
el: '#app',
|
||||
data: {
|
||||
sample: 'Wikipedia translator'
|
||||
globals: globals,
|
||||
lang: 'en',
|
||||
query: '',
|
||||
res: {}
|
||||
},
|
||||
methods: {},
|
||||
'mounted': {},
|
||||
'created': {}
|
||||
methods: {
|
||||
'doQuery': () => {
|
||||
const self = app;
|
||||
self.res = '';
|
||||
if (self.query.length) {
|
||||
const url = `https://${self.lang}.wikipedia.org/w/index.php?search=${encodeURIComponent(self.query)}`;
|
||||
utils.get(url, true).then((res) => {
|
||||
const doc = utils.createDocument(res);
|
||||
const text = doc.getElementsByClassName('mw-parser-output');
|
||||
self.res = {
|
||||
title: doc.title.split(/[-—]/g)[0].trim(),
|
||||
link: url,
|
||||
extract: text[0] ? text[0].innerText.split('\n')[0] + '...' : undefined,
|
||||
};
|
||||
app.doc = doc; //TODO temp
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
window.onload = () => {
|
||||
|
||||
+33
-4
@@ -1,4 +1,4 @@
|
||||
/* exported utils */
|
||||
/* exported utils, globals */
|
||||
|
||||
const utils = {
|
||||
get: (url, proxy = false) => {
|
||||
@@ -8,10 +8,39 @@ const utils = {
|
||||
const http = (window.location.protocol === 'http:' ? 'http:' : 'https:');
|
||||
url = http + '//cors-anywhere.herokuapp.com/' + url;
|
||||
}
|
||||
xhr.open("GET", url);
|
||||
xhr.onload = () => resolve(xhr.responseText);
|
||||
xhr.onerror = () => reject(xhr.statusText);
|
||||
xhr.open('GET', url);
|
||||
xhr.onload = () => {
|
||||
try {
|
||||
resolve(JSON.parse(xhr.responseText));
|
||||
} catch (ignored) {
|
||||
resolve(xhr.responseText);
|
||||
}
|
||||
};
|
||||
xhr.onerror = () => reject(xhr);
|
||||
xhr.send();
|
||||
});
|
||||
},
|
||||
createDocument: (html) => {
|
||||
return new DOMParser().parseFromString(html, 'text/html');
|
||||
}
|
||||
};
|
||||
|
||||
const globals = {
|
||||
langs: [
|
||||
{n: 'English', v: 'en'},
|
||||
{n: 'Français', v: 'fr'},
|
||||
{n: 'Español', v: 'es'},
|
||||
{n: 'Deutsch', v: 'de'},
|
||||
{n: 'Italiano', v: 'it'},
|
||||
{n: 'Nederlands', v: 'nl'},
|
||||
{n: '日本語', v: 'ja'},
|
||||
{n: 'Polski', v: 'pl'},
|
||||
{n: 'Português', v: 'pt'},
|
||||
{n: 'Русский', v: 'ru'},
|
||||
{n: 'Sinugboanong Binisaya', v: 'ceb'},
|
||||
{n: 'Svenska', v: 'sv'},
|
||||
{n: 'Tiếng Việt', v: 'vi'},
|
||||
{n: 'Winaray', v: 'war'},
|
||||
{n: '中文', v: 'zh'},
|
||||
]
|
||||
};
|
||||
Reference in New Issue
Block a user