更新一点代码

This commit is contained in:
枫谷剑仙 2022-06-17 16:59:28 +08:00
parent 622cf947f2
commit fdf71e5ae1
3 changed files with 23 additions and 33 deletions

View File

@ -1,6 +1,6 @@
let needUpdateBrowser = (()=>{
try {
return !Boolean(eval("undefined?.undefined ?? true"));
return !Boolean(eval("1n && (undefined?.undefined ?? true)"));
} catch (e) {
if (e.name !== 'SyntaxError') throw e // Throw the error if it is not a SyntaxError
return true;
@ -27,18 +27,18 @@ if (needUpdateBrowser)
您的浏览器版本为:
${browserVersion}
您的浏览器内核不支持本程序使用的 可选链操作符(?.) 空值合并操作符(??)
您的浏览器内核不支持本程序使用的 可选链操作符(?.) 空值合并操作符(??) BigInt 数据类型
请更新您的浏览器内核到 Firefox(火狐) 74 Chrome(谷歌) 80 iOS Safari 13.4`;
请更新您的浏览器内核到 Firefox(火狐) 74 Chrome(谷歌) 80 Safari 14`;
} else {
alertStr =
`🙁Browser kernel is too old
Your browser is:
${browserVersion}
Your browser core does not support Optional chaining (?.) and Nullish coalescing operator (??) used in this program.
Your browser core does not support Optional chaining (?.) and Nullish coalescing operator (??) or BigInt value used in this program.
Please update your browser core to Firefox 74 or Chrome 80 or iOS Safari 13.4`;
Please update your browser core to Firefox 74 or Chrome 80 or Safari 14`;
}
alert(alertStr);

View File

@ -51,38 +51,27 @@ function localStorage_getBoolean(name, defaultValue = false){
else return Boolean(Number(localStorage.getItem(name) ?? defaultValue));
}
//数字补前导0
Number.prototype.prefixInteger = function(length, useGrouping = false) {
return this.toLocaleString(undefined, {
useGrouping: useGrouping,
minimumIntegerDigits: length
});
}
//数字补前导0
String.prototype.prefix = function(length = 2, prefix = '0') {
let needAddLength = Math.max(length - this.length, 0);
return new Array(needAddLength).fill(prefix).join('') + this;
}
// 将字符串转为Base64
String.prototype.toBinary = function() {
const charCodes16Arr = [...this].map(char=>char.charCodeAt(0));
const codeUnits = new Uint16Array(charCodes16Arr);
const charCodes = new Uint8Array(codeUnits.buffer);
// 将字符串转为二进制字符串
String.prototype.toUTF16BinaryString = function() {
const charCodes16Arr = [...this].map(char=>char.charCodeAt(0)); //将每个字符转为数字
const codeUnits = new Uint16Array(charCodes16Arr); //将每个字符存入 2 字节中。警告:仅限 0xFFFF 前的Unicode字符之后的就得换 Uint32Array
const charCodes = new Uint8Array(codeUnits.buffer); //每两个存入中
const result = [...charCodes].map(code=>String.fromCharCode(code)).join('');
return result;
}
String.prototype.toBase64 = function() {
return btoa(this.toBinary());
}
String.fromBinary = function(binary) {
String.fromBinaryString = function(binary) {
const bytes = new Uint8Array([...binary].map(char=>char.charCodeAt(0)));
const charCodes = new Uint16Array(bytes.buffer);
const result = [...charCodes].map(code=>String.fromCharCode(code)).join('');
return result;
}
String.fromBase64 = function(base64) {
return String.fromBinary(atob(base64));
return String.fromBinaryString(atob(base64));
}
//Buffer转16进制字符串
Uint8Array.prototype.toHex = function() {
return [...this].map(n=>n.toString(16).padStart(2,'0')).join('');
}
//大数字缩短长度,默认返回本地定义字符串
@ -131,6 +120,7 @@ Math.randomInteger = function(max, min = 0) {
return this.floor(this.random() * (max - min + 1) + min);
}
//将二进制flag转为数组
function flags(num) {
const arr = [];

View File

@ -430,7 +430,7 @@ Formation.prototype.getPdcQrStr = function()
const o = new Map();
o.set(0, m.id);
if (m.latent.length)
o.set(2, m.latent.map(pdfLtent=>pdcLatentMap.find(latent=>latent.pdf === pdfLtent).pdc.toString(36).prefix(2)).join('')); //潜觉
o.set(2, m.latent.map(pdfLtent=>pdcLatentMap.find(latent=>latent.pdf === pdfLtent).pdc.toString(36).padStart(2,'0')).join('')); //潜觉
o.set(3, m.level);
o.set(4, m.plus[0]);
o.set(5, m.plus[1]);
@ -479,8 +479,8 @@ Formation.prototype.getPdcQrStr = function()
return null;
}
return [
item[0].toString(36).prefix(2),
item[1].toString(36).prefix(2)
item[0].toString(36).padStart(2,'0'),
item[1].toString(36).padStart(2,'0')
].join('')}).filter(item=>item).join(',');
teamArr.push(pdcMemberStr);
}
@ -1414,7 +1414,7 @@ function pdcFotmationToPdfFotmation(inputString)
{
let membersStr = teamStr.split('}').filter(Boolean);
const team = {
badge: parseInt(membersStr.shift(),10) //徽章是10进制
badge: parseInt(membersStr.shift(),10) //第一个元素是徽章是10进制。读取并从数组内删掉,剩下的都是队员
}
team.members = membersStr.map(memberStr=>{
let memberArr = memberStr.split(',').map(valueStr=>{
@ -3324,7 +3324,7 @@ function initialize(event) {
const card = Cards[editBox.mid];
const decoder = new Adpcm(adpcm_wasm, pcmImportObj);
decoder.resetDecodeState(new Adpcm.State(0, 0));
decodeAudio(`sound/voice/${currentDataSource.code}/padv${card.voiceId.prefixInteger(3)}.wav`, decoder.decode.bind(decoder));
decodeAudio(`sound/voice/${currentDataSource.code}/padv${card.voiceId.toString().padStart(2,'0')}.wav`, decoder.decode.bind(decoder));
}
}
monEditAwokensLabel.forEach(akDom => akDom.onclick = playVoiceAwoken);