mirror of
https://github.com/luxfi/festats.git
synced 2026-10-30 16:56:20 +00:00
51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
const obj2query = (obj) => {
|
|
return Object.keys(obj)
|
|
.map(function (key) {
|
|
return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]);
|
|
})
|
|
.join("&");
|
|
};
|
|
|
|
var SITE;
|
|
(function (SITE) {
|
|
SITE["rabby"] = "rabby";
|
|
SITE["mainSite"] = "mainsite";
|
|
SITE["mainApp"] = "mainapp";
|
|
})(SITE || (SITE = {}));
|
|
const domain = 'https://festats.debank.com';
|
|
const normalizeParams = (params) => {
|
|
const result = {};
|
|
Object.keys(params).forEach((key) => {
|
|
const value = params[key];
|
|
if (typeof value === 'string') {
|
|
result[key] = value;
|
|
}
|
|
else {
|
|
result[key] = JSON.stringify(value);
|
|
}
|
|
});
|
|
return result;
|
|
};
|
|
class StatsReport {
|
|
constructor(site) {
|
|
this.report = (name, params) => {
|
|
const normalizedParams = normalizeParams(params);
|
|
this.request(name, normalizedParams);
|
|
};
|
|
this.request = (name, params) => {
|
|
const url = `${domain}/${this.site}/${name}?${obj2query(params)}`;
|
|
if (typeof fetch !== 'undefined') {
|
|
fetch(url);
|
|
}
|
|
else {
|
|
const xhr = new XMLHttpRequest();
|
|
xhr.open('GET', url);
|
|
xhr.send();
|
|
}
|
|
};
|
|
this.site = site;
|
|
}
|
|
}
|
|
|
|
export { SITE, StatsReport as default };
|