anylang
Version:
A translator's kit that uses the free APIs of Google Translate, Yandex, Bing, ChatGPT, and other LLMs
53 lines (51 loc) • 6.8 kB
JavaScript
// Source: https://github.com/FilipePS/Traduzir-paginas-web/blob/f3a4956a1aa96b7a9124864158a5200827694521/background/translationService.js
let lastYandexRequestSIDTime = null;
let yandexTranslateSID = null;
let yandexSIDNotFound = false;
export function getYandexSID(fetcher) {
return new Promise((resolve) => {
let updateYandexSid = false;
if (lastYandexRequestSIDTime) {
const date = new Date();
if (yandexTranslateSID) {
date.setHours(date.getHours() - 12);
}
else if (yandexSIDNotFound) {
date.setMinutes(date.getMinutes() - 30);
}
else {
date.setMinutes(date.getMinutes() - 2);
}
if (date.getTime() > lastYandexRequestSIDTime) {
updateYandexSid = true;
}
}
else {
updateYandexSid = true;
}
if (updateYandexSid) {
lastYandexRequestSIDTime = Date.now();
const url = 'https://translate.yandex.net/website-widget/v1/widget.js?widgetId=ytWidget&pageLang=es&widgetTheme=light&autoMode=false';
fetcher(url, { responseType: 'text' })
.then((response) => {
const result = /sid:\s'[0-9a-f.]+/.exec(typeof response.data === 'string' ? response.data : '');
if ((result === null || result === void 0 ? void 0 : result[0]) && result[0].length > 7) {
yandexTranslateSID = result[0].substring(6);
yandexSIDNotFound = false;
}
else {
yandexSIDNotFound = true;
}
resolve();
})
.catch((error) => {
console.error(error);
resolve();
});
}
else {
resolve();
}
}).then(() => yandexTranslateSID);
}
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRyYW5zbGF0b3JzL1lhbmRleFRyYW5zbGF0b3IvZ2V0WWFuZGV4U0lELnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBJQUEwSTtBQUkxSSxJQUFJLHdCQUF3QixHQUFrQixJQUFJLENBQUM7QUFDbkQsSUFBSSxrQkFBa0IsR0FBa0IsSUFBSSxDQUFDO0FBQzdDLElBQUksaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0FBRTlCLE1BQU0sVUFBVSxZQUFZLENBQUMsT0FBZ0I7SUFDNUMsT0FBTyxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ3BDLElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLHdCQUF3QixFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN4QixJQUFJLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7aUJBQU0sSUFBSSxpQkFBaUIsRUFBRSxDQUFDO2dCQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN6QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLHdCQUF3QixFQUFFLENBQUM7Z0JBQy9DLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDeEIsQ0FBQztRQUNGLENBQUM7YUFBTSxDQUFDO1lBQ1AsZUFBZSxHQUFHLElBQUksQ0FBQztRQUN4QixDQUFDO1FBRUQsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNyQix3QkFBd0IsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDdEMsTUFBTSxHQUFHLEdBQ1IseUhBQXlILENBQUM7WUFFM0gsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQztpQkFDcEMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2xCLE1BQU0sTUFBTSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FDdEMsT0FBTyxRQUFRLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUN0RCxDQUFDO2dCQUVGLElBQUksQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUcsQ0FBQyxDQUFDLEtBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDekMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDNUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO2dCQUMzQixDQUFDO3FCQUFNLENBQUM7b0JBQ1AsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO2dCQUMxQixDQUFDO2dCQUVELE9BQU8sRUFBRSxDQUFDO1lBQ1gsQ0FBQyxDQUFDO2lCQUNELEtBQUssQ0FBQyxDQUFDLEtBQWMsRUFBRSxFQUFFO2dCQUN6QixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyQixPQUFPLEVBQUUsQ0FBQztZQUNYLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDUCxPQUFPLEVBQUUsQ0FBQztRQUNYLENBQUM7SUFDRixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUNuQyxDQUFDIiwiZmlsZSI6InRyYW5zbGF0b3JzL1lhbmRleFRyYW5zbGF0b3IvZ2V0WWFuZGV4U0lELmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vRmlsaXBlUFMvVHJhZHV6aXItcGFnaW5hcy13ZWIvYmxvYi9mM2E0OTU2YTFhYTk2YjdhOTEyNDg2NDE1OGE1MjAwODI3Njk0NTIxL2JhY2tncm91bmQvdHJhbnNsYXRpb25TZXJ2aWNlLmpzXG5cbmltcG9ydCB7IEZldGNoZXIgfSBmcm9tICcuLi8uLi91dGlscy9mZXRjaGVyL3R5cGVzJztcblxubGV0IGxhc3RZYW5kZXhSZXF1ZXN0U0lEVGltZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5sZXQgeWFuZGV4VHJhbnNsYXRlU0lEOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbmxldCB5YW5kZXhTSUROb3RGb3VuZCA9IGZhbHNlO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0WWFuZGV4U0lEKGZldGNoZXI6IEZldGNoZXIpIHtcblx0cmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG5cdFx0bGV0IHVwZGF0ZVlhbmRleFNpZCA9IGZhbHNlO1xuXHRcdGlmIChsYXN0WWFuZGV4UmVxdWVzdFNJRFRpbWUpIHtcblx0XHRcdGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuXHRcdFx0aWYgKHlhbmRleFRyYW5zbGF0ZVNJRCkge1xuXHRcdFx0XHRkYXRlLnNldEhvdXJzKGRhdGUuZ2V0SG91cnMoKSAtIDEyKTtcblx0XHRcdH0gZWxzZSBpZiAoeWFuZGV4U0lETm90Rm91bmQpIHtcblx0XHRcdFx0ZGF0ZS5zZXRNaW51dGVzKGRhdGUuZ2V0TWludXRlcygpIC0gMzApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZGF0ZS5zZXRNaW51dGVzKGRhdGUuZ2V0TWludXRlcygpIC0gMik7XG5cdFx0XHR9XG5cdFx0XHRpZiAoZGF0ZS5nZXRUaW1lKCkgPiBsYXN0WWFuZGV4UmVxdWVzdFNJRFRpbWUpIHtcblx0XHRcdFx0dXBkYXRlWWFuZGV4U2lkID0gdHJ1ZTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dXBkYXRlWWFuZGV4U2lkID0gdHJ1ZTtcblx0XHR9XG5cblx0XHRpZiAodXBkYXRlWWFuZGV4U2lkKSB7XG5cdFx0XHRsYXN0WWFuZGV4UmVxdWVzdFNJRFRpbWUgPSBEYXRlLm5vdygpO1xuXHRcdFx0Y29uc3QgdXJsID1cblx0XHRcdFx0J2h0dHBzOi8vdHJhbnNsYXRlLnlhbmRleC5uZXQvd2Vic2l0ZS13aWRnZXQvdjEvd2lkZ2V0LmpzP3dpZGdldElkPXl0V2lkZ2V0JnBhZ2VMYW5nPWVzJndpZGdldFRoZW1lPWxpZ2h0JmF1dG9Nb2RlPWZhbHNlJztcblxuXHRcdFx0ZmV0Y2hlcih1cmwsIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfSlcblx0XHRcdFx0LnRoZW4oKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgcmVzdWx0ID0gL3NpZDpcXHMnWzAtOWEtZi5dKy8uZXhlYyhcblx0XHRcdFx0XHRcdHR5cGVvZiByZXNwb25zZS5kYXRhID09PSAnc3RyaW5nJyA/IHJlc3BvbnNlLmRhdGEgOiAnJyxcblx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0aWYgKHJlc3VsdD8uWzBdICYmIHJlc3VsdFswXS5sZW5ndGggPiA3KSB7XG5cdFx0XHRcdFx0XHR5YW5kZXhUcmFuc2xhdGVTSUQgPSByZXN1bHRbMF0uc3Vic3RyaW5nKDYpO1xuXHRcdFx0XHRcdFx0eWFuZGV4U0lETm90Rm91bmQgPSBmYWxzZTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0eWFuZGV4U0lETm90Rm91bmQgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHJlc29sdmUoKTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LmNhdGNoKChlcnJvcjogdW5rbm93bikgPT4ge1xuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuXHRcdFx0XHRcdHJlc29sdmUoKTtcblx0XHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJlc29sdmUoKTtcblx0XHR9XG5cdH0pLnRoZW4oKCkgPT4geWFuZGV4VHJhbnNsYXRlU0lEKTtcbn1cbiJdfQ==