koishi-plugin-yunzai
Version:
a yunzai adapter for koishi
46 lines (45 loc) • 1.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Random = void 0;
class Random {
static sample(array, count) {
let shuffled = array.slice(0), i = array.length, min = i - count, temp, index;
while (i-- > min) {
index = (Math.floor((i + 1) * Math.random()));
temp = shuffled[index];
shuffled[index] = shuffled[i];
shuffled[i] = temp;
}
return shuffled.slice(min);
}
/**
* random integer in the range
* @param start
* @param stop
*/
static randint(start, stop) {
return Math.floor(Math.random() * (stop - start + 1)) + start;
}
/**
* output string of selected length
* > default set is `a-zA-Z0-9`
* @param length the string length
* @param set string collection
*/
static randstr(length, chars) {
const strSet = chars || '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
var str = '';
for (let index = -1; index < length; index++)
str += strSet[this.randint(0, strSet.length)];
return str;
}
static randUA(device) {
let UAS = [
`Mozilla/5.0 (Linux; Android 12; ${device}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.73 Mobile Safari/537.36`,
`Mozilla/5.0 (Linux; Android 12; Unspecified Device) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/103.0.5060.129 Mobile Safari/537.36`,
`Mozilla/5.0 (Linux; Android 11; ${device}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.1.1451.4 Mobile Safari/537.36`,
];
return UAS[(this.randint(0, UAS.length - 1))];
}
}
exports.Random = Random;