scathach-api
Version:
A NodeJS wrapper to interacts with Scathach bot
57 lines • 2.95 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.delay = exports.ratelimit = exports.randomArray = exports.get = void 0;
const phin_1 = __importDefault(require("phin"));
const delay = 1000;
exports.delay = delay;
/**
* GET request to scathach bot API
* @param url The related endpoint
* @param headers custom headers that you pass to the request
* @returns Promise that resolves to the response body
*/
async function get(url, headers) {
return await (0, phin_1.default)({
method: 'get',
url: url,
headers: {
'User-Agent': headers,
},
parse: 'json',
timeout: 10000
});
}
exports.get = get;
/**
* Shuffles array in place.
* @param arr An array containing the items.
* @param path callback path
* @returns shuffled array
*/
function randomArray(arr, path = '') {
let pisah;
if (path)
pisah = '/';
else
pisah = '';
return `${path}${pisah}${arr[Math.floor(Math.random() * arr.length)]}`;
}
exports.randomArray = randomArray;
/**
* Rate limit handling for shit users which spamming the API
* @param time The time in milliseconds
* @param data The data that represents from get()
* @returns resolved the requests
*/
function ratelimit(time, data) {
return new Promise(resolve => {
setTimeout(() => {
resolve(data);
}, time);
});
}
exports.ratelimit = ratelimit;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0RBQXdCO0FBQ3hCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQztBQStDVixzQkFBSztBQTlDZDs7Ozs7S0FLSztBQUNFLEtBQUssVUFBVSxHQUFHLENBQUMsR0FBVyxFQUFFLE9BQWU7SUFDcEQsT0FBTyxNQUFNLElBQUEsY0FBSSxFQUFDO1FBQ2hCLE1BQU0sRUFBRSxLQUFLO1FBQ2IsR0FBRyxFQUFFLEdBQUc7UUFDUixPQUFPLEVBQUU7WUFDUCxZQUFZLEVBQUUsT0FBTztTQUN0QjtRQUNELEtBQUssRUFBRSxNQUFNO1FBQ2IsT0FBTyxFQUFFLEtBQUs7S0FDZixDQUFDLENBQUM7QUFDTCxDQUFDO0FBVkQsa0JBVUM7QUFFRDs7Ozs7S0FLSztBQUNMLFNBQWdCLFdBQVcsQ0FBQyxHQUFXLEVBQUUsSUFBSSxHQUFHLEVBQUU7SUFDaEQsSUFBSSxLQUFLLENBQUM7SUFDVixJQUFJLElBQUk7UUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDOztRQUNqQixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRWhCLE9BQU8sR0FBRyxJQUFJLEdBQUcsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3pFLENBQUM7QUFORCxrQ0FNQztBQUVEOzs7OztLQUtLO0FBQ0wsU0FBZ0IsU0FBUyxDQUFDLElBQVksRUFBRSxJQUFZO0lBQ2xELE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDM0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDWCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFORCw4QkFNQyJ9