1 Commits
master ... v23

Author SHA1 Message Date
github-actions[bot]
79965ac73d Update git tree hash 2021-06-29 05:27:37 +00:00
41 changed files with 161 additions and 855 deletions

View File

@@ -1,9 +1,9 @@
name: Sync name: Auto update commit and sync to gitee
on: [ push ] on: [ push, delete, create ]
jobs: jobs:
update-commit-hash: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
@@ -24,37 +24,25 @@ jobs:
author_email: 41898282+github-actions[bot]@users.noreply.github.com author_email: 41898282+github-actions[bot]@users.noreply.github.com
message: Update git tree hash message: Update git tree hash
push: true push: true
sync-to-gitea: # - name: Sync to mirror file server
runs-on: ubuntu-latest # uses: sand4rt/ftp-deployer@v1.3
needs: update-commit-hash # if: github.actor != 'github-actions[bot]'
steps: # with:
- name: Checkout # sftp: false
uses: actions/checkout@v2 # host: ${{ secrets.FTP_MIRROR_DESTINATION }}
if: github.actor != 'github-actions[bot]' # port: ${{ secrets.FTP_MIRROR_PORT }}
with: # username: ${{ secrets.FTP_MIRROR_USERNAME }}
persist-credentials: true # password: ${{ secrets.FTP_MIRROR_SECRET }}
- name: Sync to Private Git Service # remote_folder: ${{ secrets.FTP_MIRROR_ROOT_PATH }}
# local_folder: .
# cleanup: true
# exclude: '[".git/**", ".github/**", "source/**", "*.md", "gitVersion"]'
# pasive: false
- name: Sync to Gitee repo
uses: wearerequired/git-mirror-action@master uses: wearerequired/git-mirror-action@master
if: github.actor != 'github-actions[bot]' if: github.actor != 'github-actions[bot]'
env: env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} SSH_PRIVATE_KEY: ${{ secrets.GITEE_RSA_PRIVATE_KEY }}
with:
source-repo: git@github.com:StageGuard/SkyAutoPlayerScript.git
destination-repo: ubuntu@81.70.194.140:StageGuard/SkyAutoPlayerScript.git
sync-to-gitee:
runs-on: ubuntu-latest
needs: update-commit-hash
steps:
- name: Checkout
uses: actions/checkout@v2
if: github.actor != 'github-actions[bot]'
with:
persist-credentials: true
- name: Sync to Gitee
uses: wearerequired/git-mirror-action@master
if: github.actor != 'github-actions[bot]'
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
with: with:
source-repo: git@github.com:StageGuard/SkyAutoPlayerScript.git source-repo: git@github.com:StageGuard/SkyAutoPlayerScript.git
destination-repo: git@gitee.com:stageguard/SkyAutoPlayerScript.git destination-repo: git@gitee.com:stageguard/SkyAutoPlayerScript.git

View File

@@ -1,10 +1,8 @@
# SkyAutoPlayerScript # SkyAutoPlayerScript
A script to play Sheets generated by [SkyStudio](https://play.google.com/store/apps/details?id=com.Maple.SkyStudio) automatically in game Sky with accessibility services using AutoX A script to play Sheets generated by [SkyStudio](https://play.google.com/store/apps/details?id=com.Maple.SkyStudio) automatically in game Sky with accessibility services using Auto.js
[![shared sheet](https://badgen.net/badge/shared%20sheets/175%20in%20total/green)](shared_sheets/) [![sheet contributors](https://badgen.net/badge/sheet%20contributors/36/pink)](#shared-sheets) [![Hosted in](https://badgen.net/badge/CDN/jsDelivr?icon=jsdelivr)](https://www.jsdelivr.com/) [![shared sheet](https://badgen.net/badge/shared%20sheets/146%20in%20total/green)](shared_sheets/) [![sheet contributors](https://badgen.net/badge/sheet%20contributors/29/pink)](#shared-sheets) [![Hosted in](https://badgen.net/badge/CDN/jsDelivr?icon=jsdelivr)](https://www.jsdelivr.com/)
## [Temporary solution for error `Syntax error script.js#44(eval)#100`](https://github.com/StageGuard/SkyAutoPlayerScript/issues/17#issuecomment-1002640892)
## Feature ## Feature
@@ -20,63 +18,38 @@ There are many features in SkyAutoPlayerScript compared to other auto player scr
## Usage ## Usage
1. Download AutoX at [Releases · kkevsekk1/AutoX](https://github.com/kkevsekk1/AutoX/releases) 1. Download release `4.1.1 Alpha2 (461) -> armeabi-v7a` in [`Ericwyn/Auto.js/releases@V4.1.1.Alpha2`](https://github.com/Ericwyn/Auto.js/releases/tag/V4.1.1.Alpha2)
> Warning: Please notice that you should check your device arch in advance, or select `universal`。 2. Turn on **Accessibility service** and allow **Display pop-up window** permission for Auto.js
2. Turn on **Accessibility service** and allow **Display pop-up window** permission for AutoX 3. Create a new script file in Auto.js. Copy the code below and run!
3. Create a new script file in AutoX. Copy the code below and run!
```javascript ```javascript
"ui"; "ui";
"use strict"; "use strict";
/* var emitter = events.emitter(threads.currentThread());
SkyAutoPlayer (AutoX script) threads.start(function() {
Copyright © 2020-2021 StageGuard emitter.emit("evaluate", (function(){
var resp = http.get("https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/source/SkyAutoplayer.js");
This library is free software; you can redistribute it and/or if(resp.statusCode >= 200 && resp.statusCode < 300) {
modify it under the terms of the GNU Lesser General Public return resp.body.string();
License as published by the Free Software Foundation; either } else {
version 2.1 of the License, or (at your option) any later version. resp = http.get("https://cdn.jsdelivr.net/gh/StageGuard/SkyAutoPlayerScript@" + http.get("https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/gitVersion").body.string() + "/source/SkyAutoplayer.js");
if(resp.statusCode >= 200 && resp.statusCode < 300) {
This library is distributed in the hope that it will be useful, return resp.body.string();
but WITHOUT ANY WARRANTY; without even the implied warranty of } else {
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU return "console.show();console.log(\"Failed to load script\")";
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA
*/
(function(emitter) {
threads.start(function () {
emitter.emit("evaluate", (function () {
//Many sources
let sources = [
"http://cdn.stagex.top:8090/StageGuard/SkyAutoPlayerScript/raw/master/source/SkyAutoplayer.js",
"https://cdn.jsdelivr.net/gh/StageGuard/SkyAutoPlayerScript/source/SkyAutoplayer.js",
"https://dl.skyautoplayerscript.stageguard.top/source/SkyAutoplayer.js",
"https://raw.githubusercontent.com/StageGuard/SkyAutoPlayerScript/master/source/SkyAutoplayer.js"
];
for (let i in sources) {
let resp = http.get(sources[i]);
if (resp.statusCode >= 200 && resp.statusCode < 300) {
return resp.body.string();
}
} }
return "console.show();console.log(\"Failed to load script\")"; }
}())); }()));
}); });
emitter.on('evaluate', function (s) { emitter.on('evaluate', function(s){
eval(s); eval(s);
}); });
}(events.emitter(threads.currentThread())));
``` ```
## Clear data ## Clear data
`SkyAutoPlayerScript` will store data while running, if you want to delete all data, please run the code below in AutoX `SkyAutoPlayerScript` will store data while running, if you want to delete all data, please run the code below in Auto.js
``` ```
storages.remove("StageGuard:SkyAutoPlayer:Config"); storages.remove("StageGuard:SkyAutoPlayer:Config");
@@ -194,7 +167,7 @@ Welcome everyone to contribute this project, including pull request, issue, new
### ⚠WARNING ### ⚠WARNING
CodeFactor Evaluation: [![CodeFactor](https://www.codefactor.io/repository/github/stageguard/skyautoplayerscript/badge)](https://www.codefactor.io/repository/github/stageguard/skyautoplayerscript) CodeFactor Evaluation: [![CodeFactor](https://www.codefactor.io/repository/github/stageguard/skyautoplayerscript/badge)](https://www.codefactor.io/repository/github/stageguard/skyautoplayerscript)
This program is a single-file project which means all modules are in a single file. Also, my coding skill is poor, so it is `a little hard` to understand source code. Because of the limitation of Auto.js, it is impossible to extract functions and method so all functions are defined in a single file. Also, my coding skill is poor, so it is `a little hard` to understand source code.
## Contributor ## Contributor
@@ -233,15 +206,6 @@ CoolApk [@皮皮小猪猪](http://www.coolapk.com/u/5352224)<br>
CoolApk [@DoubleGGe](http://www.coolapk.com/u/7728656)<br> CoolApk [@DoubleGGe](http://www.coolapk.com/u/7728656)<br>
[恋上猫的鱼~](mailto:shi1177121232@foxmail.com)<br> [恋上猫的鱼~](mailto:shi1177121232@foxmail.com)<br>
[依稀(濒死动物)](mailto:3423451308@qq.com)<br> [依稀(濒死动物)](mailto:3423451308@qq.com)<br>
[zhangjinteng](mailto:zhangjinteng@foxmail.com)<br>
Bilibili [@次卡安](https://space.bilibili.com/68420360)<br>
CoolApk [@ZyaIreZ](http://www.coolapk.com/u/1376183)<br>
CoolApk [@星释槐](http://www.coolapk.com/u/2168596)<br>
[KingXKK](mailto:fjjiangdonghan@outlook.com)<br>
CoolApk [@Leotoast](http://www.coolapk.com/u/2260385)<br>
[小柒不会玩红石](mailto:2126859202@qq.com)<br>
[我睡着的时候不困0v0](mailto:31610766@qq.com)<br>
[心酸的邂逅](mailto:3200546245@qq.com)<br>
## Translation ## Translation
@@ -262,7 +226,7 @@ None
# LICENSE # LICENSE
``` ```
SkyAutoPlayer (AutoX script) SkyAutoPlayer (Auto.js script)
Copyright © 2020-2021 StageGuard Copyright © 2020-2021 StageGuard
This library is free software; you can redistribute it and/or This library is free software; you can redistribute it and/or

115
README.md
View File

@@ -2,97 +2,61 @@
English: [README-en.md](README-en.md) English: [README-en.md](README-en.md)
使用 [AutoX](https://github.com/kkevsekk1/AutoX) 提供的无障碍权限实现在 Sky光遇 中自动弹奏 [SkyStudio](https://play.google.com/store/apps/details?id=com.Maple.SkyStudio) 导出的曲谱 使用Auto.js提供的无障碍权限实现在Sky光遇中自动弹奏 [SkyStudio](https://play.google.com/store/apps/details?id=com.Maple.SkyStudio) 导出的曲谱
[![shared sheet](https://badgen.net/badge/shared%20sheets/175%20in%20total/green)](shared_sheets/) [![sheet contributors](https://badgen.net/badge/sheet%20contributors/36/pink)](#共享乐谱) [![Hosted in](https://badgen.net/badge/CDN/jsDelivr?icon=jsdelivr)](https://www.jsdelivr.com/) [![shared sheet](https://badgen.net/badge/shared%20sheets/146%20in%20total/green)](shared_sheets/) [![sheet contributors](https://badgen.net/badge/sheet%20contributors/29/pink)](#共享乐谱) [![Hosted in](https://badgen.net/badge/CDN/jsDelivr?icon=jsdelivr)](https://www.jsdelivr.com/)
~~不会进一步支持原神的21键琴和上传21键位的共享乐谱反正15键又不是不能弹。~~ ~~不会进一步支持原神的21键琴和上传21键位的共享乐谱反正15键又不是不能弹。~~
## [暂时解决 `Syntax error script.js#44(eval)#100` 的方法](https://github.com/StageGuard/SkyAutoPlayerScript/issues/17#issuecomment-1002640892)
## 特性 ## 特性
相比于其他脚本SkyAutoPlayerScript 拥有以下优势 相比于其他脚本SkyAutoPlayerScript 拥有以下优势
* GUI 操作无需编辑任何代码流畅的UI动画。 * 全GUI操作无需编辑任何代码流畅的UI动画。
* 多功能的弹奏控制面板,支持**暂停** **进度控制** **倍速控制**等。 * 多功能的弹奏控制面板,支持**暂停** **进度控制** **倍速控制**等。
* 通过引导自设定键位坐标,避免按压琴键的偏移问题。 * 通过引导自设定键位坐标,避免按压琴键的偏移问题。
* 在线[共享乐谱](https://github.com/StageGuard/SkyAutoPlayerScript/tree/master/shared_sheets),有许多优质乐谱。 * 在线[共享乐谱](https://github.com/StageGuard/SkyAutoPlayerScript/tree/master/shared_sheets),有许多优质乐谱。
* 自动更新,及时修复 BUG无需担心版本过时问题。 * 自动更新及时修复BUG无需担心版本过时问题。
* [多语言支持](#翻译)。 * [多语言支持](#翻译)。
* ... * ...
## 使用 ## 使用
以下两种方式仅需选择一种 1. Auto.js `4.1.1 Alpha2 (461) -> armeabi-v7a` 版本下载: [`Ericwyn/Auto.js/releases@V4.1.1.Alpha2`](https://github.com/Ericwyn/Auto.js/releases/tag/V4.1.1.Alpha2)
<details> <summary>拷贝脚本(推荐)</summary> 2. 为Auto.js开启**无障碍服务**和**悬浮窗权限**。
1. [Releases · kkevsekk1/AutoX](https://github.com/kkevsekk1/AutoX/releases) 中下载 AutoX。 3.Auto.js中新建一个脚本并粘贴以下代码并运行
> 注意:请提前悉知设备架构选择 `arm64-v8a` 或 `armeabi-v7a`,否则选择 `universal`。
2. 为 AutoX 开启**无障碍服务**和**悬浮窗权限**和**存储权限**。
3. 在 AutoX 中新建一个脚本并粘贴以下代码并运行:
```javascript ```javascript
"ui"; "ui";
"use strict"; "use strict";
const okhttp3 = Packages["okhttp3"]; var emitter = events.emitter(threads.currentThread());
(function(emitter) { threads.start(function() {
const client = (new okhttp3.OkHttpClient.Builder()) emitter.emit("evaluate", (function(){
.connectTimeout(3, java.util.concurrent.TimeUnit.SECONDS) var resp = http.get("https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/source/SkyAutoplayer.js");
.writeTimeout(3, java.util.concurrent.TimeUnit.SECONDS) if(resp.statusCode >= 200 && resp.statusCode < 300) {
.readTimeout(3, java.util.concurrent.TimeUnit.SECONDS) return resp.body.string();
.build(); } else {
threads.start(function () { resp = http.get("https://cdn.jsdelivr.net/gh/StageGuard/SkyAutoPlayerScript@" + http.get("https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/gitVersion").body.string() + "/source/SkyAutoplayer.js");
emitter.emit("evaluate", (function () { if(resp.statusCode >= 200 && resp.statusCode < 300) {
//Many sources return resp.body.string();
let sources = [ } else {
"https://cdn.jsdelivr.net/gh/StageGuard/SkyAutoPlayerScript/source/SkyAutoplayer.js", return "console.show();console.log(\"Failed to load script\")";
"http://cdn.stagex.top:8090/StageGuard/SkyAutoPlayerScript/raw/master/source/SkyAutoplayer.js",
"https://dl.skyautoplayerscript.stageguard.top/source/SkyAutoplayer.js",
"https://raw.githubusercontent.com/StageGuard/SkyAutoPlayerScript/master/source/SkyAutoplayer.js"
];
for (let i in sources) {
try {
let resp = client.newCall(
(new okhttp3.Request.Builder()).url(sources[i]).build()
).execute();
if (resp.code() == 200) return resp.body().string();
} catch(e) {
let err = "Failed on source " + sources[i] + " : " + e;
console.log(err); toast(err);
}
} }
console.show(); }
return null; }()));
}())); });
}); emitter.on('evaluate', function(s){
emitter.on('evaluate', s => { if(s != null) eval(s); }); eval(s);
}(events.emitter(threads.currentThread()))); });
``` ```
</details> 在Auto.js版本 `4.1.1 Alpha2 (461)` 中测试通过,**不保证其他版本的兼容性**(取决于其他版本相对于此版本的API是否有`breaking changes`)
<details> <summary>安装独立程序(仅 <code>arm64-v8a</code> 可用)</summary>
在 [Releases · StageGuard/SkyAutoPlayerScript](https://github.com/StageGuard/SkyAutoPlayerScript/releases) 中下载脚本独立打包程序,安装后即可使用。
首次启动时请同意程序申请的权限:**无障碍服务**和**悬浮窗权限**和**存储权限**。
> 注意:本程序申请的权限为 AutoX 打包程序自动控制,且仅申请使脚本运行的必要权限。
</details>
## 兼容性
在 AutoX 版本 `6.3.6` 中测试通过。
## 清除数据 ## 清除数据
`SkyAutoPlayerScript` 在使用过程中会产生本地数据存储,若想全部删除,请使用 AutoX 执行以下代码 `SkyAutoPlayerScript` 在使用过程中会产生本地数据存储若想全部删除请使用Auto.js执行以下代码
``` ```
storages.remove("StageGuard:SkyAutoPlayer:Config"); storages.remove("StageGuard:SkyAutoPlayer:Config");
@@ -155,19 +119,19 @@ SkyAutoplayerScript 可以从这个仓库中的 `shared_sheets.json` 读取在
### 请仔细阅读以下使用须知! ### 请仔细阅读以下使用须知!
1. 未充分测试,若遇到 BUG ,请酷安私信 [@StageGuard](http://www.coolapk.com/u/1790774) 或新建 Issue 来反馈 BUG 1. 未充分测试若遇到BUG请酷安私信@StageGuard或新建Issue来反馈BUG
2. **SkyAutoplayerScript 是完全免费且开源的软件/脚本([https://github.com/StageGuard/SkyAutoPlayerScript](https://github.com/StageGuard/SkyAutoPlayerScript)),使用 SkyAutoplayerScript 盈利的同时请标注源项目链接。** 2. **SkyAutoplayerScript是完全免费且开源的软件/脚本([https://github.com/StageGuard/SkyAutoPlayerScript](https://github.com/StageGuard/SkyAutoPlayerScript)),使用 SkyAutoplayerScript 盈利的同时请标注源项目链接。**
3. **共享乐谱不遵守 LGPL-2.1 协议,如您想在 SkyAutoPlayer 以外使用这些乐谱,请自行找乐谱作者授权!** 3. **共享乐谱不遵守LGPL-2.1协议如您想在SkyAutoPlayer以外使用这些乐谱请自行找乐谱作者授权**
4. 本脚本仅可用作娱乐用途,请不要在正规场合使用本脚本(请自行体会\"正规场合\"是什么意思),若因使用本脚本所出现了一些不友好的问题,与脚本作者 StageGuard 无关。 4. 本脚本仅可用作娱乐用途,请不要在正规场合使用本脚本(请自行体会\"正规场合\"是什么意思)若因使用本脚本所出现了一些不友好的问题与脚本作者StageGuard无关。
5. 脚本只能给你一时满足感而不能使你进步,请适当使用,只有真正的技术才是王道,才能使你感到快乐。 5. 脚本只能给你一时满足感而不能使你进步,请适当使用,只有真正的技术才是王道,才能使你感到快乐。
6. 本脚本只是一个"弹奏机",并不内置曲谱,请在 GooglePlay 下载 [SkyStudio](https://play.google.com/store/apps/details?id=com.Maple.SkyStudio) 编谱。 6. 本脚本只是一个"弹奏机",并不内置曲谱,请在 GooglePlay 下载 [SkyStudio](https://play.google.com/store/apps/details?id=com.Maple.SkyStudio) 编谱。
7. 本脚本不会增加解密乐谱功能,包括但不限于**加密的 SkyStudio 乐谱****加密的 JS** 等,也不接受加密乐谱的共享。 7. 本脚本不会增加解密乐谱功能,包括但不限于**加密的SkyStudio乐谱****加密的JS**等,也不接受加密乐谱的共享。
<details> <summary>针对上述第2, 3条出现的问题</summary> <details> <summary>针对上述第2, 3条出现的问题</summary>
@@ -203,12 +167,12 @@ Gitee 用户[嗨游圈(@vipssp)](https://gitee.com/vipssp)在**未经乐谱上
# 贡献 # 贡献
欢迎任何人贡献本项目,包括但不限于 Pull RequestIssueNew feature request 或者贡献翻译。 欢迎任何人贡献本项目,包括但不限于 Pull RequestIssueNew feature request 或者 贡献翻译。
### ⚠️警告 ### ⚠️警告
CodeFactor 代码评估: [![CodeFactor](https://www.codefactor.io/repository/github/stageguard/skyautoplayerscript/badge)](https://www.codefactor.io/repository/github/stageguard/skyautoplayerscript) CodeFactor 代码评估: [![CodeFactor](https://www.codefactor.io/repository/github/stageguard/skyautoplayerscript/badge)](https://www.codefactor.io/repository/github/stageguard/skyautoplayerscript)
由于项目为单脚本文件,未将不同模块分离至文件,即所有功能在一个文件实现;再加上我糟糕的代码技能,源码会非常难读。 由于 Auto.js 的限制,无法将不同的功能分离,所以所有功能在一个文件实现;再加上我糟糕的代码技能,源码会非常难读。
## 贡献者 ## 贡献者
@@ -247,15 +211,6 @@ Twitter [Phoebe@huunhut1217](https://mobile.twitter.com/huunhut1217)<br>
酷安[@DoubleGGe](http://www.coolapk.com/u/7728656)<br> 酷安[@DoubleGGe](http://www.coolapk.com/u/7728656)<br>
[恋上猫的鱼~](mailto:shi1177121232@foxmail.com)<br> [恋上猫的鱼~](mailto:shi1177121232@foxmail.com)<br>
[依稀(濒死动物)](mailto:3423451308@qq.com)<br> [依稀(濒死动物)](mailto:3423451308@qq.com)<br>
[zhangjinteng](mailto:zhangjinteng@foxmail.com)<br>
哔哩哔哩[@次卡安](https://space.bilibili.com/68420360)<br>
酷安[@ZyaIreZ](http://www.coolapk.com/u/1376183)<br>
酷安[@星释槐](http://www.coolapk.com/u/2168596)<br>
[KingXKK](mailto:fjjiangdonghan@outlook.com)<br>
酷安[@Leotoast](http://www.coolapk.com/u/2260385)<br>
[小柒不会玩红石](mailto:2126859202@qq.com)<br>
[我睡着的时候不困0v0](mailto:31610766@qq.com)<br>
[心酸的邂逅](mailto:3200546245@qq.com)<br>
## 翻译 ## 翻译
@@ -276,7 +231,7 @@ SkyAutoplayerScript 在版本 21 已支持多语言并可以在线获取语言
# 许可证协议 # 许可证协议
``` ```
SkyAutoPlayer (AutoX script) SkyAutoPlayer (Auto.js script)
Copyright © 2020-2021 StageGuard Copyright © 2020-2021 StageGuard
This library is free software; you can redistribute it and/or This library is free software; you can redistribute it and/or

View File

@@ -1 +1 @@
6067ff139bc0bd3c7542535ecacc83e4d1831b1a ee925ccc72fd29cd49c380fb1182790afb55e8eb

View File

@@ -3,7 +3,7 @@
"code": "en_US", "code": "en_US",
"version": 5, "version": 5,
"content": { "content": {
"launch_tip_in_content": "If you can't see a diamond popup dialog,<br>make sure that AutoX is allowed to <u><b>display pop-up window</u></b>", "launch_tip_in_content": "If you can't see a diamond popup dialog,<br>make sure that Auto.js is allowed to <u><b>display pop-up window</u></b><br><br><br>Version <b>4.1.1 Alpha2</b> is recommended.<br><b>4.1.1 Alpha2</b> Download: <a href=https://github.com/Ericwyn/Auto.js/releases/tag/V4.1.1.Alpha2>https://github.com/Ericwyn/Auto.js/releases/tag/V4.1.1.Alpha2</a>",
"launch_tip_force_exit": "FORCE EXIT", "launch_tip_force_exit": "FORCE EXIT",
"launch_tip_storage_on_android11": "In Android R, access private data folder of other apps is forbidden, sheet folder has set to {0}", "launch_tip_storage_on_android11": "In Android R, access private data folder of other apps is forbidden, sheet folder has set to {0}",

View File

@@ -3,7 +3,7 @@
"code": "zh_CN", "code": "zh_CN",
"version": 5, "version": 5,
"content": { "content": {
"launch_tip_in_content": "当你发现什么事情都没有发生时<br>也许你应该看看是否授予了 AutoX<u><b>悬浮窗权限</u></b>", "launch_tip_in_content": "当你发现什么事情都没有发生时<br>也许你应该看看是否授予了Auto.js<u><b>悬浮窗权限</u></b><br><br><br>建议使用 <b>4.1.1 Alpha2</b> 版本!<br><b>4.1.1 Alpha2</b> 版本下载: <a href=https://github.com/Ericwyn/Auto.js/releases/tag/V4.1.1.Alpha2>https://github.com/Ericwyn/Auto.js/releases/tag/V4.1.1.Alpha2</a>",
"launch_tip_force_exit": "强制退出", "launch_tip_force_exit": "强制退出",
"launch_tip_storage_on_android11": "安卓11不允许外部应用读取应用私有文件夹乐谱文件夹移至 {0}", "launch_tip_storage_on_android11": "安卓11不允许外部应用读取应用私有文件夹乐谱文件夹移至 {0}",

View File

@@ -1,519 +1,5 @@
{ {
"sheets": [ "sheets": [
{
"name": "人鱼的眼泪",
"file": "人鱼的眼泪.txt",
"author": "心酸的邂逅",
"desc": "<a href=mailto:3200546245@qq.com>@心酸的邂逅<a/> 分享乐谱 人鱼的眼泪",
"bpm": 552,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 5,
"noteCount": 1254,
"social": [
{
"platform": "mail",
"name": "3200546245@qq.com",
"link": "3200546245@qq.com"
}
]
},
{
"name": "漠河舞厅.",
"file": "漠河舞厅.txt",
"author": "柳爽",
"desc": "<a href=mailto:31610766@qq.com>@我睡着的时候不困0v0<a/> 分享乐谱 漠河舞厅.",
"bpm": 280,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 878,
"social": [
{
"platform": "mail",
"name": "31610766@qq.com",
"link": "31610766@qq.com"
}
]
},
{
"name": "rush e",
"file": "rush e.txt",
"author": "小柒不会玩红石",
"desc": "<a href=mailto:2126859202@qq.com>@小柒不会玩红石<a/> 分享乐谱 rush e",
"bpm": 1024,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 2465,
"social": [
{
"platform": "mail",
"name": "2126859202@qq.com",
"link": "2126859202@qq.com"
}
]
},
{
"name": "那女孩对我说(完整版)",
"file": "那女孩对我说(完整版).txt",
"author": "Hxina",
"desc": "<a href=mailto:xicisw@gmail.com>@Hxina<a/>完整版《那女孩对我说》",
"bpm": 320,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 610,
"social": [
{
"platform": "mail",
"name": "xicisw@gmail.com",
"link": "xicisw@gmail.com"
}
]
},
{
"name": "相思(无和弦)",
"file": "相思(无和弦).txt",
"author": "Hxina",
"desc": "<a href=mailto:xicisw@gmail.com>@Hxina<a/>简易《相思(无和弦)》",
"bpm": 160,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 230,
"social": [
{
"platform": "mail",
"name": "xicisw@gmail.com",
"link": "xicisw@gmail.com"
}
]
},
{
"name": "夜空中最亮的星",
"file": "夜空中最亮的星.txt",
"author": "Hxina",
"desc": "<a href=mailto:xicisw@gmail.com>@Hxina<a/>15键简易钢琴版《夜空中最亮的星》",
"bpm": 240,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 268,
"social": [
{
"platform": "mail",
"name": "xicisw@gmail.com",
"link": "xicisw@gmail.com"
}
]
},
{
"name": "多情种",
"file": "多情种.txt",
"author": "酷安@Leotoast",
"desc": "酷安 <a href=http://www.coolapk.com/u/2260385>@Leotoast<a/> 分享乐谱 多情种",
"bpm": 227,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 544,
"social": [
{
"platform": "coolapk",
"name": "酷安",
"link": "http://www.coolapk.com/u/2260385"
}
]
},
{
"name": "莫文蔚 - 这世界那么多人",
"file": "这世界那么多人.txt",
"author": "酷安@ZyaIreZ",
"desc": "酷安 <a href=http://www.coolapk.com/u/1376183>@ZyaIreZ<a/> 分享乐谱 这世界那么多人\n2022春晚上韩红唱的歌",
"bpm": 317,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 957,
"social": [
{
"platform": "coolapk",
"name": "酷安",
"link": "http://www.coolapk.com/u/1376183"
}
]
},
{
"name": "冬日恋歌(My Memory)",
"file": "冬日恋歌(My Memory).txt",
"author": "酷安@你们很有趣呢",
"desc": "酷安 <a href=http://www.coolapk.com/u/2416229>@你们很有趣呢<a/> 分享乐谱 冬日恋歌(My Memory)",
"bpm": 312,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 7,
"noteCount": 733,
"social": [
{
"platform": "coolapk",
"name": "酷安",
"link": "http://www.coolapk.com/u/2416229"
}
]
},
{
"name": "阿拉斯加海湾",
"file": "阿拉斯加海湾.txt",
"author": "酷安@星释槐",
"desc": "酷安 <a href=http://www.coolapk.com/u/2168596>@星释槐<a/> 分享乐谱 阿拉斯加海湾",
"bpm": 240,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 1086,
"social": [
{
"platform": "coolapk",
"name": "酷安",
"link": "http://www.coolapk.com/u/2168596"
}
]
},
{
"name": "冬眠",
"file": "冬眠.txt",
"author": "酷安@星释槐",
"desc": "酷安 <a href=http://www.coolapk.com/u/2168596>@星释槐<a/> 分享乐谱 冬眠",
"bpm": 240,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 294,
"social": [
{
"platform": "coolapk",
"name": "酷安",
"link": "http://www.coolapk.com/u/2168596"
}
]
},
{
"name": "Jason Huang - 高洁的教皇",
"file": "高洁的教皇.txt",
"author": "酷安@ZyaIreZ",
"desc": "酷安 <a href=http://www.coolapk.com/u/1376183>@ZyaIreZ<a/> 分享乐谱 Jason Huang - 高洁的教皇\nJOJO的奇妙冒险 花京院处刑曲",
"bpm": 584,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 818,
"social": [
{
"platform": "coolapk",
"name": "酷安",
"link": "http://www.coolapk.com/u/1376183"
}
]
},
{
"name": "李玉刚 - 万疆",
"file": "万疆.txt",
"author": "酷安@ZyaIreZ",
"desc": "酷安 <a href=http://www.coolapk.com/u/1376183>@ZyaIreZ<a/> 分享乐谱 李玉刚 - 万疆",
"bpm": 240,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 509,
"social": [
{
"platform": "coolapk",
"name": "酷安",
"link": "http://www.coolapk.com/u/1376183"
}
]
},
{
"name": "穿越时空的思念",
"file": "穿越时空的思念-ZyaIreZ.txt",
"author": "酷安@ZyaIreZ",
"desc": "酷安 <a href=http://www.coolapk.com/u/1376183>@ZyaIreZ<a/> 分享乐谱 穿越时空的思念\n犬夜叉",
"bpm": 440,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 496,
"social": [
{
"platform": "coolapk",
"name": "酷安",
"link": "http://www.coolapk.com/u/1376183"
}
]
},
{
"name": "琴师",
"file": "琴师.txt",
"author": "酷安@ZyaIreZ",
"desc": "酷安 <a href=http://www.coolapk.com/u/1376183>@ZyaIreZ<a/> 分享乐谱 琴师\n音频怪物 - 琴师",
"bpm": 240,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 285,
"social": [
{
"platform": "coolapk",
"name": "酷安",
"link": "http://www.coolapk.com/u/1376183"
}
]
},
{
"name": "花海",
"file": "花海.txt",
"author": "大锤",
"desc": "<a href=https://space.bilibili.com/68420360>bilibli用户(次卡安)<a/>共享乐谱 花海",
"bpm": 120,
"keyCount": 15,
"pitchLevel": 3,
"noteCount": 320,
"social": [
{
"platform": "bilibili",
"name": "哔哩哔哩",
"link": "https://space.bilibili.com/68420360"
}
]
},
{
"name": "李香兰(和弦版)",
"file": "李香兰(和弦版).txt",
"author": "大锤",
"desc": "<a href=https://space.bilibili.com/68420360>bilibli用户(次卡安)<a/>共享乐谱 李香兰 \n 星爷在国产凌凌漆电影中弹奏",
"bpm": 150,
"keyCount": 15,
"pitchLevel": 3,
"noteCount": 226,
"social": [
{
"platform": "bilibili",
"name": "哔哩哔哩",
"link": "https://space.bilibili.com/68420360"
}
]
},
{
"name": "所念皆星河(无和弦)",
"file": "所念皆星河(无和弦).txt",
"author": "酷安@ZyaIreZ",
"desc": "酷安 <a href=http://www.coolapk.com/u/1376183>@ZyaIreZ<a/> 分享乐谱 所念皆星河(无和弦)\n只有半首后面的不想弄了累…",
"bpm": 240,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 312,
"social": [
{
"platform": "coolapk",
"name": "酷安",
"link": "http://www.coolapk.com/u/1376183"
}
]
},
{
"name": "所念皆星河(和弦)",
"file": "所念皆星河(和弦).txt",
"author": "酷安@ZyaIreZ",
"desc": "酷安 <a href=http://www.coolapk.com/u/1376183>@ZyaIreZ<a/> 分享乐谱 所念皆星河(和弦)\n只有半首后面的不想弄了累…",
"bpm": 240,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 563,
"social": [
{
"platform": "coolapk",
"name": "酷安",
"link": "http://www.coolapk.com/u/1376183"
}
]
},
{
"name": "我和我的祖国",
"file": "我和我的祖国.txt",
"author": "酷安@ZyaIreZ",
"desc": "酷安 <a href=http://www.coolapk.com/u/1376183>@ZyaIreZ<a/> 分享乐谱 我和我的祖国\n迟到的国庆特辑",
"bpm": 450,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 254,
"social": [
{
"platform": "coolapk",
"name": "酷安",
"link": "http://www.coolapk.com/u/1376183"
}
]
},
{
"name": "成龙 - 国家",
"file": "成龙 - 国家.txt",
"author": "酷安@ZyaIreZ",
"desc": "酷安 <a href=http://www.coolapk.com/u/1376183>@ZyaIreZ<a/> 分享乐谱 成龙 - 国家\n迟到的国庆特辑",
"bpm": 240,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 610,
"social": [
{
"platform": "coolapk",
"name": "酷安",
"link": "http://www.coolapk.com/u/1376183"
}
]
},
{
"name": "溯",
"file": "溯.txt",
"author": "大锤",
"desc": "<a href=https://space.bilibili.com/68420360>bilibli用户(次卡安)<a/>共享乐谱 溯",
"bpm": 170,
"keyCount": 15,
"pitchLevel": 3,
"noteCount": 347,
"social": [
{
"platform": "bilibili",
"name": "哔哩哔哩",
"link": "https://space.bilibili.com/68420360"
}
]
},
{
"name": "莫失莫忘",
"file": "莫失莫忘.txt",
"author": "大锤",
"desc": "<a href=https://space.bilibili.com/68420360>bilibli用户(次卡安)<a/>共享乐谱 莫失莫忘\n 回忆仙剑,我们原来都这么老了",
"bpm": 120,
"keyCount": 15,
"pitchLevel": 3,
"noteCount": 160,
"social": [
{
"platform": "bilibili",
"name": "哔哩哔哩",
"link": "https://space.bilibili.com/68420360"
}
]
},
{
"name": "所念皆星河",
"file": "所念皆星河.txt",
"author": "大锤",
"desc": "<a href=https://space.bilibili.com/68420360>bilibli用户(次卡安)<a/>共享乐谱 所念皆星河(和弦版)\n 改版",
"bpm": 200,
"keyCount": 15,
"pitchLevel": 3,
"noteCount": 384,
"social": [
{
"platform": "bilibili",
"name": "哔哩哔哩",
"link": "https://space.bilibili.com/68420360"
}
]
},
{
"name": "Take me hand",
"file": "Take me hand.txt",
"author": "zhangjinteng",
"desc": "<a href=mailto:zhangjinteng@foxmail.com>zhangjinteng<a/> 分享乐谱 Take me hand\n电影《艺伎回忆录》插曲(片段)",
"bpm": 240,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 202,
"social": [
{
"platform": "mail",
"name": "zhangjinteng@foxmail.com",
"link": "zhangjinteng@foxmail.com"
}
]
},
{
"name": "郭顶 - 水星记",
"file": "水星记.txt",
"author": "zhangjinteng",
"desc": "<a href=mailto:zhangjinteng@foxmail.com>zhangjinteng<a/> 分享乐谱 郭顶 - 水星记片段",
"bpm": 240,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 275,
"social": [
{
"platform": "mail",
"name": "zhangjinteng@foxmail.com",
"link": "zhangjinteng@foxmail.com"
}
]
},
{
"name": "月亮代表我的心",
"file": "月亮代表我的心.txt",
"author": "zhangjinteng",
"desc": "<a href=mailto:zhangjinteng@foxmail.com>zhangjinteng<a/> 分享乐谱 月亮代表我的心 简易和弦版",
"bpm": 215,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 193,
"social": [
{
"platform": "mail",
"name": "zhangjinteng@foxmail.com",
"link": "zhangjinteng@foxmail.com"
}
]
},
{
"name": "三葉のテーマ(三叶的主题曲)",
"file": "三葉のテーマ.txt",
"author": "zhangjinteng",
"desc": "<a href=mailto:zhangjinteng@foxmail.com>zhangjinteng<a/> 分享乐谱 三叶的主题曲\n电影《你的名字。》中的歌曲",
"bpm": 240,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 892,
"social": [
{
"platform": "mail",
"name": "zhangjinteng@foxmail.com",
"link": "zhangjinteng@foxmail.com"
}
]
},
{
"name": "Happy Birthday to You",
"file": "Happy Birthday to You.txt",
"author": "酷安@阿基米德的船",
"desc": "酷安 <a href=http://www.coolapk.com/u/3283016>@阿基米德的船<a/> 分享乐谱 Happy Birthday to You",
"bpm": 220,
"suggested_instrument": 1,
"keyCount": 15,
"pitchLevel": 0,
"noteCount": 126,
"social": [
{
"platform": "coolapk",
"name": "酷安",
"link": "http://www.coolapk.com/u/3283016"
}
]
},
{ {
"name": "浪流连", "name": "浪流连",
"file": "浪流连.txt", "file": "浪流连.txt",
@@ -875,10 +361,10 @@
] ]
}, },
{ {
"name": "いつも何度も (「千と千尋の神隠し」主題歌)", "name": "いつも何度でも (「千と千尋の神隠し」主題歌)",
"file": "いつも何度でも_F.txt", "file": "いつも何度でも (「千と千尋の神隠し」主題歌)F调.txt",
"author": "酷安@阿基米德的船", "author": "酷安@阿基米德的船",
"desc": "酷安 <a href=http://www.coolapk.com/u/3283016>@阿基米德的船<a/> 分享乐谱 いつも何度でも_F \n(「千と千尋の神隠し」主題歌) (F调)", "desc": "酷安 <a href=http://www.coolapk.com/u/3283016>@阿基米德的船<a/> 分享乐谱 いつも何度でも \n(「千と千尋の神隠し」主題歌) (F调)",
"bpm": 470, "bpm": 470,
"suggested_instrument": 1, "suggested_instrument": 1,
"keyCount": 15, "keyCount": 15,

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,7 +1,7 @@
"ui"; "ui";
"use strict"; "use strict";
/* /*
SkyAutoPlayer (AutoX script) SkyAutoPlayer (Auto.js script)
Copyright © 2020-2021 StageGuard Copyright © 2020-2021 StageGuard
Contact : Contact :
(QQ: 1355416608) (QQ: 1355416608)
@@ -29,13 +29,13 @@
const user_agreements = const user_agreements =
"请仔细阅读以下使用须知!\n\n" + "请仔细阅读以下使用须知!\n\n" +
"1. 未充分测试,若遇到 BUG请酷安私信 @StageGuard 或新建 Issue 来反馈 BUG\n\n" + "1. 未充分测试若遇到BUG请酷安私信@StageGuard或新建Issue来反馈BUG\n\n" +
"2. SkyAutoplayerScript 是完全免费且开源的软件/脚本(https://github.com/StageGuard/SkyAutoPlayerScript),使用 SkyAutoplayerScript 盈利的同时请标注源项目链接。\n\n" + "2. SkyAutoplayerScript是完全免费且开源的软件/脚本(https://github.com/StageGuard/SkyAutoPlayerScript),使用 SkyAutoplayerScript 盈利的同时请标注源项目链接。\n\n" +
"3. 共享乐谱不遵守 LGPL-2.1 协议如您想在SkyAutoPlayer以外使用这些乐谱请自行找乐谱作者授权\n\n" + "3. 共享乐谱不遵守LGPL-2.1协议如您想在SkyAutoPlayer以外使用这些乐谱请自行找乐谱作者授权\n\n" +
"4. 本脚本仅可用作娱乐用途,请不要在正规场合使用本脚本(请自行体会\"正规场合\"是什么意思),若因使用本脚本所出现了一些不友好的问题,与脚本作者 StageGuard 无关。\n\n" + "4. 本脚本仅可用作娱乐用途,请不要在正规场合使用本脚本(请自行体会\"正规场合\"是什么意思)若因使用本脚本所出现了一些不友好的问题与脚本作者StageGuard无关。\n\n" +
"5. 脚本只能给你一时满足感而不能使你进步,请适当使用,只有真正的技术才是王道,才能使你感到快乐。\n\n" + "5. 脚本只能给你一时满足感而不能使你进步,请适当使用,只有真正的技术才是王道,才能使你感到快乐。\n\n" +
"6. 本脚本只是一个\"弹奏机\",并不内置曲谱,请在 GooglePlay 下载 SkyStudio 编谱。\n\n" + "6. 本脚本只是一个\"弹奏机\",并不内置曲谱,请在 GooglePlay 下载 SkyStudio 编谱。\n\n" +
"7. 本脚本的发行遵守 LGPL-2.1 协议,若你不了解协议内容,请访问 https://www.gnu.org/licenses 查看" "7. 本脚本的发行遵守LGPL-2.1协议,若你不了解协议内容,请访问 https://www.gnu.org/licenses 查看"
; ;
//Script global scope //Script global scope
@@ -58,7 +58,7 @@ scope.dp = context.getResources().getDisplayMetrics().density;
//show error; //show error;
const error = function(text) { const error = function(text) {
console.show(); console.show();
console.error("SkyAutoPlayer发生了一个错误请酷安私信 @StageGuard 或在 Github 中的 StageGuard/SkyAutoPlayerScript 新建 Issue 来反馈这个 BUG\n详细信息" + text); console.error("SkyAutoPlayer发生了一个错误请酷安私信@StageGuard或在github中的StageGuard/SkyAutoPlayerScript新建Issue来反馈这个BUG\n详细信息" + text);
}; };
String.format = function() { String.format = function() {
@@ -88,15 +88,6 @@ sheetmgr = {
} }
return this.cachedLocalSheetList; return this.cachedLocalSheetList;
}, },
filterLocalSheet: function(filterBlock, listener) {
var resultList = [];
this.getLocalSheetList(listener).map(function(element, index) {
if(filterBlock(element)) resultList.push(element);
});
return resultList;
},
getOnlineSharedSheetInfoList: function(forceRefresh) { getOnlineSharedSheetInfoList: function(forceRefresh) {
if(this.cachedOnlineSharedSheetInfoList.length == 0 || forceRefresh) { if(this.cachedOnlineSharedSheetInfoList.length == 0 || forceRefresh) {
this.__internal_fetchOnlineSharedSheets(); this.__internal_fetchOnlineSharedSheets();
@@ -292,7 +283,8 @@ sheetplayer = {
delay += config.values.chordDelay; delay += config.values.chordDelay;
gestureMap.push([delay, 25, keyCoordinates, keyCoordinates]); gestureMap.push([delay, 25, keyCoordinates, keyCoordinates]);
}); });
gestures.apply(null, gestureMap); gestureMap = sheetplayer.toSource(gestureMap);
eval("gestures(" + gestureMap.slice(1, gestureMap.length - 1) + ");");
} }
}); });
while(sheetplayer.playing && sheetplayer.currentNote < sheetplayer.noteCount) { while(sheetplayer.playing && sheetplayer.currentNote < sheetplayer.noteCount) {
@@ -332,9 +324,7 @@ sheetplayer = {
} }
} else { } else {
sheetplayer.stop(); sheetplayer.stop();
setTimeout(function(){ gui.main.show(0);
gui.main.show(0);
}, config.values.intervalSecondsPlayInNoPopupMode * 1000);
} }
} }
}); });
@@ -374,7 +364,24 @@ sheetplayer = {
this.bpm = j.bpm; this.bpm = j.bpm;
this.noteCount = this.notes.length; this.noteCount = this.notes.length;
this.keyCount = j.keyCount; this.keyCount = j.keyCount;
} },
toSource: function(obj) {
var _toJSON = function toJSON(x, lev) {
var p = "", r, i;
if (typeof x == "string") {
return x;
} else if (Array.isArray(x)) {
r = new Array();
for (i = 0; i < x.length; i++) r.push(toJSON(x[i], lev - 1));
p = "[" + r.join(",") + "]";
} else {
p = String(x);
}
return p;
}
return _toJSON(obj, 32);
},
} }
config = { config = {
@@ -382,7 +389,7 @@ config = {
_global_storage: null, _global_storage: null,
values: { values: {
currentVersion: 24, currentVersion: 23,
gitVersion: "", gitVersion: "",
key_coordinates15: [], key_coordinates15: [],
@@ -409,7 +416,7 @@ config = {
languages: { languages: {
zh_CN: { zh_CN: {
launch_tip_in_content: "当你发现什么事情都没有发生时<br>也许你应该看看是否授予了 AutoX <u><b>悬浮窗权限</u></b>", launch_tip_in_content: "当你发现什么事情都没有发生时<br>也许你应该看看是否授予了Auto.js<u><b>悬浮窗权限</u></b><br><br><br>建议使用 <b>4.1.1 Alpha2</b> 版本!<br><b>4.1.1 Alpha2</b> 版本下载: <a href=https://github.com/Ericwyn/Auto.js/releases/tag/V4.1.1.Alpha2>https://github.com/Ericwyn/Auto.js/releases/tag/V4.1.1.Alpha2</a>",
launch_tip_force_exit: "强制退出", launch_tip_force_exit: "强制退出",
launch_tip_storage_on_android11: "安卓11不允许外部应用读取应用私有文件夹乐谱文件夹移至 {0}", launch_tip_storage_on_android11: "安卓11不允许外部应用读取应用私有文件夹乐谱文件夹移至 {0}",
@@ -643,7 +650,7 @@ config = {
}, },
checkVersion: function() { checkVersion: function() {
this.values.gitVersion = http.get("https://cdn.jsdelivr.net/gh/StageGuard/SkyAutoPlayerScript/gitVersion").body.string(); this.values.gitVersion = http.get("https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/gitVersion").body.string();
var periodVersion = this._global_storage.get("version", this.values.currentVersion); var periodVersion = this._global_storage.get("version", this.values.currentVersion);
var currentVersion = this.values.currentVersion; var currentVersion = this.values.currentVersion;
if(periodVersion < currentVersion) { if(periodVersion < currentVersion) {
@@ -728,6 +735,7 @@ config = {
fetchRepoFile: function(path, successCbk, failCbk) { fetchRepoFile: function(path, successCbk, failCbk) {
var repos = [ var repos = [
"https://cdn.jsdelivr.net/gh/StageGuard/SkyAutoPlayerScript@" + config.values.gitVersion + "/" + path, "https://cdn.jsdelivr.net/gh/StageGuard/SkyAutoPlayerScript@" + config.values.gitVersion + "/" + path,
"https://dl.skyautoplayerscript.stageguard.top/" + path,
"https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/" + path, "https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/" + path,
"https://raw.githubusercontent.com/StageGuard/SkyAutoPlayerScript/master/" + path "https://raw.githubusercontent.com/StageGuard/SkyAutoPlayerScript/master/" + path
]; ];
@@ -739,7 +747,7 @@ config = {
successCbk(resp.body); successCbk(resp.body);
return; return;
} else errorCollector += "Failed on " + repo[i] + ": " + resp.statusCode + ": " + resp.statusMessage + "\n"; } else errorCollector += "Failed on " + repo[i] + ": " + resp.statusCode + ": " + resp.statusMessage + "\n";
} catch (e) { errorCollector += "Failed on " + repos[i] + ": " + e + "\n"; } } catch (e) { errorCollector += "Failed on " + repo[i] + ": " + e + "\n"; }
} }
if(failCbk != null) failCbk(errorCollector); if(failCbk != null) failCbk(errorCollector);
}, },
@@ -1422,8 +1430,7 @@ gui = {
//internal methods //internal methods
__internal_show: function s(content) { gui.run(function(){ __internal_show: function s(content) { gui.run(function(){
s.index = content.index; s.index = gui.main.current = content.index;
gui.main.current = content.index;
s.initial = false; s.initial = false;
if(!gui.main.isShowing) { //create a new window and show content view if(!gui.main.isShowing) { //create a new window and show content view
gui.main._global_base = new android.widget.LinearLayout(ctx); gui.main._global_base = new android.widget.LinearLayout(ctx);
@@ -1649,9 +1656,7 @@ gui = {
} }
s["navigationBtn" + i].setOnClickListener(new android.view.View.OnClickListener({ s["navigationBtn" + i].setOnClickListener(new android.view.View.OnClickListener({
onClick: function(view) { if(gui.main.current_navigation_selection != Number(view.getId())) { onClick: function(view) { if(gui.main.current_navigation_selection != Number(view.getId())) {
if(typeof(gui.main.currentPageChangeListener) == "function") { if(typeof(gui.main.currentPageChangeListener) == "function") gui.main.currentPageChangeListener(s, content);
gui.main.currentPageChangeListener(s, content);
}
gui.main.__internal_show(gui.main.views[Number(view.getId())]); gui.main.__internal_show(gui.main.views[Number(view.getId())]);
gui.main.current_navigation_selection = Number(view.getId()); gui.main.current_navigation_selection = Number(view.getId());
}} }}
@@ -2167,7 +2172,7 @@ gui = {
s.lp = gui.player_panel._global_base.getLayoutParams(); s.lp = gui.player_panel._global_base.getLayoutParams();
if(gui.player_panel.cx == null) { if(gui.player_panel.cx == null) {
gui.player_panel.cx = 0; gui.player_panel.cx = 0;
gui.player_panel.cy = context.getResources().getDisplayMetrics().heightPixels / 2; gui.player_panel.cy = context.getResources().getDisplayMetrics().heightPixels / 2 - gui.player_panel._global_base.getMeasuredHeight() - dp * 2;
} }
s.lp.x = s.x = gui.player_panel.cx; s.lp.x = s.x = gui.player_panel.cx;
s.lp.y = s.y = gui.player_panel.cy; s.lp.y = s.y = gui.player_panel.cy;
@@ -2786,18 +2791,8 @@ gui.dialogs.showProgressDialog(function(o) {
func: [{ func: [{
icon: "refresh", icon: "refresh",
onClick: function(s, selfContent) { onClick: function(s, selfContent) {
if(s.ns0_isShowingSearchEditTextView) selfContent.removeSearchEditTextView(s, selfContent);
selfContent.getSheetList(s, true); selfContent.getSheetList(s, true);
}, },
}, {
icon: "search",
onClick: function(s, selfContent) {
if(s.ns0_isShowingSearchEditTextView) {
selfContent.removeSearchEditTextView(s, selfContent);
} else {
selfContent.showSearchEditTextView(s, selfContent);
}
},
}], }],
view: function(s) { view: function(s) {
s.ns0_rl = new android.widget.RelativeLayout(ctx); s.ns0_rl = new android.widget.RelativeLayout(ctx);
@@ -3056,83 +3051,12 @@ gui.dialogs.showProgressDialog(function(o) {
update: function(s) { update: function(s) {
if(s.initial) this.getSheetList(s, false); if(s.initial) this.getSheetList(s, false);
}, },
getSheetList: function(s, isForce) {
onPageChanged: function(s, selfContent) {
if(s.ns0_isShowingSearchEditTextView) {
selfContent.removeSearchEditTextView(s);
}
},
showSearchEditTextView: function(s, selfContent) {
gui.main.setFuncClickable(s.index, false);
s.ns0_isShowingSearchEditTextView = true;
s.ns0_searchEditText = new android.widget.EditText(ctx);
s.ns0_searchEditText.setGravity(android.view.Gravity.LEFT | android.view.Gravity.CENTER);
s.ns0_searchEditText.setLayoutParams(new android.widget.RelativeLayout.LayoutParams(-2, -1));
s.ns0_searchEditText.setPadding(dp * 5, dp * 5, dp * 5, dp * 5);
s.ns0_searchEditText.getLayoutParams().addRule(android.widget.RelativeLayout.ALIGN_PARENT_LEFT);
s.ns0_searchEditText.setTextSize(15);
s.ns0_searchEditText.setTextColor(gui.config.colors[config.values.theme].text);
s.ns0_searchEditText.setHintTextColor(gui.config.colors[config.values.theme].sec_text);
s.ns0_searchEditText.setHint(config.languages[config.values.lang].page_sc_search_hint);
s.ns0_searchEditText.setAlpha(0);
s.ns0_searchEditText.setOnClickListener(new android.view.View.OnClickListener({
onClick: function(view) {
view.setFocusable(true);
view.setFocusableInTouchMode(true);
view.requestFocus();
ctx.getSystemService(android.content.Context.INPUT_METHOD_SERVICE).showSoftInput(view, 0);
}
}));
s.ns0_searchEditText.setOnKeyListener(new android.view.View.OnKeyListener({
onKey: function(view, keycode, event) {
if (keycode == android.view.KeyEvent.KEYCODE_ENTER && event.getAction() == android.view.KeyEvent.ACTION_DOWN) {
selfContent.getSheetList(s, false, function(item) {
var regExp = new RegExp(view.getText(), "gi");
return regExp.test(item.fileName) || regExp.test(item.name);
});
return true;
}
return false;
},
}));
gui.main._global_statusbar.addView(s.ns0_searchEditText);
s.ns0_searchEditText.setFocusable(true);
s.ns0_searchEditText.setFocusableInTouchMode(true);
s.ns0_searchEditText.requestFocus();
ctx.getSystemService(android.content.Context.INPUT_METHOD_SERVICE).showSoftInput(s.ns0_searchEditText, 0);
gui.main._global_title.setEnabled(false);
gui.main._global_title.setClickable(false);
gui.utils.value_animation("Float", 0, 1.0, 300 , new android.view.animation.DecelerateInterpolator(), function(anim) {
s.ns0_searchEditText.setAlpha(anim.getAnimatedValue());
gui.main._global_title.setAlpha(1.0 - anim.getAnimatedValue());
if(anim.getAnimatedValue() == 1.0) gui.main.setFuncClickable(s.index, true);
});
},
removeSearchEditTextView: function(s, selfContent) { try {
s.ns0_isShowingSearchEditTextView = false;
gui.main.setFuncClickable(s.index, false);
s.ns0_searchEditText.setEnabled(false);
s.ns0_searchEditText.setClickable(false);
gui.main._global_title.setEnabled(true);
gui.main._global_title.setClickable(true);
gui.utils.value_animation("Float", 0, 1.0, 300 , new android.view.animation.DecelerateInterpolator(), function(anim) {
s.ns0_searchEditText.setAlpha(1.0 - anim.getAnimatedValue());
gui.main._global_title.setAlpha(anim.getAnimatedValue());
if(anim.getAnimatedValue() == 1.0) {
gui.main._global_statusbar.removeView(s.ns0_searchEditText);
gui.main.setFuncClickable(s.index, true);
}
});
} catch (e) { error(e); }},
getSheetList: function(s, isForce, filterBlock) {
gui.run(function() { gui.run(function() {
s.ns0_progress.setIndeterminate(true); s.ns0_progress.setIndeterminate(true);
s.ns0_listAdapterController.removeAll(); s.ns0_listAdapterController.removeAll();
gui.main.setFuncClickable(s.index, false); gui.main.setFuncClickable(s.index, false);
if(typeof(filterBlock) != "function") gui.utils.value_animation("Float", 0, 1.0, 200, new android.view.animation.DecelerateInterpolator(), function(anim) { gui.utils.value_animation("Float", 0, 1.0, 200, new android.view.animation.DecelerateInterpolator(), function(anim) {
gui.main._global_title.setAlpha(anim.getAnimatedValue()); gui.main._global_title.setAlpha(anim.getAnimatedValue());
}); });
gui.utils.value_animation("Float", 1.0, 0, 100, new android.view.animation.DecelerateInterpolator(), function(anim) { gui.utils.value_animation("Float", 1.0, 0, 100, new android.view.animation.DecelerateInterpolator(), function(anim) {
@@ -3152,17 +3076,11 @@ gui.dialogs.showProgressDialog(function(o) {
});//修改乐谱键位提示 });//修改乐谱键位提示
s.ns0_listAdapterController.notifyChange(); s.ns0_listAdapterController.notifyChange();
threads.start(function() { threads.start(function() {
var list; sheetmgr.getLocalSheetList(isForce, function(successCount, failedCount) {
if(typeof(filterBlock) != "function") { gui.run(function(){
list = sheetmgr.getLocalSheetList(isForce, function(successCount, failedCount) { gui.main._global_title.setText(String.format(config.languages[config.values.lang].page_lc_loading_sheet, successCount, failedCount));
gui.run(function(){
gui.main._global_title.setText(String.format(config.languages[config.values.lang].page_lc_loading_sheet, successCount, failedCount));
});
}); });
} else { }).map(function(e, i) {
list = sheetmgr.filterLocalSheet(filterBlock);
}
list.map(function(e, i) {
gui.run(function(){ gui.run(function(){
if(!e.failed || config.values.showFailedSheets) { if(!e.failed || config.values.showFailedSheets) {
s.ns0_listAdapterController.add((function(item) { s.ns0_listAdapterController.add((function(item) {
@@ -3177,15 +3095,11 @@ gui.dialogs.showProgressDialog(function(o) {
s.ns0_listAdapterController.notifyChange(); s.ns0_listAdapterController.notifyChange();
gui.main._global_title.setText(gui.main.getPageInfo(s.index).title); gui.main._global_title.setText(gui.main.getPageInfo(s.index).title);
gui.utils.value_animation("Float", 0, 1.0, 200, new android.view.animation.DecelerateInterpolator(), function(anim) { gui.utils.value_animation("Float", 0, 1.0, 200, new android.view.animation.DecelerateInterpolator(), function(anim) {
gui.main._global_title.setAlpha(anim.getAnimatedValue());
s.ns0_listView.setAlpha(anim.getAnimatedValue()); s.ns0_listView.setAlpha(anim.getAnimatedValue());
s.ns0_progress.setAlpha(1 - anim.getAnimatedValue()); s.ns0_progress.setAlpha(1 - anim.getAnimatedValue());
if(anim.getAnimatedValue() == 1.0) s.ns0_progress.setIndeterminate(false); if(anim.getAnimatedValue() == 1.0) s.ns0_progress.setIndeterminate(false);
}); });
if(typeof(filterBlock) != "function") {
gui.utils.value_animation("Float", 0, 1.0, 200, new android.view.animation.DecelerateInterpolator(), function(anim) {
gui.main._global_title.setAlpha(anim.getAnimatedValue());
});
}
}); });
}); });
} }
@@ -3494,8 +3408,7 @@ gui.dialogs.showProgressDialog(function(o) {
onKey: function(view, keycode, event) { onKey: function(view, keycode, event) {
if (keycode == android.view.KeyEvent.KEYCODE_ENTER && event.getAction() == android.view.KeyEvent.ACTION_DOWN) { if (keycode == android.view.KeyEvent.KEYCODE_ENTER && event.getAction() == android.view.KeyEvent.ACTION_DOWN) {
selfContent.getOnlineSheetList(s, false, function(item) { selfContent.getOnlineSheetList(s, false, function(item) {
var regExp = new RegExp(view.getText(), "gi"); return (new RegExp(view.getText(), "gi")).test(item.name);
return regExp.test(item.name) || regExp.test(item.author) || regExp.test(item.desc);
}); });
return true; return true;
} }
@@ -3531,7 +3444,7 @@ gui.dialogs.showProgressDialog(function(o) {
gui.main.setFuncClickable(s.index, true); gui.main.setFuncClickable(s.index, true);
} }
}); });
} catch (e) { error(e); }}, } catch (e) {}},
update: function(s) { update: function(s) {
if(s.initial) this.getOnlineSheetList(s, false); if(s.initial) this.getOnlineSheetList(s, false);
@@ -3912,4 +3825,4 @@ gui.dialogs.showProgressDialog(function(o) {
}())); }()));
}); });
}, false, true); }, false, true);
}); });

View File

@@ -2,10 +2,10 @@
"list": [{ "list": [{
"code": "zh_CN", "code": "zh_CN",
"name": "简体中文", "name": "简体中文",
"version": 6 "version": 5
}, { }, {
"code": "en_US", "code": "en_US",
"name": "English (US)", "name": "English (US)",
"version": 6 "version": 5
}] }]
} }

View File

@@ -1,8 +1,16 @@
"ui"; "ui";
"use strict"; "use strict";
/* /*
SkyAutoPlayer (Auto.js script) SkyAutoPlayer (Auto.js script)
Copyright © 2020-2021 StageGuard Copyright © 2020-2021 StageGuard
Contact :
(QQ: 1355416608)
(Email: beamiscool@qq.com)
(BaiduTieba@拐角处_等你)
(Weibo@StageGuard)
(CoolApk@StageGuard)
(Twiter@stageguardcn)
This library is free software; you can redistribute it and/or This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public modify it under the terms of the GNU Lesser General Public
@@ -19,26 +27,23 @@
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA USA
*/ */
(function(emitter) {
threads.start(function () { var emitter = events.emitter(threads.currentThread());
emitter.emit("evaluate", (function () { threads.start(function() {
//Many sources emitter.emit("evaluate", (function(){
let sources = [ var resp = http.get("https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/source/SkyAutoplayer.js");
"http://cdn.stagex.top:8090/StageGuard/SkyAutoPlayerScript/raw/master/source/SkyAutoplayer.js", if(resp.statusCode >= 200 && resp.statusCode < 300) {
"https://cdn.jsdelivr.net/gh/StageGuard/SkyAutoPlayerScript/source/SkyAutoplayer.js", return resp.body.string();
"https://dl.skyautoplayerscript.stageguard.top/source/SkyAutoplayer.js", } else {
"https://raw.githubusercontent.com/StageGuard/SkyAutoPlayerScript/master/source/SkyAutoplayer.js" resp = http.get("https://cdn.jsdelivr.net/gh/StageGuard/SkyAutoPlayerScript@" + http.get("https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/gitVersion").body.string() + "/source/SkyAutoplayer.js");
]; if(resp.statusCode >= 200 && resp.statusCode < 300) {
for (let i in sources) { return resp.body.string();
let resp = http.get(sources[i]); } else {
if (resp.statusCode >= 200 && resp.statusCode < 300) { return "console.show();console.log(\"Failed to load script\")";
return resp.body.string();
}
} }
return "console.show();console.log(\"Failed to load script\")"; }
}())); }()));
}); });
emitter.on('evaluate', function (s) { emitter.on('evaluate', function(s){
eval(s); eval(s);
}); });
}(events.emitter(threads.currentThread())));

View File

@@ -1,8 +1,3 @@
版本: 24
更新时间: 2022.03.06 11:30
更新内容:
* 新增:本地乐谱搜索。
版本: 23 版本: 23
更新时间: 2021.6.29 13:10 更新时间: 2021.6.29 13:10
更新内容: 更新内容: