JSFiddle - React, Tailwind, and code Playground
by evgkch
Babel + JSX
function request(path, params) {;
const method = params.method || 'GET';
let qs = '';
let body;
const headers = params.headers || {
'Accept': 'application/json',
'Content-Type': 'application/json; charset=UTF-8',
};
if (['GET', 'DELETE'].indexOf(method) > -1)
qs = '?' + getQueryString(params.data);
else // POST or PUT
body = JSON.stringify(params.data);
return fetch(path + qs, { method, headers, body })
.then(response => response.json())
.catch(e => {console.error(e); return e;});
}
class MultitranAPI {
langs = new Map([
['en', ['English', 1]],
['de', ['German', 3]],
['fr', ['French', 4]],
['es', ['Spain', 5]],
['it', ['Italian', 23]],
['nl', ['Dutch', 24]],
['lv', ['Latvian', 27]],
['et', ['Estonian', 26]],
['ja', ['Japanese', 28]],
['af', ['African', 31]],
['eo', ['Esperanto', 34]],
['xal', ['Kalmyk', 35]],
])
getLanguages() {
// return dict(map(lambda x: (x[0], x[1][0]), self.langs.items()))
}
async translate(word, lang = 1) {
const page = `http://www.multitran.ru/c/m.exe?CL=1&s=${lang}&l1=${word}`;
console.log(await request(page, { method: 'POST' }))
/* page = yield getPage(page)
translation = ''
html = etree.HTML(page)
trs = html.xpath('//form[@id="translation"]/../table[2]/tr')
for tr in trs:
tds = tr.xpath('td')
for td in tds:
for elem in td.xpath('descendant::text()'):
translation += '%s' % elem.rstrip('\r\n')
translation += '\n'
returnValue(translation) */
}
}
const a = new MultitranAPI;
a.translate('test')