Compare commits

...

12 Commits

2 changed files with 136 additions and 47 deletions

View File

@ -18,17 +18,25 @@
实际上光遇NTAG徽章设计感应区为徽章背面的小圆点部分而这部分感应区太小且徽章的针扣也在这一面手机nfc感应区位置问题导致徽章无法放平使用也无法从背面扫描徽章经常导致扫描无反应或者需要将徽章在手机nfc感应区移动很久才有反应。
## 当前功能
## 功能
- 录入多个徽章信息
- [x] 录入徽章
- 选择对应徽章使用
- [x] 使用徽章
- 新增渠道服选择
- [x] 渠道服选择
- 添加国际服支持
- [x] 国际服支持
- 新增渠道切换
- [x] 测试服支持
- [x] 修改使用次数
- [x] 徽章排序
- [ ] 导出徽章
- [ ] 导入徽章
## 使用方法
@ -52,17 +60,17 @@
> 为什么实体徽章会有几次无法使用?
光遇的NTAG徽章使用了NFC COUNTER(nfc计数器),每次徽章在nfc下使用徽章使用次数加会加1无论你是否打开光遇。当你打开光遇app时徽章使用次数会上传到光遇服务器,下次使用时会校验使用次数小于上一次的使用次数时候会抛出异常徽章验证错误CANNOT_UPDATE_NFC_COUNTER
光遇的NTAG徽章使用了NFC COUNTER(nfc计数器)每次在nfc下使用徽章会使得徽章使用次数加1无论你是否打开光遇。当你打开光遇app并使用徽章时,光遇服务器就会记录徽章使用次数下次使用时会校验使用次数小于上一次的使用次数时候会抛出异常徽章验证错误CANNOT_UPDATE_NFC_COUNTER
举个例子:如果你现在的徽章在光遇使用了10次此时你将徽章信息录入本脚本本脚本记录的使用次数也是10次。当你再次使用实体徽章时候此时徽章使用次数为11次。脚本中的使用次数依旧为10打开光遇后就会报错徽章验证错误。当然如果你使用本脚本时次数为20次使用次数可以手动修改NTAG中url的最后6位16进制数而你实体徽章次数为15次相差了5次此时你需要使用实体徽章在nfc下刷5次后方可使用。
举个例子:如果你的徽章在光遇中使用了10次此时你将徽章信息复制并录入程序记录下的使用次数也是10次当你再次使用实体徽章此时原徽章使用次数变为11次但程序中的使用次数依旧为10此时打开光遇后就会报错徽章验证错误。当然如果你使用本程序时次数为20次使用次数可以手动修改NTAG中url的最后6位16进制数而你实体徽章次数为15次相差了5次此时你需要使用实体徽章在nfc下刷5次后方可使用,因此切勿随意更改徽章使用次数,否则可能导致原徽章无法正常使用。
> 执行脚本打开光遇报错 徽章验证错误CANNOT_UPDATE_NFC_COUNTER
> 打开光遇报错 徽章验证错误CANNOT_UPDATE_NFC_COUNTER
重新录入最新的徽章信息
> 使用本后使用实体徽章报错 徽章验证错误CANNOT_UPDATE_NFC_COUNTER
> 使用本程序使用实体徽章报错 徽章验证错误CANNOT_UPDATE_NFC_COUNTER
多在NFC下刷几次徽章无需打开光遇app手机有反应即可更新徽章使用次数。
多在NFC下刷几次徽章无需打开光遇app手机有反应即可更新徽章使用次数。切勿随意更改徽章使用次数,否则可能导致原徽章无法正常使用,轻则需要刷原徽章几十次、几百次、甚至上千次,重则要刷上万次、上百万次才能使徽章恢复正常,这取决于你修改的徽章使用次数的大小。注意原徽章的数据是无法更改的。
## 渠道服务包名
@ -70,7 +78,7 @@
<s>如果你正在使用渠道服请修改脚本第15行的com.netease.sky为下表中渠道对应的包名</s>目前无需修改,各渠道包名见下表。
| 包名 | 渠道名称 |
| ------------------------ | -------- |
| ------------------------ |-------------|
| com.netease.sky | 网易 |
| com.netease.sky.bilibili | 哔哩哔哩 |
| com.netease.sky.aligames | 九游 |
@ -82,9 +90,49 @@
| com.netease.sky.huawei | 华为 |
| com.tgc.sky.android | 国际服 |
| com.tgc.sky.android.test.gold | 测试服 |
| com.tgc.sky.android.huawei | 华为国际服 |
## 更新日志
### 2022.01.15
- 发布第一个仅支持网易官方国服的版本。
### 2022.01.17
- 补充添加国内各渠道服。
### 2022.02.01
- 调整渠道服选择方式,由选择徽章后选择渠道改为先设置全局渠道,然后再使用徽章。
### 2022.02.15
- 添加华为渠道服支持。
- 修复删除和录入徽章显示多个渠道问题。
### 2022.03.07
- 添加测试服务支持。
- 添加更新徽章使用次数功能,用于解决使用实体徽章后原数据失效问题。
### 2022.03.08
- 添加自定义徽章排序功能【由用户 [影灵3](https://github.com/1173922902) 贡献 】
### 2022.05.04
- 添加华为国际服支持
## 贡献
特别鸣谢以下用户对本项目做出的贡献
特别鸣谢以下用户的贡献
- [影灵3](https://github.com/1173922902)
## 敬请期待
- 正在规划开发app版本
- 录入更方便(直接刷徽章录入)

View File

@ -1,6 +1,6 @@
"auto"
// 徽章数据
var storage = storages.create("com.netease.sky:badge1");
var storage = storages.create("com.netease.sky:badge");
// storage.clear();
var global_option = getMenu();
if (!storage.contains("menu")) {
@ -166,6 +166,44 @@ function startSky() {
startSky();
}
break;
case "sort":
// 变更徽章位置
// let len = Object.keys(menu_map).length;
console.log("len => " + len + " menuLen => " + Object.keys(getMenu()).length);
if (len - 1 > Object.keys(getMenu()).length) {
let sort_options = [];
let storage_map = global_option;//初始化
Object.keys(menu_map).map(function (key, index) {
console.log("key => " + key, "index => " + index);
if (!isOptions(key, menu_map)) {
sort_options.push(key);
}
});
let befor_index = dialogs.select("请选择需要变更位置的徽章", sort_options);
let after_index = dialogs.select("请选择变更后的位置", sort_options);
if (befor_index === after_index) {
toast("两次选项一样。");
return;
}
// map重排序
for (let x = 0; x < len; x++) {
if (x === befor_index) {
storage_map[sort_options[after_index]] = menu_map[sort_options[after_index]];
} else if (x === after_index) {
storage_map[sort_options[befor_index]] = menu_map[sort_options[befor_index]];
} else {
storage_map[sort_options[x]] = menu_map[sort_options[x]];
}
}
storage.put("menu", storage_map);
toast("位置替换成功,请重新运行");
return;
} else {
toast("你没有录入任何徽章信息");
// 再次打开菜单
startSky();
}
break;
default:
// 启动app
console.log(value);
@ -185,11 +223,12 @@ function startSky() {
* @returns {boolean}
*/
function isOptions(key, menu) {
if (menu[key] == "add"
|| menu[key] == "delete"
|| menu[key] == "clear"
|| menu[key] == "channel"
|| menu[key] == "update"
if (menu[key] === "add"
|| menu[key] === "delete"
|| menu[key] === "clear"
|| menu[key] === "channel"
|| menu[key] === "update"
|| menu[key] === "sort"
) {
return true;
}
@ -204,7 +243,7 @@ function isOptions(key, menu) {
* @returns {boolean}
*/
function isSwitchOptions(key, menu) {
if (menu[key] == "channel") {
if (menu[key] === "channel") {
return true;
}
return false;
@ -236,6 +275,7 @@ function selectAppChannelPackageName() {
"[C] VIVO": "com.netease.sky.vivo",
"[C] 应用宝": "com.tencent.tmgp.eyou.eygy",
"[C] 华为": "com.netease.sky.huawei",
"[I] 华为国际服": "com.tgc.sky.android.huawei",
"[I] 国际服": "com.tgc.sky.android",
"[T] 测试服": "com.tgc.sky.android.test.gold",
};
@ -263,7 +303,8 @@ function getMenu() {
"[O] 录入徽章": "add",
"[O] 清空徽章": "clear",
"[O] 删除徽章": "delete",
"[O] 更新次数": "update"
"[O] 更新次数": "update",
"[O] 徽章排序": "sort"
};
}
@ -289,7 +330,7 @@ function getClassName(package_name) {
* @param package_name
*/
function isInternational(package_name) {
if (package_name === "com.tgc.sky.android") {
if (package_name === "com.tgc.sky.android" || package_name === "com.tgc.sky.android.huawei") {
return true;
}
return false;