mirror of
https://github.com/FreshRSS/FreshRSS.git
synced 2026-01-02 18:37:52 -05:00
Closes #6222 Translate the `api/index.php` page * Update app/i18n/pl/api.php Co-authored-by: Inverle <inverle@proton.me> * Update app/i18n/de/api.php Co-authored-by: maTh <1645099+math-GH@users.noreply.github.com> * i18n: fr * <kbd> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> --------- Co-authored-by: Inverle <inverle@proton.me> Co-authored-by: maTh <1645099+math-GH@users.noreply.github.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
94 lines
2.3 KiB
JavaScript
94 lines
2.3 KiB
JavaScript
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-3.0
|
|
'use strict';
|
|
|
|
const check = function (url, next) {
|
|
if (!url || !next) {
|
|
return;
|
|
}
|
|
const req = new XMLHttpRequest();
|
|
req.open('GET', url, true);
|
|
req.setRequestHeader('Authorization', 'GoogleLogin auth=test/1');
|
|
req.onerror = function (e) {
|
|
next('FAIL: HTTP ' + e);
|
|
};
|
|
req.onload = function () {
|
|
if (this.status == 200) {
|
|
next(this.response);
|
|
} else {
|
|
next('FAIL: HTTP error ' + this.status + ' ' + this.statusText);
|
|
}
|
|
};
|
|
req.send();
|
|
};
|
|
|
|
const pass = function (output) {
|
|
output.innerHTML = output.dataset.i18nPass;
|
|
};
|
|
|
|
const encodingSupport = function (output) {
|
|
output.innerHTML = output.dataset.i18nEncodingSupport;
|
|
};
|
|
|
|
const invalidConfiguration = function (output) {
|
|
output.innerHTML = output.dataset.i18nInvalidConfiguration;
|
|
};
|
|
|
|
const unknownError = function (output, message) {
|
|
output.innerHTML = output.dataset.i18nUnknownError + message;
|
|
};
|
|
|
|
const checkGReaderAPI = function () {
|
|
const output = document.getElementById('greaderOutput');
|
|
const apiUrl = output.dataset.apiUrl;
|
|
|
|
check(apiUrl + '/check/compatibility', function next(result1) {
|
|
if (result1 === 'PASS') {
|
|
pass(output);
|
|
} else {
|
|
check(apiUrl + '/check%2Fcompatibility', function next(result2) {
|
|
if (result2 === 'PASS') {
|
|
encodingSupport(output);
|
|
} else {
|
|
check('./greader.php/check/compatibility', function next(result3) {
|
|
if (result3 === 'PASS') {
|
|
invalidConfiguration(output);
|
|
} else {
|
|
unknownError(output, result1);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
};
|
|
|
|
const checkFeverAPI = function () {
|
|
const output = document.getElementById('feverOutput');
|
|
const apiUrl = output.dataset.apiUrl;
|
|
|
|
check(apiUrl + '?api', function next(result1) {
|
|
try {
|
|
JSON.parse(result1);
|
|
pass(output);
|
|
} catch (ex) {
|
|
check('./fever.php?api', function next(result2) {
|
|
try {
|
|
JSON.parse(result2);
|
|
invalidConfiguration(output);
|
|
} catch (ex) {
|
|
unknownError(output, result1);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
};
|
|
|
|
/**
|
|
* The API tests are done this way to simulate in a more accurate manner
|
|
* outside requests. Since the APIs are used by third-party tools, they
|
|
* cannot interact at the server level.
|
|
*/
|
|
checkGReaderAPI();
|
|
checkFeverAPI();
|
|
// @license-end
|