Compare commits
115 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
79965ac73d | ||
|
|
ee925ccc72 | ||
|
|
fe4263fc0d | ||
|
|
7a658a9291 | ||
|
|
e91a30536e | ||
|
|
ef0b92b7a3 | ||
|
|
c9c957efae | ||
|
|
9619a912a7 | ||
|
|
5db393be2e | ||
|
|
6e5d34c4ec | ||
|
|
0af7dfef95 | ||
|
|
3a3d46539b | ||
|
|
7b5f6fbbf2 | ||
|
|
d3f46df074 | ||
|
|
81cde4b7a2 | ||
|
|
c3b1eb0101 | ||
|
|
bb878c5581 | ||
|
|
05cd1e8692 | ||
|
|
2a1e8a6fac | ||
|
|
43e18fbe60 | ||
|
|
38e59830f0 | ||
|
|
3e8a31f9a2 | ||
|
|
7f7aeab1ea | ||
|
|
bd8a7d0429 | ||
|
|
9f443c01d7 | ||
|
|
2fb30a51bb | ||
|
|
64508c41fb | ||
|
|
3405e8d01b | ||
|
|
d8e8af591d | ||
|
|
5feb691108 | ||
|
|
4caa1e08cc | ||
|
|
5270d46b39 | ||
|
|
5f793165d2 | ||
|
|
276f73887c | ||
|
|
8d22952980 | ||
|
|
ba200fcc3b | ||
|
|
6145094332 | ||
|
|
1fe47af144 | ||
|
|
9fc9aa9383 | ||
|
|
662b1b5b8f | ||
|
|
90764f9ddd | ||
|
|
aecc5683d1 | ||
|
|
4116a387b8 | ||
|
|
e7270bac2a | ||
|
|
6202bfe046 | ||
|
|
70bdb18519 | ||
|
|
94f04bf4be | ||
|
|
ba919201ac | ||
|
|
f7a995a6fc | ||
|
|
6c7abdeec3 | ||
|
|
3c6fbf998f | ||
|
|
6d4f694535 | ||
|
|
dba53ba8aa | ||
|
|
5972f6afef | ||
|
|
6eb6c89cba | ||
|
|
9fa6f03a36 | ||
|
|
605ab7ba1b | ||
|
|
14015d32d1 | ||
|
|
c3e337d8b3 | ||
|
|
0bf2a612c2 | ||
|
|
b6a259b6ce | ||
|
|
1699065b50 | ||
|
|
52df50f618 | ||
|
|
fc0d773cfe | ||
|
|
adb40120b2 | ||
|
|
e031e7206a | ||
|
|
1dedb59383 | ||
|
|
745c7f4553 | ||
|
|
fa45e5b380 | ||
|
|
231726a627 | ||
|
|
2dc3dc776e | ||
|
|
f01999b861 | ||
|
|
05a36fc5f6 | ||
|
|
ded30f266e | ||
|
|
4aa6bc9e5d | ||
|
|
bf9bb40868 | ||
|
|
f70f3ac9eb | ||
|
|
8524a2835a | ||
|
|
b6a0865731 | ||
|
|
051695afe6 | ||
|
|
26ee689227 | ||
|
|
91192550d9 | ||
|
|
f311028dfe | ||
|
|
d609f8d93a | ||
|
|
64cc564759 | ||
|
|
7396e87a28 | ||
|
|
edd6ff08a5 | ||
|
|
191c860c20 | ||
|
|
858710ba2a | ||
|
|
1ceaa898df | ||
|
|
91efbd8f33 | ||
|
|
9d5fc4655b | ||
|
|
480a6e90ab | ||
|
|
c407471e09 | ||
|
|
a08a46eccc | ||
|
|
60c9eae07d | ||
|
|
c987172e63 | ||
|
|
c5a1ac2040 | ||
|
|
a1b910112c | ||
|
|
214fdcc051 | ||
|
|
d591f00b2d | ||
|
|
6e1d3dbca5 | ||
|
|
38b1070cd4 | ||
|
|
a9a82dfeb4 | ||
|
|
52883882b9 | ||
|
|
6688fddbff | ||
|
|
9132a29653 | ||
|
|
ea984627b6 | ||
|
|
754ff3ec65 | ||
|
|
6a364f8f4d | ||
|
|
b35e13f52e | ||
|
|
fba6f91a69 | ||
|
|
d2c2fd0cf6 | ||
|
|
7345ea7afd | ||
|
|
c3f28c7f2a |
48
.github/workflows/syncToGitee.yml
vendored
Normal file
48
.github/workflows/syncToGitee.yml
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
name: Auto update commit and sync to gitee
|
||||
|
||||
on: [ push, delete, create ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
if: github.actor != 'github-actions[bot]'
|
||||
with:
|
||||
persist-credentials: true
|
||||
- name: Update commit hash to gitVersion
|
||||
if: github.actor != 'github-actions[bot]'
|
||||
run: |
|
||||
git show -s --format=%H | awk 'NR == 1 {p = $0} NR > 1 {print p; p = $0} END{printf p}' > gitVersion
|
||||
- name: Push commit
|
||||
uses: EndBug/add-and-commit@v7.1.2
|
||||
if: github.actor != 'github-actions[bot]'
|
||||
with:
|
||||
add: gitVersion
|
||||
author_name: github-actions[bot]
|
||||
author_email: 41898282+github-actions[bot]@users.noreply.github.com
|
||||
message: Update git tree hash
|
||||
push: true
|
||||
# - name: Sync to mirror file server
|
||||
# uses: sand4rt/ftp-deployer@v1.3
|
||||
# if: github.actor != 'github-actions[bot]'
|
||||
# with:
|
||||
# sftp: false
|
||||
# host: ${{ secrets.FTP_MIRROR_DESTINATION }}
|
||||
# port: ${{ secrets.FTP_MIRROR_PORT }}
|
||||
# username: ${{ secrets.FTP_MIRROR_USERNAME }}
|
||||
# password: ${{ secrets.FTP_MIRROR_SECRET }}
|
||||
# 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
|
||||
if: github.actor != 'github-actions[bot]'
|
||||
env:
|
||||
SSH_PRIVATE_KEY: ${{ secrets.GITEE_RSA_PRIVATE_KEY }}
|
||||
with:
|
||||
source-repo: git@github.com:StageGuard/SkyAutoPlayerScript.git
|
||||
destination-repo: git@gitee.com:stageguard/SkyAutoPlayerScript.git
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -3,3 +3,6 @@
|
||||
rhino.jar
|
||||
update.sh
|
||||
updateSharedSheets.js
|
||||
stageguard
|
||||
encSheetAndPush.sh
|
||||
encSheetList.js
|
||||
246
README-en.md
Normal file
246
README-en.md
Normal file
@@ -0,0 +1,246 @@
|
||||
# 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 Auto.js
|
||||
|
||||
[](shared_sheets/) [](#shared-sheets) [](https://www.jsdelivr.com/)
|
||||
|
||||
## Feature
|
||||
|
||||
There are many features in SkyAutoPlayerScript compared to other auto player scripts.
|
||||
|
||||
* Friendly GUI, no code edit, fluent UI animation.
|
||||
* Multi-functional player control panel with **pause**, **progress control** and **speed control**.
|
||||
* Set key coordinates by yourself with guidance, avoiding key offset when playing.
|
||||
* There are many excellent online [shared sheets](https://github.com/StageGuard/SkyAutoPlayerScript/tree/master/shared_sheets).
|
||||
* Automatically update script.
|
||||
* [Multi-language support](#translation).
|
||||
* ...
|
||||
|
||||
## Usage
|
||||
|
||||
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)
|
||||
|
||||
2. Turn on **Accessibility service** and allow **Display pop-up window** permission for Auto.js
|
||||
|
||||
3. Create a new script file in Auto.js. Copy the code below and run!
|
||||
|
||||
```javascript
|
||||
"ui";
|
||||
"use strict";
|
||||
var emitter = events.emitter(threads.currentThread());
|
||||
threads.start(function() {
|
||||
emitter.emit("evaluate", (function(){
|
||||
var resp = http.get("https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/source/SkyAutoplayer.js");
|
||||
if(resp.statusCode >= 200 && resp.statusCode < 300) {
|
||||
return resp.body.string();
|
||||
} else {
|
||||
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) {
|
||||
return resp.body.string();
|
||||
} else {
|
||||
return "console.show();console.log(\"Failed to load script\")";
|
||||
}
|
||||
}
|
||||
}()));
|
||||
});
|
||||
emitter.on('evaluate', function(s){
|
||||
eval(s);
|
||||
});
|
||||
```
|
||||
## Clear data
|
||||
|
||||
`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");
|
||||
files.removeDir("/storage/emulated/0/Documents/SkyAutoPlayer/");
|
||||
```
|
||||
|
||||
# Upload sheets
|
||||
|
||||
SkyAutoplayerScript will load online shared sheets from the file `shared_sheets.json` in this repository and it is convenient to download and play.
|
||||
|
||||
If you want to let sheets that transcribed by yourself or permitted to reprint shown on the list, you can do one of the following ways:
|
||||
|
||||
### 1. Pull Request
|
||||
|
||||
You can clone this repository, put your sheet file into `shared_sheets` folder and add a new item in `shared_sheets.json` :
|
||||
|
||||
```javascript
|
||||
{
|
||||
//sheet name
|
||||
"name": "Vicetone - Nevada",
|
||||
//sheet file name in shared_sheets folder
|
||||
"file": "Nevada.txt",
|
||||
//transcriber
|
||||
"author": "StageGuard",
|
||||
//short description about this sheet
|
||||
"desc": "Nevada SkyStudio钢琴版。\n内包含<u>比较复杂的和弦</u>,不适合手弹(笑\n你可以在SkyStudio的练习模式试试[狗头]",
|
||||
//BPM in sheet file
|
||||
"bpm": 497,
|
||||
//key count(a 15 key sheet or 8 key sheet)
|
||||
"keyCount": 15,
|
||||
//pitch level in sheet file
|
||||
"pitchLevel": 3,
|
||||
//note count
|
||||
//length of array songNotes in sheet file
|
||||
"noteCount": 1308,
|
||||
//your social link
|
||||
//you can add many links if you want
|
||||
"social": [
|
||||
{
|
||||
//platform code name, currently support github, twitter, douyin(tiktok) and coolapk
|
||||
"platform": "github",
|
||||
//social platform name
|
||||
"name": "GitHub",
|
||||
//social link
|
||||
"link": "https://github.com/StageGuard/"
|
||||
}
|
||||
]
|
||||
},
|
||||
```
|
||||
|
||||
After finishing, you need to create a new `pull request` and wait it to be merged.
|
||||
|
||||
> Attention: Before creating a new `pull request` , make sure your local repository is up-to-date!
|
||||
|
||||
### 2. If you are not familiar with Github...
|
||||
|
||||
Just mail your sheet file to [beamiscool@qq.com](mailto:beamiscool@qq.com) and don't forget the sheet description !
|
||||
|
||||
# Attention!
|
||||
|
||||
### Before using this script, you must read the following notes!
|
||||
|
||||
1. SkyAutoplayerScript is not fully tested, if you meet a bug, please PM CoolApk@StageGuard or create a new issue.
|
||||
|
||||
2. **SkyAutoplayerScript is a free and open source project. If you want to use it for commercial purposes, please add the link refers to this repository.**
|
||||
|
||||
3. **Shared sheets is not under the protection of LGPL-2.1, if you want to reprint shared sheets to other platforms, please contact sheet transcriber by yourself!**
|
||||
|
||||
4. The script is just for entertainment and it is not suitable to use it in formal occasion.
|
||||
|
||||
5. Script just gives you a short-time sense of satisfaction and do not make you progress.
|
||||
|
||||
6. This script is just a "player" and no built-in sheets, you must download [SkyStudio](https://play.google.com/store/apps/details?id=com.Maple.SkyStudio) to make sheets.
|
||||
|
||||
7. The script will not support decrypt sheet, including **SkyStudio encrypted sheet** or **encrypted js** etc.....<br>And the repository will also not accept encrypted sheet.
|
||||
|
||||
|
||||
<details> <summary>Issues </summary>
|
||||
|
||||
# Use it to make profits: [#1](https://github.com/StageGuard/SkyAutoPlayerScript/issues/1)
|
||||
|
||||
# Embezzle shared sheets:
|
||||
|
||||
Gitee user [嗨游圈(@vipssp)](https://gitee.com/vipssp) upload all shared sheets in [/shared_sheets](https://github.com/StageGuard/SkyAutoPlayerScript/tree/master/shared_sheets) **without permission** to his [Gitee repository](https://gitee.com/vipssp/SkyAutoPlayerScript/)
|
||||
|
||||
He also doesn't delete these sheets from his repository after [notification](https://gitee.com/vipssp/SkyAutoPlayerScript/commit/197925a71ff9cc6248be682a55406fc5814b12d7#note_3637784).
|
||||
|
||||
I decide to pin him in README.md after communicating with some sheet sharer.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center" height="200">
|
||||
<img src="https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/resources/static/2020-12-19_0-8-40.PNG" />
|
||||
</td>
|
||||
<td align="center" height="200">
|
||||
<img src="https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/resources/static/2020-12-19_0-9-57.PNG" />
|
||||
</td>
|
||||
<td align="center" height="200">
|
||||
<img src="https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/resources/static/2020-12-19_0-44-4.PNG" />
|
||||
</td>
|
||||
<td align="center" height="200">
|
||||
<img src="https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/resources/static/Screenshot_2020-12-19-00-10-12-499_com.coolapk.market.jpg" />
|
||||
</td>
|
||||
<td align="center" height="200">
|
||||
<img src="https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/resources/static/Screenshot_2020-12-19-00-11-23-671_com.coolapk.market.jpg" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</details>
|
||||
|
||||
# Contribution
|
||||
|
||||
Welcome everyone to contribute this project, including pull request, issue, new feature request or translation.
|
||||
|
||||
### ⚠️WARNING
|
||||
CodeFactor Evaluation: [](https://www.codefactor.io/repository/github/stageguard/skyautoplayerscript)
|
||||
|
||||
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
|
||||
|
||||
### SkyAutoPlayerScript
|
||||
|
||||
[@tiaod](https://github.com/tiaod)
|
||||
|
||||
### Shared sheets
|
||||
|
||||
CoolApk [@Aex技术总监](http://www.coolapk.com/u/1286879)<br>
|
||||
CoolApk [@夏卡卡卡](http://www.coolapk.com/u/2313452)<br>
|
||||
CoolApk [@深空失忆か](http://www.coolapk.com/u/3005974)<br>
|
||||
Douyin [@子哲啊🌈(zizhe1880689503)](https://v.douyin.com/J9gUaVE/)<br>
|
||||
CoolApk [@你们很有趣呢](http://www.coolapk.com/u/2416229)<br>
|
||||
CoolApk [@情如风雪无常](http://www.coolapk.com/u/643670)<br>
|
||||
CoolApk [@慕疵](http://www.coolapk.com/u/3286967)<br>
|
||||
CoolApk [@社区最弱萌新](http://www.coolapk.com/u/3291313)<br>
|
||||
CoolApk [@九方辰](http://www.coolapk.com/u/634078)<br>
|
||||
CoolApk [@北极马可罗尼](http://www.coolapk.com/u/463478)<br>
|
||||
Bilibili [@UTF16](https://space.bilibili.com/623364258)<br>
|
||||
CoolApk [@Syngenex](http://www.coolapk.com/u/1093421)<br>
|
||||
Twitter [Phoebe@huunhut1217](https://mobile.twitter.com/huunhut1217)<br>
|
||||
CoolApk [@终究是错付了](http://www.coolapk.com/u/2293899)<br>
|
||||
CoolApk [@DesperatU](http://www.coolapk.com/u/1075889)<br>
|
||||
CoolApk [@明明酱](http://www.coolapk.com/u/1706128)<br>
|
||||
CoolApk [@cxk的篮球](http://www.coolapk.com/u/1090769)<br>
|
||||
CoolApk [@头条乀](http://www.coolapk.com/u/1192320)<br>
|
||||
CoolApk [@Alusias](http://www.coolapk.com/u/808787)<br>
|
||||
[chikin](mailto:2869826936@qq.com)<br>
|
||||
CoolApk [@温茶予君](http://www.coolapk.com/u/1212499)<br>
|
||||
CoolApk [@落红难相聚](http://www.coolapk.com/u/2082465)<br>
|
||||
CoolApk [@bugjump233](http://www.coolapk.com/u/3294062)<br>
|
||||
CoolApk [@阿基米德的船](http://www.coolapk.com/u/3283016)<br>
|
||||
[2087131113@qq.com](mailto:2087131113@qq.com)<br>
|
||||
CoolApk [@皮皮小猪猪](http://www.coolapk.com/u/5352224)<br>
|
||||
CoolApk [@DoubleGGe](http://www.coolapk.com/u/7728656)<br>
|
||||
[恋上猫的鱼~](mailto:shi1177121232@foxmail.com)<br>
|
||||
[依稀(濒死动物)](mailto:3423451308@qq.com)<br>
|
||||
|
||||
## Translation
|
||||
|
||||
SkyAutoplayerScript version 21 has supported multi-language and can also fetch online language list, follow [contribute-translation.md](contribute-translation.md) (English) guide to contribute translation.
|
||||
|
||||
### Contributor
|
||||
|
||||
None
|
||||
|
||||
# Icon from:
|
||||
|
||||
[Iconfont-阿里巴巴矢量图标库](https://www.iconfont.cn/)
|
||||
|
||||
# Thanks to:
|
||||
|
||||
[projectXero](https://gitee.com/projectXero) (Provide `ListAdapter` used in Rhino)
|
||||
|
||||
# LICENSE
|
||||
|
||||
```
|
||||
SkyAutoPlayer (Auto.js script)
|
||||
Copyright © 2020-2021 StageGuard
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
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
|
||||
```
|
||||
205
README.md
205
README.md
@@ -1,59 +1,32 @@
|
||||
# 关于脚本倒卖的问题: [#1](https://github.com/StageGuard/SkyAutoPlayerScript/issues/1)
|
||||
|
||||
# 耻辱柱
|
||||
|
||||
Gitee 用户[嗨游圈(@vipssp)](https://gitee.com/vipssp)在未经乐谱上传者的同意下私自盗用 SkyAutoplayerScript 与 Gitee 的[同步镜像](https://gitee.com/stageguard/SkyAutoPlayerScript)。
|
||||
|
||||
在经过[通知](https://gitee.com/vipssp/SkyAutoPlayerScript/commit/197925a71ff9cc6248be682a55406fc5814b12d7#note_3637784)后仍未及时删除盗用的乐谱,在于一些乐谱原作者沟通后,决定将其挂在此 README.md 首部,以告示。
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center" height="200">
|
||||
<img src="https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/resources/static/2020-12-19_0-8-40.PNG" />
|
||||
</td>
|
||||
<td align="center" height="200">
|
||||
<img src="https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/resources/static/2020-12-19_0-9-57.PNG" />
|
||||
</td>
|
||||
<td align="center" height="200">
|
||||
<img src="https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/resources/static/2020-12-19_0-44-4.PNG" />
|
||||
</td>
|
||||
<td align="center" height="200">
|
||||
<img src="https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/resources/static/Screenshot_2020-12-19-00-10-12-499_com.coolapk.market.jpg" />
|
||||
</td>
|
||||
<td align="center" height="200">
|
||||
<img src="https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/resources/static/Screenshot_2020-12-19-00-11-23-671_com.coolapk.market.jpg" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
# SkyAutoPlayerScript
|
||||
|
||||
A script to play Sheets generated by SkyStudio automatically in game Sky with accessibility services using Auto.js
|
||||
</br>使用Auto.js提供的无障碍权限实现在Sky光遇中自动弹奏[SkyStudio](https://play.google.com/store/apps/details?id=com.Maple.SkyStudio)导出的曲谱
|
||||
English: [README-en.md](README-en.md)
|
||||
|
||||
使用Auto.js提供的无障碍权限实现在Sky光遇中自动弹奏 [SkyStudio](https://play.google.com/store/apps/details?id=com.Maple.SkyStudio) 导出的曲谱
|
||||
|
||||
[](shared_sheets/) [](#共享乐谱) [](https://www.jsdelivr.com/)
|
||||
|
||||
~~不会进一步支持原神的21键琴和上传21键位的共享乐谱,反正15键又不是不能弹。~~
|
||||
|
||||
## 特性
|
||||
|
||||
相比于其他脚本,SkyAutoPlayerScript拥有以下优势
|
||||
相比于其他脚本,SkyAutoPlayerScript 拥有以下优势
|
||||
|
||||
* 全GUI操作,无需编辑任何代码,流畅的UI动画。
|
||||
* 完整的弹奏控制面板,支持**暂停**, **进度控制**, **倍速控制**等
|
||||
* 自设定键位坐标,避免按压琴键的偏移问题
|
||||
* 在线[共享乐谱](https://github.com/StageGuard/SkyAutoPlayerScript/tree/master/shared_sheets),有许多优质乐谱。</br>~~(甚至有的乐谱复杂到根本无法手弹)~~
|
||||
* 多功能的弹奏控制面板,支持**暂停**, **进度控制**, **倍速控制**等。
|
||||
* 通过引导自设定键位坐标,避免按压琴键的偏移问题。
|
||||
* 在线[共享乐谱](https://github.com/StageGuard/SkyAutoPlayerScript/tree/master/shared_sheets),有许多优质乐谱。
|
||||
* 自动更新,及时修复BUG,无需担心版本过时问题。
|
||||
* [多语言支持](#翻译)。
|
||||
* ...
|
||||
|
||||
## 使用(Usage)
|
||||
## 使用
|
||||
|
||||
<br>①Auto.js`4.1.1 Alpha2 (461)`版本下载: [`Ericwyn/Auto.js/releases@V4.1.1.Alpha2`](https://github.com/Ericwyn/Auto.js/releases/tag/V4.1.1.Alpha2)
|
||||
<br>Download `Auto.js`[`Ericwyn/Auto.js/releases@V4.1.1.Alpha2`](https://github.com/Ericwyn/Auto.js/releases/tag/V4.1.1.Alpha2)
|
||||
<br>手机请下载`autoJs-V4.1.1.Alpha2-common-armeabi-v7a-debug.apk`
|
||||
<br>Please download `autoJs-V4.1.1.Alpha2-common-armeabi-v7a-debug.apk`
|
||||
<br>②为Auto.js开启**无障碍服务**和**悬浮窗权限**。
|
||||
<br>Turn on **Accessibility service** and allow **Display pop-up window** permission for Auto.js
|
||||
<br>③在Auto.js中新建一个脚本并粘贴以下代码并运行:
|
||||
<br>Create a new script file in Auto.js. Copy the code below and run!
|
||||
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)
|
||||
|
||||
2. 为Auto.js开启**无障碍服务**和**悬浮窗权限**。
|
||||
|
||||
3. 在Auto.js中新建一个脚本并粘贴以下代码并运行:
|
||||
|
||||
```javascript
|
||||
"ui";
|
||||
@@ -79,84 +52,140 @@ emitter.on('evaluate', function(s){
|
||||
});
|
||||
```
|
||||
|
||||
在Auto.js版本`4.1.1 Alpha2 (461)`中测试通过,不保证其他版本的兼容性(取决于其他版本相对于此版本的API是否有`breaking changes`)
|
||||
在Auto.js版本 `4.1.1 Alpha2 (461)` 中测试通过,**不保证其他版本的兼容性**(取决于其他版本相对于此版本的API是否有`breaking changes`)
|
||||
|
||||
## 清除数据(Clear data)
|
||||
## 清除数据
|
||||
|
||||
`SkyAutoPlayerScript`在使用过程中会产生本地数据存储,若想全部删除,请使用Auto.js执行以下代码
|
||||
<br>`SkyAutoPlayerScript` will store some data while using, if you want to delete all data, please run the code below in Auto.js
|
||||
`SkyAutoPlayerScript` 在使用过程中会产生本地数据存储,若想全部删除,请使用Auto.js执行以下代码
|
||||
|
||||
```
|
||||
storages.remove("StageGuard:SkyAutoPlayer:Config");
|
||||
files.removeDir("/storage/emulated/0/Documents/SkyAutoPlayer/");
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
# 上传乐谱
|
||||
|
||||
你可以fork本仓库,将你要上传的乐谱添加至`shared_sheets`文件夹,并按照以下要求在`shared_sheets.json`添加项目
|
||||
SkyAutoplayerScript 可以从这个仓库中的 `shared_sheets.json` 读取在线共享乐谱列表并可以方便地下载和弹奏。
|
||||
|
||||
你可以通过以下两种方式的任意一种方式来让你自制或经过原作者授权转载的乐谱在这个列表显示:
|
||||
|
||||
### 1. Pull Request
|
||||
|
||||
你可以克隆这个仓库,将你的乐谱添加到 `shared_sheets` 文件夹中,并按照以下要求在 `shared_sheets.json` 中添加新的项目:
|
||||
|
||||
```javascript
|
||||
{
|
||||
//乐谱名称
|
||||
"name": "SheetName",
|
||||
//乐谱文件名(于shared_sheets文件夹中)
|
||||
"file": "SheetName.txt",
|
||||
//你的id
|
||||
"author": "Author",
|
||||
"name": "Vicetone - Nevada",
|
||||
//文件名
|
||||
"file": "Nevada.txt",
|
||||
//乐谱作者
|
||||
"author": "StageGuard",
|
||||
//乐谱简介
|
||||
"desc": "This is a description about my sheet",
|
||||
//乐谱BPM
|
||||
"bpm" : 320,
|
||||
//暂时没用
|
||||
"suggested_instrument": 1,
|
||||
//乐谱键位数(8键或15键)
|
||||
"desc": "Nevada SkyStudio钢琴版。\n内包含<u>比较复杂的和弦</u>,不适合手弹(笑\n你可以在SkyStudio的练习模式试试[狗头]",
|
||||
//乐谱文件中的BPM
|
||||
"bpm": 497,
|
||||
//乐谱的键位数目(它是一个 15 键位乐谱还是 8 键位乐谱)
|
||||
"keyCount": 15,
|
||||
//乐谱音高
|
||||
"pitchLevel": 0
|
||||
//乐谱文件中的音高
|
||||
"pitchLevel": 3,
|
||||
//键的数目
|
||||
//乐谱文件中数组 songNotes 的长度
|
||||
"noteCount": 1308,
|
||||
//你的社交链接
|
||||
//你可以添加多个
|
||||
"social": [
|
||||
{
|
||||
//社交平台名称代号,现在支持 github, twitter, douyin(tiktok) and coolapk
|
||||
"platform": "github",
|
||||
//社交平台名称
|
||||
"name": "GitHub",
|
||||
//社交连接
|
||||
"link": "https://github.com/StageGuard/"
|
||||
}
|
||||
]
|
||||
},
|
||||
```
|
||||
|
||||
修改完成后,申请`Pull Request`,等待merge即可。
|
||||
修改完成后,申请 `Pull Request` ,等待 merge 即可。
|
||||
|
||||
> 请注意:在申请`Pull Request`之前请确保你的SkyAutoPlayerScript仓库已同步至最新,以免出现意外问题!
|
||||
> 请注意:在申请`Pull Request`之前请确保你本地的 仓库已同步至最新,以免出现意外问题!
|
||||
|
||||
或通过发送乐谱到邮箱[beamiscool@qq.com](mailto:beamiscool@qq.com)
|
||||
### 2. 如果你不是很懂 Github...
|
||||
|
||||
<br>
|
||||
只需要把乐谱发送到邮箱 [beamiscool@qq.com](mailto:beamiscool@qq.com) 来交给我就行啦!别忘了附带乐谱简介!
|
||||
|
||||
# 注意
|
||||
# 注意!
|
||||
|
||||
### 请仔细阅读以下使用须知!
|
||||
|
||||
1. 未充分测试,若遇到BUG,请酷安私信@StageGuard或新建Issue来反馈BUG!
|
||||
2. **SkyAutoPlayer是完全免费且开源的软件/脚本([https://github.com/StageGuard/SkyAutoPlayerScript](https://github.com/StageGuard/SkyAutoPlayerScript)),使用SkyAutoPlayer盈利的同时请标注源项目链接。**
|
||||
|
||||
2. **SkyAutoplayerScript是完全免费且开源的软件/脚本([https://github.com/StageGuard/SkyAutoPlayerScript](https://github.com/StageGuard/SkyAutoPlayerScript)),使用 SkyAutoplayerScript 盈利的同时请标注源项目链接。**
|
||||
|
||||
3. **共享乐谱不遵守LGPL-2.1协议,如您想在SkyAutoPlayer以外使用这些乐谱,请自行找乐谱作者授权!**
|
||||
|
||||
4. 本脚本仅可用作娱乐用途,请不要在正规场合使用本脚本(请自行体会\"正规场合\"是什么意思),若因使用本脚本所出现了一些不友好的问题,与脚本作者StageGuard无关。
|
||||
|
||||
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**等,也不接受加密乐谱的共享。
|
||||
|
||||
|
||||
<details> <summary>针对上述第2, 3条出现的问题:</summary>
|
||||
|
||||
# 关于脚本倒卖的问题: [#1](https://github.com/StageGuard/SkyAutoPlayerScript/issues/1)
|
||||
|
||||
# 耻辱柱
|
||||
|
||||
Gitee 用户[嗨游圈(@vipssp)](https://gitee.com/vipssp)在**未经乐谱上传者的同意下私自盗用** SkyAutoplayerScript 于 Gitee 的[同步镜像](https://gitee.com/stageguard/SkyAutoPlayerScript)到它的 [Gitee 仓库](https://gitee.com/vipssp/SkyAutoPlayerScript/)。
|
||||
|
||||
在经过[通知](https://gitee.com/vipssp/SkyAutoPlayerScript/commit/197925a71ff9cc6248be682a55406fc5814b12d7#note_3637784)后仍未及时删除盗用的乐谱,在于一些乐谱原作者沟通后,决定将其挂在此 README.md 首部,以告示。
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center" height="200">
|
||||
<img src="https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/resources/static/2020-12-19_0-8-40.PNG" />
|
||||
</td>
|
||||
<td align="center" height="200">
|
||||
<img src="https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/resources/static/2020-12-19_0-9-57.PNG" />
|
||||
</td>
|
||||
<td align="center" height="200">
|
||||
<img src="https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/resources/static/2020-12-19_0-44-4.PNG" />
|
||||
</td>
|
||||
<td align="center" height="200">
|
||||
<img src="https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/resources/static/Screenshot_2020-12-19-00-10-12-499_com.coolapk.market.jpg" />
|
||||
</td>
|
||||
<td align="center" height="200">
|
||||
<img src="https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/resources/static/Screenshot_2020-12-19-00-11-23-671_com.coolapk.market.jpg" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</details>
|
||||
|
||||
# 贡献
|
||||
|
||||
欢迎任何人贡献本项目,包括但不限于Pull Request,Issue,New feature request 或者 贡献翻译。
|
||||
欢迎任何人贡献本项目,包括但不限于 Pull Request,Issue,New feature request 或者 贡献翻译。
|
||||
|
||||
### ⚠️警告
|
||||
CodeFactor 代码评估: [](https://www.codefactor.io/repository/github/stageguard/skyautoplayerscript)
|
||||
|
||||
由于 Auto.js 的限制,无法将不同的功能分离,所以所有功能都在一个文件实现;再加上我糟糕的代码技能,源码会非常难读。
|
||||
|
||||
## 贡献者名单(按照首次贡献时间排序)
|
||||
## 贡献者
|
||||
|
||||
### SkyAutoPlayerScript
|
||||
|
||||
[@tiaod](https://github.com/tiaod)<br>
|
||||
<br>
|
||||
[@tiaod](https://github.com/tiaod)
|
||||
|
||||
### 共享乐谱
|
||||
|
||||
酷安[@Aex技术总监](http://www.coolapk.com/u/1286879)<br>
|
||||
酷安[@夏卡卡卡](http://www.coolapk.com/u/2313452)<br>
|
||||
酷安[@深空失忆か](http://www.coolapk.com/u/3005974)<br>
|
||||
抖音@子哲啊🌈(zizhe1880689503)<br>
|
||||
抖音[@子哲啊🌈(zizhe1880689503)](https://v.douyin.com/J9gUaVE/)<br>
|
||||
酷安[@你们很有趣呢](http://www.coolapk.com/u/2416229)<br>
|
||||
酷安[@情如风雪无常](http://www.coolapk.com/u/643670)<br>
|
||||
酷安[@慕疵](http://www.coolapk.com/u/3286967)<br>
|
||||
@@ -165,39 +194,45 @@ files.removeDir("/storage/emulated/0/Documents/SkyAutoPlayer/");
|
||||
酷安[@北极马可罗尼](http://www.coolapk.com/u/463478)<br>
|
||||
哔哩哔哩[@UTF16](https://space.bilibili.com/623364258)<br>
|
||||
酷安[@Syngenex](http://www.coolapk.com/u/1093421)<br>
|
||||
Twitter[Phoebe@huunhut1217](https://mobile.twitter.com/huunhut1217)<br>
|
||||
Twitter [Phoebe@huunhut1217](https://mobile.twitter.com/huunhut1217)<br>
|
||||
酷安[@终究是错付了](http://www.coolapk.com/u/2293899)<br>
|
||||
酷安[@DesperatU](http://www.coolapk.com/u/1075889)<br>
|
||||
酷安[@明明酱](http://www.coolapk.com/u/1706128)<br>
|
||||
酷安[@cxk的篮球](http://www.coolapk.com/u/1090769)<br>
|
||||
酷安[@头条乀](http://www.coolapk.com/u/1192320)<br>
|
||||
<br>
|
||||
酷安[@Alusias](http://www.coolapk.com/u/808787)<br>
|
||||
[chikin](mailto:2869826936@qq.com)<br>
|
||||
酷安[@温茶予君](http://www.coolapk.com/u/1212499)<br>
|
||||
酷安[@落红难相聚](http://www.coolapk.com/u/2082465)<br>
|
||||
酷安[@bugjump233](http://www.coolapk.com/u/3294062)<br>
|
||||
酷安[@阿基米德的船](http://www.coolapk.com/u/3283016)<br>
|
||||
[2087131113@qq.com](mailto:2087131113@qq.com)<br>
|
||||
酷安[@皮皮小猪猪](http://www.coolapk.com/u/5352224)<br>
|
||||
酷安[@DoubleGGe](http://www.coolapk.com/u/7728656)<br>
|
||||
[恋上猫的鱼~](mailto:shi1177121232@foxmail.com)<br>
|
||||
[依稀(濒死动物)](mailto:3423451308@qq.com)<br>
|
||||
|
||||
## 翻译
|
||||
|
||||
SkyAutoplayerScript 在版本 21 已支持多语言并可以在线获取语言列表,你可以查看 [contribute-translation.md](contribute-translation.md) (English) 来了解如何贡献翻译。
|
||||
|
||||
SkyAutoplayerScript version 21 has supported multi-language and can also fetch online language list, follow [contribute-translation.md](contribute-translation.md) (English) guide to contribute translation.
|
||||
|
||||
### 贡献者:
|
||||
### 贡献者
|
||||
|
||||
无
|
||||
|
||||
# 图标来源
|
||||
|
||||
[Iconfont-阿里巴巴矢量图标库](https://www.iconfont.cn/)
|
||||
<br>
|
||||
|
||||
# 鸣谢
|
||||
|
||||
[projectXero](https://gitee.com/projectXero) (提供适用于Rhino的`ListAdapter`)
|
||||
<br>
|
||||
|
||||
# 许可证协议
|
||||
|
||||
```
|
||||
SkyAutoPlayer (Auto.js script)
|
||||
Copyright © 2020 StageGuard
|
||||
Copyright © 2020-2021 StageGuard
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
|
||||
@@ -4,9 +4,11 @@ Follow [Issue#4](https://github.com/StageGuard/SkyAutoPlayerScript/issues/4) req
|
||||
|
||||
It can also fetch online language list [source/language_list.json](https://github.com/StageGuard/SkyAutoPlayerScript/blob/master/source/language_list.json). So if you want to translate SkyAutoplayerScript into another language, please follow the steps below.
|
||||
|
||||
## Translate to a new language
|
||||
|
||||
- Clone this repository.
|
||||
- Create a new file in **resources/language_pack/xx_XX.json**, the file name must be standard language code (e.g. zh_CN or en_US).
|
||||
- You can refer to **resources/language_pack/en_US.json** to translate.
|
||||
- You can refer to [resources/language_pack/en_US.json](https://github.com/StageGuard/SkyAutoPlayerScript/blob/master/resources/language_pack/en_US.json) to translate.
|
||||
- Modify **source/language_list.json**:
|
||||
|
||||
```js
|
||||
@@ -27,4 +29,13 @@ It can also fetch online language list [source/language_list.json](https://githu
|
||||
|
||||
After merging, your language will be shown in Setting-Language list.
|
||||
|
||||
## Fix a wrong translation
|
||||
|
||||
- Clone this repository.
|
||||
- Correct wrong translations.
|
||||
- Update `version` number(+1) of target language in language file and [source/language_list.json](https://github.com/StageGuard/SkyAutoPlayerScript/blob/master/source/language_list.json).
|
||||
- Create a new pull request.
|
||||
|
||||
After merging, SkyAutoplayerScript will notify users who uses this language to update.
|
||||
|
||||
I would appreciate it if you could contribute translation!
|
||||
@@ -1 +1 @@
|
||||
2429897df58cc98ee3e9803ecc021fb1d43a02ac
|
||||
ee925ccc72fd29cd49c380fb1182790afb55e8eb
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"name": "English (US)",
|
||||
"code": "en_US",
|
||||
"version": 5,
|
||||
"content": {
|
||||
"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",
|
||||
@@ -40,14 +41,14 @@
|
||||
"page_lc_load_failed_r3": "Are any syntax error in this sheet.",
|
||||
"page_lc_loading_sheet": "Loading: {0} total({1} failed)",
|
||||
|
||||
"page_sc_title": "Shared heet",
|
||||
"page_sc_title": "Shared sheet",
|
||||
"page_sc_navigation_title": "SHARED",
|
||||
"page_sc_downloading": "Downloading...",
|
||||
"page_sc_analyzing": "Parsing...",
|
||||
"page_sc_download_success": "Download successful: {0}\nPlease press refresh button in local sheet page.",
|
||||
"page_sc_download_failed": "Failed to download {0}: {1}",
|
||||
"page_sc_upload_title": "How to upload your local sheet",
|
||||
"page_sc_upload_desc": "There are two ways:\n\n①Mail to beamiscool@qq.com with attachment file.\n(Sheet description is optional.)\n\n②Pull request to StageGuard/SkyAutoplayerScript\n\n③PM to @StageGuard in CoolApk with sheet link.\nPut your sheet file to shared_sheets folder and modify shared_sheets.json\n\nWarning: If the sheet is not translated or composed by yourself, you must gain the permission of original composer or translator.\n\nWelcome to expand the shared sheet list!",
|
||||
"page_sc_upload_desc": "There are three ways:\n\n1. Mail to beamiscool@qq.com with attachment file.\n(Sheet description is optional.)\n\n2. Create a pull request to StageGuard/SkyAutoplayerScript\n\n3. PM to @StageGuard in CoolApk with sheet link.\nPut your sheet file to shared_sheets folder and modify shared_sheets.json\n\nWarning: If the sheet is not translated or composed by yourself, you must gain the permission of original composer or translator.\n\nWelcome to expand the shared sheet list!",
|
||||
"page_sc_upload_open_coolapk": "Open CoolApk",
|
||||
"page_sc_upload_open_github": "Open GitHub",
|
||||
"page_sc_upload_ca_not_exist": "Application CookApk is not installed on your device",
|
||||
@@ -77,6 +78,7 @@
|
||||
"page_setting_changelog_title": "Changelog",
|
||||
"page_setting_exit_script": "Exit",
|
||||
"page_setting_language": "Language",
|
||||
"page_setting_chord_delay": "Delay of each chord key",
|
||||
|
||||
"gui_player_panel_tip": "Drag the title text of the title bar to move the suspension window of the performance control panel.",
|
||||
"gui_player_penel_analyzing": "Parsing...",
|
||||
@@ -102,7 +104,14 @@
|
||||
"res_use_language": "Use language: {0}",
|
||||
"res_language_dialog_title": "Choose language",
|
||||
"res_language_download_failed": "Failed to download language pack: {0}",
|
||||
"res_language_dialog_tip": "Your language is not on the list?<br>Welcome to translate the script:<br><a href=>https://github.com/StageGuard/SkyAutoPlayerScript</a>",
|
||||
"res_language_failed_fetch_online_list": "Failed to fetch online language list"
|
||||
"res_language_dialog_tip": "Your language is not on the list?<br>Welcome to translate the script:<br><a href=>https://github.com/StageGuard/SkyAutoPlayerScript/blob/master/contribute-translation.md</a>",
|
||||
"res_language_failed_fetch_online_list": "Failed to fetch online language list",
|
||||
"res_language_update_needed": "Language pack need to be updated, please go to setting->language and click current language again to upgrade.",
|
||||
|
||||
"page_setting_no_popup_play": "Close panel in playing",
|
||||
"page_setting_no_popup_play_interval": "Interval to play when close panel",
|
||||
"no_popup_play_warning_title": "WARNING",
|
||||
"no_popup_play_warning": "You have enabled \"Close panel in playing\" opinion!\nPlay without control panel is <b>extremely dangerous</b>.\n\nWhen popup notification or bubble chat appears, script may touch these popup window by mistake. At this time, script is still running(or playing) and is <b>uninterrupted</b>. You have no way to stop playing but wait.\n<b>Script touch in other pages may causes irreparable harm.</b>\n\nBesides, record play process is uesless and doesn't give you sense of satisfaction.\n\nI have already warned you that if there is any loss or dispute caused by using this function, it has nothing to do with the SkyAutoplayer script and the script author StageGuard.\nIf continue, please click the confirm button, or otherwise click the Cancel button.\n\nps. \"Random and continuate play\" will not work.",
|
||||
"no_popup_play_tip": "Script will start playing in {0} seconds."
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"name": "简体中文",
|
||||
"code": "zh_CN",
|
||||
"version": 5,
|
||||
"content": {
|
||||
"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": "强制退出",
|
||||
@@ -47,7 +48,7 @@
|
||||
"page_sc_download_success": "下载完成: {0}\n请在本地曲谱页面刷新",
|
||||
"page_sc_download_failed": "下载 {0} 失败: {1}",
|
||||
"page_sc_upload_title": "如何上传乐谱",
|
||||
"page_sc_upload_desc": "共有两种方式可以上传乐谱:\n\n①酷安私信@StageGuard,发送时请附带简介,曲谱链接(百度云或其他云盘都可)\n②在github fork StageGuard/SkyAutoplayerScript\n在shared_sheets文件夹添加你的曲谱,并按照格式修改shared_sheets.json\n并提出 Pull Request 合并申请\n\n注:若是转载转载请注明原作者同意\n\n如果所有人都白嫖,那么这个列表将永远也不会扩充",
|
||||
"page_sc_upload_desc": "共有三种方式可以上传乐谱:\n\n1. 酷安私信@StageGuard,发送时请附带简介,曲谱链接(百度云或其他云盘都可)\n2. 在github fork StageGuard/SkyAutoplayerScript\n在shared_sheets文件夹添加你的曲谱,并按照格式修改shared_sheets.json\n并提出 Pull Request 合并申请。\n\n3. 发送乐谱文件到 beamiscool@qq.com\n\n注:若是转载转载请注明原作者同意\n\n如果所有人都白嫖,那么这个列表将永远也不会扩充",
|
||||
"page_sc_upload_open_coolapk": "打开酷安",
|
||||
"page_sc_upload_open_github": "打开 Github",
|
||||
"page_sc_upload_ca_not_exist": "无法打开酷安,应用不存在!",
|
||||
@@ -77,6 +78,7 @@
|
||||
"page_setting_changelog_title": "更新日志",
|
||||
"page_setting_exit_script": "结束脚本运行",
|
||||
"page_setting_language": "语言",
|
||||
"page_setting_chord_delay": "和弦按压延迟",
|
||||
|
||||
"gui_player_panel_tip": "拖动标题栏的标题文字来移动弹奏控制面板悬浮窗。",
|
||||
"gui_player_penel_analyzing": "解析中...",
|
||||
@@ -102,7 +104,14 @@
|
||||
"res_use_language": "使用语言: {0}",
|
||||
"res_language_dialog_title": "选择语言",
|
||||
"res_language_download_failed": "语言下载失败:{0}",
|
||||
"res_language_dialog_tip": "找不到你的语言?欢迎贡献翻译:<br><a href=>https://github.com/StageGuard/SkyAutoPlayerScript</a>",
|
||||
"res_language_failed_fetch_online_list": "无法获取在线语言列表"
|
||||
"res_language_dialog_tip": "找不到你的语言?欢迎贡献翻译:<br><a href=>https://github.com/StageGuard/SkyAutoPlayerScript/blob/master/contribute-translation.md</a>",
|
||||
"res_language_failed_fetch_online_list": "无法获取在线语言列表",
|
||||
"res_language_update_needed": "语言需要更新,请前往设置界面重新点击当前语言来更新",
|
||||
|
||||
"page_setting_no_popup_play": "弹奏不显示悬浮窗",
|
||||
"page_setting_no_popup_play_interval": "无悬浮窗弹奏开始间隔",
|
||||
"no_popup_play_warning_title": "警告",
|
||||
"no_popup_play_warning": "您已经开启\"弹奏不显示悬浮窗\"选项!\n弹奏不受弹奏面板控制是<b>非常危险的</b>。\n\n当出现顶部悬浮通知(例如QQ消息)或气泡对话时,脚本可能会误触消息并开启其他软件,此时脚本依旧在运行中(弹奏中)且<b>无法被打断</b>。也就是说除了等待弹奏完成以外,没有任何办法终止弹奏。\n<b>脚本在其他界面的误触可能会对您造成不可挽回的损失!</b>\n\n另外,使用此功能且录屏不会使你获得任何成就感。\n\n我已经警告过你了,若因使用此功能造成了损失或纠纷,与 SkyAutoPlayer 脚本和脚本作者 StageGuard 无关,请悉知。\n若继续使用,请点击确认按钮,否则请点击取消按钮。\n\n注意:使用此功能时,\"连续随机播放\"功能将不会生效。",
|
||||
"no_popup_play_tip": "将在 {0} 秒后开始弹奏。"
|
||||
}
|
||||
}
|
||||
BIN
resources/mail.png
Normal file
BIN
resources/mail.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
@@ -1,5 +1,802 @@
|
||||
{
|
||||
"sheets": [
|
||||
{
|
||||
"name": "浪流连",
|
||||
"file": "浪流连.txt",
|
||||
"author": "依稀(濒死动物)",
|
||||
"desc": "<a href=mailto:3423451308@qq.com>@依稀(濒死动物)<a/> 分享乐谱 浪流连",
|
||||
"bpm": 500,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 0,
|
||||
"noteCount": 267,
|
||||
"social": [
|
||||
{
|
||||
"platform": "mail",
|
||||
"name": "3423451308@qq.com",
|
||||
"link": "3423451308@qq.com"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "雨之歌",
|
||||
"file": "雨之歌.txt",
|
||||
"author": "恋上猫的鱼~",
|
||||
"desc": "<a href=mailto:shi1177121232@foxmail.com>@恋上猫的鱼~<a/> 分享乐谱 雨之歌\n动画《少女终末旅行》插曲",
|
||||
"bpm": 240,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 0,
|
||||
"noteCount": 349,
|
||||
"social": [
|
||||
{
|
||||
"platform": "mail",
|
||||
"name": "shi1177121232@foxmail.com",
|
||||
"link": "shi1177121232@foxmail.com"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "青花瓷",
|
||||
"file": "青花瓷.txt",
|
||||
"author": "酷安@皮皮小猪猪",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/5352224>@皮皮小猪猪<a/> 分享乐谱 青花瓷",
|
||||
"bpm": 240,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 9,
|
||||
"noteCount": 86,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/5352224"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "虹之间",
|
||||
"file": "虹之间.txt",
|
||||
"author": "酷安@皮皮小猪猪",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/5352224>@皮皮小猪猪<a/> 分享乐谱 虹之间",
|
||||
"bpm": 280,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 10,
|
||||
"noteCount": 205,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/5352224"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "粉刷匠",
|
||||
"file": "粉刷匠.txt",
|
||||
"author": "酷安@皮皮小猪猪",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/5352224>@皮皮小猪猪<a/> 分享乐谱 粉刷匠",
|
||||
"bpm": 383,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 7,
|
||||
"noteCount": 48,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/5352224"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "等你下课",
|
||||
"file": "等你下课.txt",
|
||||
"author": "酷安@皮皮小猪猪",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/5352224>@皮皮小猪猪<a/> 分享乐谱 等你下课",
|
||||
"bpm": 295,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 8,
|
||||
"noteCount": 229,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/5352224"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "病变",
|
||||
"file": "病变.txt",
|
||||
"author": "酷安@皮皮小猪猪",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/5352224>@皮皮小猪猪<a/> 分享乐谱 病变",
|
||||
"bpm": 454,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 4,
|
||||
"noteCount": 544,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/5352224"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "外婆的澎湖湾",
|
||||
"file": "外婆的澎湖湾.txt",
|
||||
"author": "酷安@皮皮小猪猪",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/5352224>@皮皮小猪猪<a/> 分享乐谱 外婆的澎湖湾",
|
||||
"bpm": 383,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 9,
|
||||
"noteCount": 397,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/5352224"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "告白气球",
|
||||
"file": "告白气球.txt",
|
||||
"author": "酷安@皮皮小猪猪",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/5352224>@皮皮小猪猪<a/> 分享乐谱 告白气球",
|
||||
"bpm": 358,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 11,
|
||||
"noteCount": 203,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/5352224"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "晴天",
|
||||
"file": "晴天.txt",
|
||||
"author": "酷安@DoubleGGe",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/7728656>@DoubleGGe<a/> 分享乐谱 晴天",
|
||||
"bpm": 300,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 0,
|
||||
"noteCount": 490,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/7728656"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "宾克斯的美酒",
|
||||
"file": "宾克斯的美酒.txt",
|
||||
"author": "酷安@DoubleGGe",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/7728656>@DoubleGGe<a/> 分享乐谱 宾克斯的美酒",
|
||||
"bpm": 330,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 3,
|
||||
"noteCount": 298,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/7728656"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "江南",
|
||||
"file": "江南.txt",
|
||||
"author": "酷安@皮皮小猪猪",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/5352224>@皮皮小猪猪<a/> 分享乐谱 江南",
|
||||
"bpm": 240,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 10,
|
||||
"noteCount": 90,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/5352224"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "她说",
|
||||
"file": "她说.txt",
|
||||
"author": "酷安@皮皮小猪猪",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/5352224>@皮皮小猪猪<a/> 分享乐谱 她说",
|
||||
"bpm": 318,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 0,
|
||||
"noteCount": 187,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/5352224"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "北京东路的日子",
|
||||
"file": "北京东路的日子.txt",
|
||||
"author": "酷安@皮皮小猪猪",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/5352224>@皮皮小猪猪<a/> 分享乐谱 北京东路的日子",
|
||||
"bpm": 368,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 0,
|
||||
"noteCount": 391,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/5352224"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "修炼爱情",
|
||||
"file": "修炼爱情.txt",
|
||||
"author": "酷安@皮皮小猪猪",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/5352224>@皮皮小猪猪<a/> 分享乐谱 修炼爱情",
|
||||
"bpm": 250,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 3,
|
||||
"noteCount": 121,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/5352224"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "不能说的秘密",
|
||||
"file": "不能说的秘密.txt",
|
||||
"author": "酷安@皮皮小猪猪",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/5352224>@皮皮小猪猪<a/> 分享乐谱 不能说的秘密",
|
||||
"bpm": 288,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 7,
|
||||
"noteCount": 173,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/5352224"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ムーンライト伝説(月光传说)",
|
||||
"file": "月光传说.txt",
|
||||
"author": "2087131113@qq.com",
|
||||
"desc": "<a href=mailto:2087131113@qq.com>2087131113@qq.com<a/> 分享乐谱 ムーンライト伝説(月光传说)\n美少女戦士セーラームーン(《美少女战士》)主题曲",
|
||||
"bpm": 240,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 3,
|
||||
"noteCount": 763,
|
||||
"social": [
|
||||
{
|
||||
"platform": "mail",
|
||||
"name": "2087131113@qq.com",
|
||||
"link": "2087131113@qq.com"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Pachelbel's Canon(D大调卡农)",
|
||||
"file": "Pachelbel's Canon(D大调卡农).txt",
|
||||
"author": "酷安@阿基米德的船",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/3283016>@阿基米德的船<a/> 分享乐谱 Pachelbel's Canon(D大调卡农)",
|
||||
"bpm": 800,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 2,
|
||||
"noteCount": 1250,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/3283016"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "缘之空-遠い空へ",
|
||||
"file": "-遠い空へ.txt",
|
||||
"author": "酷安@cxk的篮球",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/1090769>@cxk的篮球<a/> 分享乐谱 缘之空-遠い空へ",
|
||||
"bpm": 440,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 2,
|
||||
"noteCount": 1087,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/1090769"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "灰澈 - 星茶会",
|
||||
"file": "星茶会(高音钢琴C调).txt",
|
||||
"author": "酷安@阿基米德的船",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/3283016>@阿基米德的船<a/> 分享乐谱 灰澈 - 星茶会\n使用高音钢琴在C调环境弹奏。",
|
||||
"bpm": 870,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 0,
|
||||
"noteCount": 1190,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/3283016"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "いつも何度でも (「千と千尋の神隠し」主題歌)",
|
||||
"file": "いつも何度でも (「千と千尋の神隠し」主題歌)F调.txt",
|
||||
"author": "酷安@阿基米德的船",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/3283016>@阿基米德的船<a/> 分享乐谱 いつも何度でも \n(「千と千尋の神隠し」主題歌) (F调)",
|
||||
"bpm": 470,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 5,
|
||||
"noteCount": 1270,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/3283016"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "old memory",
|
||||
"file": "old memory.txt",
|
||||
"author": "酷安@cxk的篮球",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/1090769>@cxk的篮球<a/> 分享乐谱 old memory",
|
||||
"bpm": 400,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 2,
|
||||
"noteCount": 344,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/1090769"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "保罗·塞内维尔 - 梦中的婚礼",
|
||||
"file": "梦中的婚礼.txt",
|
||||
"author": "酷安@落红难相聚",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/2082465>@落红难相聚<a/> 分享乐谱 保罗·塞内维尔 - 梦中的婚礼(Paul de Senneville - Mariage d'amour)",
|
||||
"bpm": 272,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 10,
|
||||
"noteCount": 342,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安@落红难相聚",
|
||||
"link": "http://www.coolapk.com/u/2082465"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Lemon(C调)",
|
||||
"file": "Lemon(C调).txt",
|
||||
"author": "酷安@阿基米德的船",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/3283016>@阿基米德的船<a/> 分享乐谱 Lemon(C调)",
|
||||
"bpm": 342,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 0,
|
||||
"noteCount": 1097,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/3283016"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "打上花火",
|
||||
"file": "打上花火.txt",
|
||||
"author": "酷安@阿基米德的船",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/3283016>@阿基米德的船<a/> 分享乐谱 打上花火",
|
||||
"bpm": 385,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 6,
|
||||
"noteCount": 1449,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/3283016"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "两只老虎爱跳舞",
|
||||
"file": "两只老虎爱跳舞.txt",
|
||||
"author": "酷安@夏卡卡卡",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/2313452>@夏卡卡卡<a/> 分享乐谱 两只老虎爱跳舞\nὂfὈ3ἿbἻ6\n嘿! 吔~",
|
||||
"bpm": 240,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 0,
|
||||
"noteCount": 117,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/2313452"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "わたてん☆5 - 気ままな天使ーたち",
|
||||
"file": "気ままな天使ーたち.txt",
|
||||
"author": "酷安@夏卡卡卡",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/2313452>@夏卡卡卡<a/> 分享乐谱 わたてん☆5 - 気ままな天使ーたち",
|
||||
"bpm": 504,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 6,
|
||||
"noteCount": 779,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/2313452"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "水源小樱 - 白月光与朱砂痣",
|
||||
"file": "白月光与朱砂痣.txt",
|
||||
"author": "酷安@bugjump233",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/3294062>@bugjump233<a/> 分享乐谱 水源小樱 - 白月光与朱砂痣",
|
||||
"bpm": 240,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 0,
|
||||
"noteCount": 215,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/3294062"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Toby Fox - The World Revolving",
|
||||
"file": "TheWorldRevolving.txt",
|
||||
"author": "酷安@落红难相聚",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/2082465>@落红难相聚<a/> 分享乐谱 Toby Fox - The World Revolving(天旋地转)\n游戏 《Deltarune》 原声带",
|
||||
"bpm": 720,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 11,
|
||||
"noteCount": 664,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/2082465"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "拜尔 - 踩到猫儿",
|
||||
"file": "踩到猫儿.txt",
|
||||
"author": "酷安@落红难相聚",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/2082465>@落红难相聚<a/> 分享乐谱 拜尔 - 踩到猫儿",
|
||||
"bpm": 440,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 0,
|
||||
"noteCount": 108,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/2082465"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "烟斗斜桥",
|
||||
"file": "烟斗斜桥.txt",
|
||||
"author": "酷安@落红难相聚",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/2082465>@落红难相聚<a/> 分享原创乐谱 烟斗斜桥",
|
||||
"bpm": 320,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 0,
|
||||
"noteCount": 309,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/2082465"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Cécile Corbel - Arrietty's Song",
|
||||
"file": "Arrietty's_Song.txt",
|
||||
"author": "酷安@落红难相聚",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/2082465>@落红难相聚<a/> 分享乐谱 Cécile Corbel - Arrietty's Song\n动画电影《借东西的小人阿莉埃蒂》主题曲\n(アニメ映画「借りぐらしのアリエッティ」主題歌)",
|
||||
"bpm": 430,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 0,
|
||||
"noteCount": 631,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/2082465"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "莫文蔚 - 慢慢喜欢你",
|
||||
"file": "慢慢喜欢你.txt",
|
||||
"author": "酷安@落红难相聚",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/2082465>@落红难相聚<a/> 分享乐谱 莫文蔚 - 慢慢喜欢你",
|
||||
"bpm": 310,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 7,
|
||||
"noteCount": 238,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/2082465"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "久石譲 - 海の見える街",
|
||||
"file": "海の見える街.txt",
|
||||
"author": "酷安@落红难相聚",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/2082465>@落红难相聚<a/> 分享乐谱 久石譲 - 海の見える街\n动画电影《魔女宅急便》插曲",
|
||||
"bpm": 404,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 6,
|
||||
"noteCount": 515,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/2082465"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "金莎 - 星月神话",
|
||||
"file": "星月神话.txt",
|
||||
"author": "酷安@箬枫",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/844564>@箬枫<a/> 分享乐谱 星月神话",
|
||||
"bpm": 220,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 0,
|
||||
"noteCount": 220,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/844564"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Rick Astley - Never Gonna Give You Up",
|
||||
"file": "Never_Gonna_Give_You_Up.txt",
|
||||
"author": "StageGuard",
|
||||
"desc": "豪 俊 金 曲 放 送",
|
||||
"bpm": 454,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 1,
|
||||
"noteCount": 330,
|
||||
"social": [
|
||||
{
|
||||
"platform": "github",
|
||||
"name": "GitHub",
|
||||
"link": "https://github.com/StageGuard"
|
||||
},
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/1790774"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "上田麗奈 - リテラチュア",
|
||||
"file": "リテラチュア(双手简谱).txt",
|
||||
"author": "酷安@夏卡卡卡",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/2313452>@夏卡卡卡<a/> 分享乐谱 上田麗奈 - リテラチュア\nTV动画《魔女之旅》片头曲\n<b>双手简谱版本。</b>",
|
||||
"bpm": 472,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 4,
|
||||
"noteCount": 2422,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/2313452"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "周兴哲 - 永不失联的爱",
|
||||
"file": "永不失联的爱.txt",
|
||||
"author": "酷安@温茶予君",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/1212499>@温茶予君<a/> 分享乐谱 周兴哲 - 永不失联的爱",
|
||||
"bpm": 340,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 0,
|
||||
"noteCount": 363,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/1212499"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "上田麗奈 - リテラチュア",
|
||||
"file": "リテラチュア.txt",
|
||||
"author": "酷安@夏卡卡卡",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/2313452>@夏卡卡卡<a/> 分享乐谱 上田麗奈 - リテラチュア\nTV动画《魔女之旅》片头曲",
|
||||
"bpm": 472,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 4,
|
||||
"noteCount": 467,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/2313452"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "新闻联播ED",
|
||||
"file": "新闻联播ED.txt",
|
||||
"author": "酷安@夏卡卡卡",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/2313452>@夏卡卡卡<a/> 分享乐谱 新闻联播ED",
|
||||
"bpm": 304,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 2,
|
||||
"noteCount": 252,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/2313452"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "シルエット(Silhouette)",
|
||||
"file": "Silhouette.txt",
|
||||
"author": "chikin",
|
||||
"desc": "<a href=mailto:2869826936@qq.com>@chikin<a/> 分享乐谱 シルエット(Silhouette)\n【火影忍者:疾风传】 OP 16 シルエット(Silhouette)",
|
||||
"bpm": 350,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 0,
|
||||
"noteCount": 1631,
|
||||
"social": [
|
||||
{
|
||||
"platform": "mail",
|
||||
"name": "2869826936@qq.com",
|
||||
"link": "2869826936@qq.com"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "のみこ/Masayoshi Minoshima - Bad Apple",
|
||||
"file": "Bad_Apple.txt",
|
||||
"author": "酷安@箬枫",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/844564>@箬枫<a/> 分享乐谱 のみこ/Masayoshi Minoshima - Bad Apple",
|
||||
"bpm": 240,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 0,
|
||||
"noteCount": 563,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/844564"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "新年好",
|
||||
"file": "新年好.txt",
|
||||
"author": "酷安@头条乀",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/1192320>@头条乀<a/> 分享乐谱 新年好",
|
||||
"bpm": 200,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 0,
|
||||
"noteCount": 30,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/1192320"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "仙剑问情",
|
||||
"file": "仙剑问情.txt",
|
||||
"author": "酷安@Alusias",
|
||||
"desc": "酷安 <a href=http://www.coolapk.com/u/808787>@Alusias<a/> 分享乐谱 仙剑问情",
|
||||
"bpm": 282,
|
||||
"suggested_instrument": 1,
|
||||
"keyCount": 15,
|
||||
"pitchLevel": 0,
|
||||
"noteCount": 174,
|
||||
"social": [
|
||||
{
|
||||
"platform": "coolapk",
|
||||
"name": "酷安",
|
||||
"link": "http://www.coolapk.com/u/808787"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "铃儿响叮当",
|
||||
"file": "铃儿响叮当.txt",
|
||||
|
||||
BIN
shared_sheets/-遠い空へ.txt
Normal file
BIN
shared_sheets/-遠い空へ.txt
Normal file
Binary file not shown.
BIN
shared_sheets/Arrietty's_Song.txt
Normal file
BIN
shared_sheets/Arrietty's_Song.txt
Normal file
Binary file not shown.
BIN
shared_sheets/Bad_Apple.txt
Normal file
BIN
shared_sheets/Bad_Apple.txt
Normal file
Binary file not shown.
BIN
shared_sheets/Lemon(C调).txt
Normal file
BIN
shared_sheets/Lemon(C调).txt
Normal file
Binary file not shown.
BIN
shared_sheets/Never_Gonna_Give_You_Up.txt
Normal file
BIN
shared_sheets/Never_Gonna_Give_You_Up.txt
Normal file
Binary file not shown.
BIN
shared_sheets/Pachelbel's Canon(D大调卡农).txt
Normal file
BIN
shared_sheets/Pachelbel's Canon(D大调卡农).txt
Normal file
Binary file not shown.
BIN
shared_sheets/Silhouette.txt
Normal file
BIN
shared_sheets/Silhouette.txt
Normal file
Binary file not shown.
BIN
shared_sheets/TheWorldRevolving.txt
Normal file
BIN
shared_sheets/TheWorldRevolving.txt
Normal file
Binary file not shown.
BIN
shared_sheets/old memory.txt
Normal file
BIN
shared_sheets/old memory.txt
Normal file
Binary file not shown.
BIN
shared_sheets/いつも何度でも(千与千寻主题曲)F调.txt
Normal file
BIN
shared_sheets/いつも何度でも(千与千寻主题曲)F调.txt
Normal file
Binary file not shown.
BIN
shared_sheets/リテラチュア(双手简谱).txt
Normal file
BIN
shared_sheets/リテラチュア(双手简谱).txt
Normal file
Binary file not shown.
BIN
shared_sheets/リテラチュア.txt
Normal file
BIN
shared_sheets/リテラチュア.txt
Normal file
Binary file not shown.
BIN
shared_sheets/不能说的秘密.txt
Normal file
BIN
shared_sheets/不能说的秘密.txt
Normal file
Binary file not shown.
BIN
shared_sheets/两只老虎爱跳舞.txt
Normal file
BIN
shared_sheets/两只老虎爱跳舞.txt
Normal file
Binary file not shown.
BIN
shared_sheets/仙剑问情.txt
Normal file
BIN
shared_sheets/仙剑问情.txt
Normal file
Binary file not shown.
BIN
shared_sheets/修炼爱情.txt
Normal file
BIN
shared_sheets/修炼爱情.txt
Normal file
Binary file not shown.
BIN
shared_sheets/养云的猫.txt
Normal file
BIN
shared_sheets/养云的猫.txt
Normal file
Binary file not shown.
BIN
shared_sheets/北京东路的日子.txt
Normal file
BIN
shared_sheets/北京东路的日子.txt
Normal file
Binary file not shown.
BIN
shared_sheets/告白气球.txt
Normal file
BIN
shared_sheets/告白气球.txt
Normal file
Binary file not shown.
BIN
shared_sheets/外婆的澎湖湾.txt
Normal file
BIN
shared_sheets/外婆的澎湖湾.txt
Normal file
Binary file not shown.
BIN
shared_sheets/她说.txt
Normal file
BIN
shared_sheets/她说.txt
Normal file
Binary file not shown.
BIN
shared_sheets/宾克斯的美酒.txt
Normal file
BIN
shared_sheets/宾克斯的美酒.txt
Normal file
Binary file not shown.
BIN
shared_sheets/慢慢喜欢你.txt
Normal file
BIN
shared_sheets/慢慢喜欢你.txt
Normal file
Binary file not shown.
BIN
shared_sheets/打上花火.txt
Normal file
BIN
shared_sheets/打上花火.txt
Normal file
Binary file not shown.
BIN
shared_sheets/新年好.txt
Normal file
BIN
shared_sheets/新年好.txt
Normal file
Binary file not shown.
BIN
shared_sheets/新闻联播ED.txt
Normal file
BIN
shared_sheets/新闻联播ED.txt
Normal file
Binary file not shown.
BIN
shared_sheets/星月神话.txt
Normal file
BIN
shared_sheets/星月神话.txt
Normal file
Binary file not shown.
BIN
shared_sheets/星茶会(高音钢琴C调).txt
Normal file
BIN
shared_sheets/星茶会(高音钢琴C调).txt
Normal file
Binary file not shown.
BIN
shared_sheets/晴天.txt
Normal file
BIN
shared_sheets/晴天.txt
Normal file
Binary file not shown.
BIN
shared_sheets/月光传说.txt
Normal file
BIN
shared_sheets/月光传说.txt
Normal file
Binary file not shown.
BIN
shared_sheets/梦中的婚礼.txt
Normal file
BIN
shared_sheets/梦中的婚礼.txt
Normal file
Binary file not shown.
BIN
shared_sheets/気ままな天使ーたち.txt
Normal file
BIN
shared_sheets/気ままな天使ーたち.txt
Normal file
Binary file not shown.
BIN
shared_sheets/永不失联的爱.txt
Normal file
BIN
shared_sheets/永不失联的爱.txt
Normal file
Binary file not shown.
BIN
shared_sheets/江南.txt
Normal file
BIN
shared_sheets/江南.txt
Normal file
Binary file not shown.
BIN
shared_sheets/浪流连.txt
Normal file
BIN
shared_sheets/浪流连.txt
Normal file
Binary file not shown.
BIN
shared_sheets/海の見える街.txt
Normal file
BIN
shared_sheets/海の見える街.txt
Normal file
Binary file not shown.
BIN
shared_sheets/烟斗斜桥.txt
Normal file
BIN
shared_sheets/烟斗斜桥.txt
Normal file
Binary file not shown.
BIN
shared_sheets/病变.txt
Normal file
BIN
shared_sheets/病变.txt
Normal file
Binary file not shown.
BIN
shared_sheets/白月光与朱砂痣.txt
Normal file
BIN
shared_sheets/白月光与朱砂痣.txt
Normal file
Binary file not shown.
BIN
shared_sheets/等你下课.txt
Normal file
BIN
shared_sheets/等你下课.txt
Normal file
Binary file not shown.
BIN
shared_sheets/粉刷匠.txt
Normal file
BIN
shared_sheets/粉刷匠.txt
Normal file
Binary file not shown.
BIN
shared_sheets/莫斯科郊外的晚上(和弦降音高).txt
Normal file
BIN
shared_sheets/莫斯科郊外的晚上(和弦降音高).txt
Normal file
Binary file not shown.
BIN
shared_sheets/莫斯科郊外的晚上.txt
Normal file
BIN
shared_sheets/莫斯科郊外的晚上.txt
Normal file
Binary file not shown.
BIN
shared_sheets/虹之间.txt
Normal file
BIN
shared_sheets/虹之间.txt
Normal file
Binary file not shown.
BIN
shared_sheets/踩到猫儿.txt
Normal file
BIN
shared_sheets/踩到猫儿.txt
Normal file
Binary file not shown.
BIN
shared_sheets/雨之歌.txt
Normal file
BIN
shared_sheets/雨之歌.txt
Normal file
Binary file not shown.
BIN
shared_sheets/青花瓷.txt
Normal file
BIN
shared_sheets/青花瓷.txt
Normal file
Binary file not shown.
@@ -2,7 +2,7 @@
|
||||
"use strict";
|
||||
/*
|
||||
SkyAutoPlayer (Auto.js script)
|
||||
Copyright © 2020 StageGuard
|
||||
Copyright © 2020-2021 StageGuard
|
||||
Contact :
|
||||
(QQ: 1355416608)
|
||||
(Email: beamiscool@qq.com)
|
||||
@@ -29,13 +29,13 @@
|
||||
|
||||
const user_agreements =
|
||||
"请仔细阅读以下使用须知!\n\n" +
|
||||
"未充分测试,若遇到BUG,请酷安私信@StageGuard或在github中的StageGuard/SkyAutoPlayerScript新建Issue来反馈BUG!\n\n" +
|
||||
"1. SkyAutoPlayer(以下简称\"本脚本\")是完全免费且开源的软件/脚本(https://github.com/StageGuard/SkyAutoPlayerScript),禁止使用本脚本作为盈利用途!\n若你是从其他渠道购买获得的本脚本,那么就说明你被骗了!\n\n" +
|
||||
"2. 本脚本仅可用作娱乐用途,请不要在正规场合使用本脚本(请自行体会\"正规场合\"是什么意思),若因使用本脚本所出现了一些不友好的问题,与脚本作者StageGuard(以下简称\"作者\")无关。\n\n" +
|
||||
"3. 脚本只能给你一时满足感而不能使你进步,请适当使用,只有真正的技术才是王道,才能使你感到快乐。\n\n" +
|
||||
"4. 本脚本只是一个\"弹奏机\",并不内置曲谱,请在GooglePlay下载SkyStudio编谱。\n\n" +
|
||||
"5. 本脚本不会增加解密乐谱功能,包括但不限于加密的SkyStudio乐谱,加密的JS等,也不接受加密乐谱的共享。\n\n" +
|
||||
"6. 本脚本的发行遵守LGPL-2.1协议,若你不了解协议内容,请访问 https://www.gnu.org/licenses 查看"
|
||||
"1. 未充分测试,若遇到BUG,请酷安私信@StageGuard或新建Issue来反馈BUG!\n\n" +
|
||||
"2. SkyAutoplayerScript是完全免费且开源的软件/脚本(https://github.com/StageGuard/SkyAutoPlayerScript),使用 SkyAutoplayerScript 盈利的同时请标注源项目链接。\n\n" +
|
||||
"3. 共享乐谱不遵守LGPL-2.1协议,如您想在SkyAutoPlayer以外使用这些乐谱,请自行找乐谱作者授权!\n\n" +
|
||||
"4. 本脚本仅可用作娱乐用途,请不要在正规场合使用本脚本(请自行体会\"正规场合\"是什么意思),若因使用本脚本所出现了一些不友好的问题,与脚本作者StageGuard无关。\n\n" +
|
||||
"5. 脚本只能给你一时满足感而不能使你进步,请适当使用,只有真正的技术才是王道,才能使你感到快乐。\n\n" +
|
||||
"6. 本脚本只是一个\"弹奏机\",并不内置曲谱,请在 GooglePlay 下载 SkyStudio 编谱。\n\n" +
|
||||
"7. 本脚本的发行遵守LGPL-2.1协议,若你不了解协议内容,请访问 https://www.gnu.org/licenses 查看"
|
||||
;
|
||||
|
||||
//Script global scope
|
||||
@@ -105,7 +105,7 @@ sheetmgr = {
|
||||
|
||||
downloadAndLoad: function(file, extraData, listener) {
|
||||
listener({status:1});
|
||||
config.fetchRepoFile("shared_sheets/" + file, null, function(body) {
|
||||
config.fetchRepoFile("shared_sheets/" + file, function(body) {
|
||||
var sheet = files.join(sheetmgr.rootDir, files.getNameWithoutExtension(file) + (function(length) {
|
||||
var string = "0123456789abcde";
|
||||
var stringBuffer = new java.lang.StringBuffer();
|
||||
@@ -121,6 +121,7 @@ sheetmgr = {
|
||||
listener({status:2});
|
||||
data.author = extraData.author;
|
||||
data.keyCount = extraData.keyCount;
|
||||
data.name = extraData.name;
|
||||
return "[" + JSON.stringify(data) + "]";
|
||||
}()), sheetmgr.encoding);
|
||||
parsed = eval(parsed)[0];
|
||||
@@ -128,7 +129,7 @@ sheetmgr = {
|
||||
sheetmgr.cachedLocalSheetList.push(parsed);
|
||||
listener({status:3});
|
||||
}, function (msg) {
|
||||
listener({status:-1, msg: "获取 " + remoteHost + " 失败,原因:" + resp.statusMessage});
|
||||
listener({status:-1, msg: "获取 " + extraData.name + " 失败,原因:" + resp.statusMessage});
|
||||
});
|
||||
},
|
||||
|
||||
@@ -161,7 +162,7 @@ sheetmgr = {
|
||||
}
|
||||
},
|
||||
__internal_fetchOnlineSharedSheets: function() {
|
||||
config.fetchRepoFile("shared_sheets.json", config.values.gitVersion, function(body) {
|
||||
config.fetchRepoFile("shared_sheets.json", function(body) {
|
||||
sheetmgr.cachedOnlineSharedSheetInfoList = body.json().sheets;
|
||||
});
|
||||
},
|
||||
@@ -170,9 +171,9 @@ sheetmgr = {
|
||||
var r = [];
|
||||
var t_time = 0;
|
||||
var t_sets = [];
|
||||
const regexp = /^(\d)Key(\d{1,})$/;
|
||||
const regexp = /^(?:\d)?Key(\d{1,})$/;
|
||||
for(var i in raw) {
|
||||
var key = Number(raw[i].key.replace(regexp, "$2"));
|
||||
var key = Number(raw[i].key.replace(regexp, "$1"));
|
||||
if(raw[i].time != t_time) {
|
||||
r.push({time: t_time, keys: t_sets});
|
||||
t_sets = [];
|
||||
@@ -276,10 +277,11 @@ sheetplayer = {
|
||||
var executor = java.util.concurrent.Executors.newCachedThreadPool();
|
||||
var tragetRunnable = new java.lang.Runnable({
|
||||
run: function() {
|
||||
var gestureMap = [];
|
||||
var gestureMap = [], delay = 0;
|
||||
sheetplayer.notes[sheetplayer.currentNote].keys.map(function(e, i) {
|
||||
var keyCoordinates = sheetplayer.keyCount == 15 ? [config.values.key_coordinates15[e][0], config.values.key_coordinates15[e][1]] : [config.values.key_coordinates8[e][0], config.values.key_coordinates8[e][1]];
|
||||
gestureMap.push([0, 25, keyCoordinates, keyCoordinates]);
|
||||
delay += config.values.chordDelay;
|
||||
gestureMap.push([delay, 25, keyCoordinates, keyCoordinates]);
|
||||
});
|
||||
gestureMap = sheetplayer.toSource(gestureMap);
|
||||
eval("gestures(" + gestureMap.slice(1, gestureMap.length - 1) + ");");
|
||||
@@ -299,6 +301,7 @@ sheetplayer = {
|
||||
// 播放完自动下一首
|
||||
|
||||
if(!(sheetplayer.currentNote < sheetplayer.noteCount)) {
|
||||
if(!config.values.noPopupPlay) {
|
||||
if(config.values.autoPlay && gui.player_panel.isShowing) {
|
||||
gui.player_panel.__internal_dismiss();
|
||||
sheetplayer.stop();
|
||||
@@ -319,6 +322,10 @@ sheetplayer = {
|
||||
} else {
|
||||
sheetplayer.stop();
|
||||
}
|
||||
} else {
|
||||
sheetplayer.stop();
|
||||
gui.main.show(0);
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
@@ -382,7 +389,7 @@ config = {
|
||||
_global_storage: null,
|
||||
|
||||
values: {
|
||||
currentVersion: 21,
|
||||
currentVersion: 23,
|
||||
gitVersion: "",
|
||||
|
||||
key_coordinates15: [],
|
||||
@@ -398,7 +405,11 @@ config = {
|
||||
tipOnAndroidR: true,
|
||||
theme: "dark",
|
||||
autoPlay: false,
|
||||
lang: "zh_CN"
|
||||
lang: "zh_CN",
|
||||
chordDelay: 0,
|
||||
noPopupPlay: false,
|
||||
noPopupPlayWarning: true,
|
||||
intervalSecondsPlayInNoPopupMode: 5,
|
||||
},
|
||||
|
||||
bitmaps: {},
|
||||
@@ -460,11 +471,12 @@ config = {
|
||||
page_sc_download_success: "下载完成: {0}\n请在本地曲谱页面刷新",
|
||||
page_sc_download_failed: "下载 {0} 失败: {1}",
|
||||
page_sc_upload_title: "如何上传乐谱",
|
||||
page_sc_upload_desc: "共有两种方式可以上传乐谱:\n\n" +
|
||||
"①酷安私信@StageGuard,发送时请附带简介,曲谱链接(百度云或其他云盘都可)\n" +
|
||||
"②在github fork StageGuard/SkyAutoplayerScript\n" +
|
||||
page_sc_upload_desc: "共有三种方式可以上传乐谱:\n\n" +
|
||||
"1. 酷安私信@StageGuard,发送时请附带简介,曲谱链接(百度云或其他云盘都可)\n" +
|
||||
"2. 在github fork StageGuard/SkyAutoplayerScript\n" +
|
||||
"在shared_sheets文件夹添加你的曲谱,并按照格式修改shared_sheets.json\n" +
|
||||
"并提出 Pull Request 合并申请\n\n" +
|
||||
"3. 发送乐谱文件到 beamiscool@qq.com\n\n" +
|
||||
"注:若是转载转载请注明原作者同意\n\n" +
|
||||
"如果所有人都白嫖,那么这个列表将永远也不会扩充",
|
||||
page_sc_upload_open_coolapk: "打开酷安",
|
||||
@@ -489,6 +501,8 @@ config = {
|
||||
page_setting_set_15key_coordinate: "设置15键盘键位坐标",
|
||||
page_setting_key_coordinate_saved: "坐标设置已保存至存储!",
|
||||
page_setting_random_and_continuate_play: "连续随机播放",
|
||||
page_setting_no_popup_play: "弹奏不显示悬浮窗",
|
||||
page_setting_no_popup_play_interval: "无悬浮窗弹奏开始间隔",
|
||||
page_setting_show_broken_sheet: "显示加载失败的乐谱",
|
||||
page_setting_show_storage_tip_on_android11: "启动脚本时显示存储提示",
|
||||
page_setting_set_theme: "设置主题色",
|
||||
@@ -502,6 +516,7 @@ config = {
|
||||
page_setting_changelog_title: "更新日志",
|
||||
page_setting_exit_script: "结束脚本运行",
|
||||
page_setting_language: "语言",
|
||||
page_setting_chord_delay: "和弦按压延迟",
|
||||
|
||||
gui_player_panel_tip: "拖动标题栏的标题文字来移动弹奏控制面板悬浮窗。",
|
||||
gui_player_penel_analyzing: "解析中...",
|
||||
@@ -528,7 +543,19 @@ config = {
|
||||
res_language_download_failed: "语言下载失败:{0}",
|
||||
res_language_dialog_tip: "找不到你的语言?欢迎贡献翻译:<br><a href=>https://github.com/StageGuard/SkyAutoPlayerScript</a>",
|
||||
res_language_failed_fetch_online_list: "无法获取在线语言列表",
|
||||
res_language_dialog_title: "选择语言"
|
||||
res_language_dialog_title: "选择语言",
|
||||
res_language_update_needed: "语言需要更新,请前往设置界面重新点击当前语言来更新",
|
||||
|
||||
no_popup_play_warning_title: "警告",
|
||||
no_popup_play_warning: "您已经开启\"弹奏不显示悬浮窗\"选项!\n" +
|
||||
"弹奏不受弹奏面板控制是<b>非常危险的</b>。\n\n" +
|
||||
"当出现顶部悬浮通知(例如QQ消息)或气泡对话时,脚本可能会误触消息并开启其他软件,此时脚本依旧在运行中(弹奏中)且<b>无法被打断</b>。也就是说除了等待弹奏完成以外,没有任何办法终止弹奏。\n" +
|
||||
"<b>脚本在其他界面的误触可能会对您造成不可挽回的损失!</b>\n\n" +
|
||||
"另外,使用此功能且录屏不会使你获得任何成就感。\n\n" +
|
||||
"我已经警告过你了,若因使用此功能造成了损失或纠纷,与 SkyAutoPlayer 脚本和脚本作者 StageGuard 无关,请悉知。\n" +
|
||||
"若继续使用,请点击确认按钮,否则请点击取消按钮。\n\n" +
|
||||
"注意:使用此功能时,\"连续随机播放\"功能将不会生效。",
|
||||
no_popup_play_tip: "将在 {0} 秒后开始弹奏。"
|
||||
},
|
||||
},
|
||||
|
||||
@@ -538,11 +565,24 @@ config = {
|
||||
var langs = files.listDir(langPath)
|
||||
for(var i in langs) {
|
||||
var code = files.getNameWithoutExtension(langs[i]);
|
||||
if(code == this.values.lang) {
|
||||
if(code == this.values.lang && code != "zh_CN") {
|
||||
try {
|
||||
var content = JSON.parse(files.read(langPath + langs[i]));
|
||||
this.languages[content.code] = content.content;
|
||||
listener(String.format(this.languages[content.code].res_use_language, content.name));
|
||||
threads.start(function() {
|
||||
config.fetchRepoFile("source/language_list.json", function(body) {
|
||||
var onlineList = JSON.parse(body.string()).list;
|
||||
for(var i in onlineList) {
|
||||
if(onlineList[i].code == content.code) {
|
||||
if(onlineList[i].version > content.version) {
|
||||
toast(config.languages[config.values.lang].res_language_update_needed);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}, null);
|
||||
})
|
||||
return;
|
||||
} catch (e) {
|
||||
listener(new Error("加载 " + code + " 语言时出错:" + e))
|
||||
@@ -561,12 +601,12 @@ config = {
|
||||
|
||||
updateStaticUIText: function() {
|
||||
//一些静态文字的修改(我最会写垃圾代码了.jpg)
|
||||
gui.main.views[0].title = config.languages[config.values.lang].page_lc_title,
|
||||
gui.main.views[0].navigation_title = config.languages[config.values.lang].page_lc_navigation_title
|
||||
gui.main.views[1].title = config.languages[config.values.lang].page_sc_title,
|
||||
gui.main.views[1].navigation_title = config.languages[config.values.lang].page_sc_navigation_title
|
||||
gui.main.views[2].title = config.languages[config.values.lang].page_lc_title,
|
||||
gui.main.views[2].navigation_title = config.languages[config.values.lang].page_setting_navigation_title
|
||||
gui.main.views[0].title = config.languages[config.values.lang].page_lc_title;
|
||||
gui.main.views[0].navigation_title = config.languages[config.values.lang].page_lc_navigation_title;
|
||||
gui.main.views[1].title = config.languages[config.values.lang].page_sc_title;
|
||||
gui.main.views[1].navigation_title = config.languages[config.values.lang].page_sc_navigation_title;
|
||||
gui.main.views[2].title = config.languages[config.values.lang].page_lc_title;
|
||||
gui.main.views[2].navigation_title = config.languages[config.values.lang].page_setting_navigation_title;
|
||||
gui.run(function(){
|
||||
global_prompt_contentView.setText(android.text.Html.fromHtml(config.languages[config.values.lang].launch_tip_in_content));
|
||||
});
|
||||
@@ -589,6 +629,10 @@ config = {
|
||||
this.values.theme = this._global_storage.get("theme", this.values.theme);
|
||||
this.values.autoPlay = this._global_storage.get("auto_play", this.values.autoPlay);
|
||||
this.values.lang = this._global_storage.get("language", this.values.lang)
|
||||
this.values.chordDelay = this._global_storage.get("chordDelay", this.values.chordDelay)
|
||||
this.values.noPopupPlay = this._global_storage.get("no_popup_play", this.values.noPopupPlay)
|
||||
this.values.noPopupPlayWarning = this._global_storage.get("no_popup_play_warning", this.values.noPopupPlayWarning)
|
||||
this.values.intervalSecondsPlayInNoPopupMode = this._global_storage.get("interval_seconds_play", this.values.intervalSecondsPlayInNoPopupMode)
|
||||
try {
|
||||
android.os.Build.VERSION_CODES.R
|
||||
sheetmgr.rootDir = android.os.Environment.getExternalStorageDirectory() + "/Documents/SkyAutoPlayer/sheets/";
|
||||
@@ -610,7 +654,7 @@ config = {
|
||||
var periodVersion = this._global_storage.get("version", this.values.currentVersion);
|
||||
var currentVersion = this.values.currentVersion;
|
||||
if(periodVersion < currentVersion) {
|
||||
config.fetchRepoFile("update_log.txt", this.values.gitVersion, function(body) {
|
||||
config.fetchRepoFile("update_log.txt", function(body) {
|
||||
gui.dialogs.showConfirmDialog({
|
||||
title: config.languages[config.values.lang].res_updated,
|
||||
text: String.format(config.languages[config.values.lang].res_updated_detail, currentVersion, periodVersion, body.string()),
|
||||
@@ -625,8 +669,7 @@ config = {
|
||||
},
|
||||
|
||||
fetchResources: function(listener) {
|
||||
var remoteHost = "https://cdn.jsdelivr.net/gh/StageGuard/SkyAutoPlayerScript@" + this.values.gitVersion + "/resources/";
|
||||
var resourceList = ["local.png", "online.png", "play.png", "pause.png", "refresh.png", "settings.png", "info.png", "download.png", "bin.png", "speedup.png", "search.png", "note.png", "user.png", "piano.png", "clock.png"/*, "filter.png"*/, "coolapk.png", "douyin.png", "github.png", "twitter.png", "bilibili.png"];
|
||||
var resourceList = ["local.png", "online.png", "play.png", "pause.png", "refresh.png", "settings.png", "info.png", "download.png", "bin.png", "speedup.png", "search.png", "note.png", "user.png", "piano.png", "clock.png"/*, "filter.png"*/, "coolapk.png", "douyin.png", "github.png", "twitter.png", "bilibili.png", "mail.png"];
|
||||
var localRootDir = android.os.Environment.getExternalStorageDirectory() + "/Documents/SkyAutoPlayer/bitmaps/";
|
||||
var downloadQueue = [];
|
||||
var tryCount = 1;
|
||||
@@ -639,7 +682,7 @@ config = {
|
||||
try {
|
||||
listener(String.format(config.languages[config.values.lang].res_loading_detail, element));
|
||||
config.bitmaps[files.getNameWithoutExtension(absolutePath)] = android.graphics.Bitmap.createBitmap(android.graphics.BitmapFactory.decodeFile(absolutePath));
|
||||
} catch(e) {
|
||||
} catch (e) {
|
||||
listener(String.format(config.languages[config.values.lang].res_loading_error, element));
|
||||
downloadQueue.push(element);
|
||||
}
|
||||
@@ -661,7 +704,7 @@ config = {
|
||||
var iterator = 0;
|
||||
tmpQueue.map(function(element, i) {
|
||||
listener(String.format(config.languages[config.values.lang].res_downloading, element));
|
||||
config.fetchRepoFile("resources/" + element, config.values.gitVersion, function(body) {
|
||||
config.fetchRepoFile("resources/" + element, function(body) {
|
||||
var absolutePath = files.join(localRootDir, element);
|
||||
files.create(absolutePath);
|
||||
files.writeBytes(absolutePath, body.bytes());
|
||||
@@ -683,42 +726,30 @@ config = {
|
||||
listener(config.languages[config.values.lang].res_download_successful);
|
||||
java.lang.Thread.sleep(1000); //为了方便看清
|
||||
}
|
||||
} catch(error) {
|
||||
listener(new Error(String.format(config.languages[config.values.lang].res_error_while_downloading, error)));
|
||||
} catch (e) {
|
||||
listener(new Error(String.format(config.languages[config.values.lang].res_error_while_downloading, e)));
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
//jsdelivr cdn需要指定repo版本, gitee和github则不用
|
||||
//fetch顺序为 gitee raw content → jsdelivr cdn → github raw content
|
||||
fetchRepoFile: function(path, gitVersion, successCbk, failCbk) {
|
||||
//就用最蠢的if来判断吧
|
||||
fetchRepoFile: function(path, successCbk, failCbk) {
|
||||
var repos = [
|
||||
"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://raw.githubusercontent.com/StageGuard/SkyAutoPlayerScript/master/" + path
|
||||
];
|
||||
var errorCollector = new String();
|
||||
for(var i in repos) {
|
||||
try {
|
||||
var resp = http.get(encodeURI("https://gitee.com/stageguard/SkyAutoPlayerScript/raw/master/" + path));
|
||||
var resp = http.get(encodeURI(repos[i]));
|
||||
if(resp.statusCode >= 200 && resp.statusCode < 300) {
|
||||
successCbk(resp.body);
|
||||
return;
|
||||
} else {
|
||||
var errorCollector = resp.statusCode + ": " + resp.statusMessage + "\n";
|
||||
resp = http.get(encodeURI("https://cdn.jsdelivr.net/gh/StageGuard/SkyAutoPlayerScript" + (gitVersion == null ? "" : ("@" + gitVersion)) + "/" + path));
|
||||
if(resp.statusCode >= 200 && resp.statusCode < 300) {
|
||||
successCbk(resp.body);
|
||||
return;
|
||||
} else {
|
||||
errorCollector += resp.statusCode + ": " + resp.statusMessage + "\n";
|
||||
resp = http.get(encodeURI("https://raw.githubusercontent.com/StageGuard/SkyAutoPlayerScript/master/" + path));
|
||||
if(resp.statusCode >= 200 && resp.statusCode < 300) {
|
||||
successCbk(resp.body);
|
||||
return;
|
||||
} else {
|
||||
errorCollector += resp.statusCode + ": " + resp.statusMessage + "\n";
|
||||
} else errorCollector += "Failed on " + repo[i] + ": " + resp.statusCode + ": " + resp.statusMessage + "\n";
|
||||
} catch (e) { errorCollector += "Failed on " + repo[i] + ": " + e + "\n"; }
|
||||
}
|
||||
if(failCbk != null) failCbk(errorCollector);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch(e) {
|
||||
if(failCbk != null) failCbk(e);
|
||||
}
|
||||
},
|
||||
|
||||
updateBitmapTheme: function() {
|
||||
@@ -1711,15 +1742,15 @@ gui = {
|
||||
cx: 0,
|
||||
cy: 0,
|
||||
|
||||
width: dp * 35,
|
||||
height: dp * 35,
|
||||
width: dp * 40,
|
||||
height: dp * 40,
|
||||
|
||||
show: function s() { gui.run(function(){
|
||||
if(!gui.suspension.isShowing) {
|
||||
gui.suspension._global_base = new android.widget.TextView(ctx);
|
||||
gui.suspension._global_base.setLayoutParams(new android.widget.LinearLayout.LayoutParams(gui.suspension.width, gui.suspension.height));
|
||||
gui.suspension._global_base.setText("\u27e1");
|
||||
gui.suspension._global_base.setTextColor(android.graphics.Color.parseColor("#FFFFD1"));
|
||||
gui.suspension._global_base.setLayoutParams(new android.widget.LinearLayout.LayoutParams(gui.suspension.width - dp * 5, gui.suspension.height - dp * 5));
|
||||
gui.suspension._global_base.setText("\u2726");
|
||||
gui.suspension._global_base.setTextColor(android.graphics.Color.parseColor("#FFF6D7"));
|
||||
gui.suspension._global_base.setShadowLayer(dp * 3, 0, 0, android.graphics.Color.parseColor("#390c1a"));
|
||||
gui.suspension._global_base.setTextSize(30);
|
||||
gui.suspension._global_base.setOnTouchListener(new android.view.View.OnTouchListener({
|
||||
@@ -2075,8 +2106,32 @@ gui = {
|
||||
s.play.setBackgroundDrawable(gui.utils.ripple_drawable(s.play.getMeasuredWidth(), s.play.getMeasuredHeight(), "rect"));
|
||||
s.play.setOnClickListener(new android.view.View.OnClickListener({
|
||||
onClick: function() {
|
||||
if(config.values.noPopupPlay) {
|
||||
if(!config.values.noPopupPlayWarning) {
|
||||
gui.player_panel.noPopupPlayClick()
|
||||
} else {
|
||||
gui.dialogs.showConfirmDialog({
|
||||
title: config.languages[config.values.lang].no_popup_play_warning_title,
|
||||
text: android.text.Html.fromHtml(config.languages[config.values.lang].no_popup_play_warning.replace(new RegExp("\x0a", "gi"), "<br>")),
|
||||
canExit: false,
|
||||
buttons: [
|
||||
config.languages[config.values.lang].button_confirm,
|
||||
config.languages[config.values.lang].button_cancel
|
||||
],
|
||||
skip: function(checked) {
|
||||
config.values.noPopupPlayWarning = config.save("no_popup_play_warning", !checked);
|
||||
},
|
||||
callback: function(id) {
|
||||
if(id == 0) {
|
||||
gui.player_panel.noPopupPlayClick()
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
sheetplayer.play(gui.player_panel.refreshStatus);
|
||||
}
|
||||
}
|
||||
}));
|
||||
s.play.setEnabled(false);
|
||||
s.play.setClickable(false);
|
||||
@@ -2209,6 +2264,13 @@ gui = {
|
||||
});
|
||||
|
||||
});},
|
||||
noPopupPlayClick: function() {
|
||||
gui.player_panel.__internal_dismiss();
|
||||
toast(String.format(config.languages[config.values.lang].no_popup_play_tip, config.values.intervalSecondsPlayInNoPopupMode));
|
||||
(new android.os.Handler()).postDelayed(function() {
|
||||
sheetplayer.play();
|
||||
}, config.values.intervalSecondsPlayInNoPopupMode * 1000);
|
||||
},
|
||||
__internal_dismiss: function() { gui.run(function(){
|
||||
if (gui.player_panel.isShowing) {
|
||||
gui.player_panel.isShowing = false;
|
||||
@@ -2258,6 +2320,7 @@ gui = {
|
||||
type: "item",
|
||||
name: content.name,
|
||||
code: content.code,
|
||||
version: content.version,
|
||||
local: true,
|
||||
content: content.content
|
||||
});
|
||||
@@ -2323,20 +2386,8 @@ gui = {
|
||||
onItemClick: function(parent, view, pos, id) {
|
||||
var item = listAdapterController.get(pos);
|
||||
if(item.type == "item") {
|
||||
if(item.local) {
|
||||
config.languages[item.code] = item.content;
|
||||
config.values.lang = config.save("language", item.code);
|
||||
toast(String.format(config.languages[config.values.lang].res_use_language, item.name));
|
||||
gui.main.__internal_dismiss();
|
||||
gui.suspension.show();
|
||||
config.updateStaticUIText();
|
||||
gui.utils.value_animation("Float", 1.0, 0, 125, new android.view.animation.DecelerateInterpolator(), function(anim) {
|
||||
langDialog.setAlpha(anim.getAnimatedValue());
|
||||
if(anim.getAnimatedValue() == 1) gui.winMgr.removeView(langDialog);
|
||||
});
|
||||
} else {
|
||||
threads.start(function() {
|
||||
config.fetchRepoFile("resources/language_pack/" + item.code + ".json", null, function(body) {
|
||||
var fetchOnline = function() {
|
||||
config.fetchRepoFile("resources/language_pack/" + item.code + ".json", function(body) {
|
||||
var lf = android.os.Environment.getExternalStorageDirectory() + "/Documents/SkyAutoPlayer/lang/" + item.code + ".json";
|
||||
files.create(lf)
|
||||
files.writeBytes(lf, body.bytes());
|
||||
@@ -2354,8 +2405,32 @@ gui = {
|
||||
}, function(msg) {
|
||||
toast(String.format(config.languages[config.values.lang].res_language_download_failed, msg));
|
||||
});
|
||||
}
|
||||
|
||||
if(item.local) {
|
||||
var isOutdateVersion = false;
|
||||
for(var i in onlineList) {
|
||||
if(onlineList[i].code == item.code) {
|
||||
if(onlineList[i].version > item.version) isOutdateVersion = true;
|
||||
}
|
||||
}
|
||||
if(isOutdateVersion) {
|
||||
threads.start(fetchOnline);
|
||||
} else {
|
||||
config.languages[item.code] = item.content;
|
||||
config.values.lang = config.save("language", item.code);
|
||||
toast(String.format(config.languages[config.values.lang].res_use_language, item.name));
|
||||
gui.main.__internal_dismiss();
|
||||
gui.suspension.show();
|
||||
config.updateStaticUIText();
|
||||
gui.utils.value_animation("Float", 1.0, 0, 125, new android.view.animation.DecelerateInterpolator(), function(anim) {
|
||||
langDialog.setAlpha(anim.getAnimatedValue());
|
||||
if(anim.getAnimatedValue() == 1) gui.winMgr.removeView(langDialog);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
threads.start(fetchOnline);
|
||||
}
|
||||
}
|
||||
}
|
||||
}));
|
||||
@@ -2372,9 +2447,10 @@ gui = {
|
||||
baseLayout.addView(prompt);
|
||||
var langDialog = gui.dialogs.showDialog(baseLayout, -2, -2, null, true);
|
||||
|
||||
var onlineList = [];
|
||||
threads.start(function() {
|
||||
config.fetchRepoFile("source/language_list.json", null, function(body) {
|
||||
var onlineList = JSON.parse(body.string()).list;
|
||||
config.fetchRepoFile("source/language_list.json", function(body) {
|
||||
onlineList = JSON.parse(body.string()).list;
|
||||
gui.run(function() {
|
||||
var __listArray = listAdapterController.getArray();
|
||||
var loadingProgress = __listArray[__listArray.length - 1].v_prog
|
||||
@@ -2390,6 +2466,7 @@ gui = {
|
||||
type: "item",
|
||||
name: onlineList[i].name,
|
||||
code: onlineList[i].code,
|
||||
version: onlineList[i].version,
|
||||
local: false,
|
||||
});
|
||||
}
|
||||
@@ -2615,6 +2692,13 @@ gui.dialogs.showProgressDialog(function(o) {
|
||||
}
|
||||
}());
|
||||
case "bilibili": return "#FB7299";
|
||||
case "mail": return (function(){
|
||||
if(config.values.theme == "light") {
|
||||
return "#24292E";
|
||||
} else {
|
||||
return "#FFFFFF";
|
||||
}
|
||||
}());
|
||||
}
|
||||
}
|
||||
var filterBitmap = function(bitmap, replacedColor) {
|
||||
@@ -2651,7 +2735,7 @@ gui.dialogs.showProgressDialog(function(o) {
|
||||
socialImage.setImageBitmap(filterBitmap(config.bitmaps[item.social[0].platform], android.graphics.Color.parseColor(colorPicker(item.social[0].platform))));
|
||||
socialLayout.addView(socialImage);
|
||||
var socialPrompt1 = new android.widget.TextView(ctx);
|
||||
socialPrompt1.setText(android.text.Html.fromHtml(("在 <font color=" + colorPicker(item.social[0].platform) + ">" + item.social[0].name +"</font> 查看作者")));
|
||||
socialPrompt1.setText(android.text.Html.fromHtml(("在 <font color=" + colorPicker(item.social[0].platform) + ">" + item.social[0].name + "</font> 查看作者")));
|
||||
socialPrompt1.setLayoutParams(new android.widget.LinearLayout.LayoutParams(-2, dp * 34));
|
||||
socialPrompt1.setGravity(android.view.Gravity.LEFT | android.view.Gravity.CENTER);
|
||||
socialPrompt1.setTextColor(gui.config.colors[config.values.theme].text);
|
||||
@@ -2660,8 +2744,14 @@ gui.dialogs.showProgressDialog(function(o) {
|
||||
socialLayout.setBackgroundDrawable(gui.utils.ripple_drawable(socialLayout.getMeasuredWidth(), socialLayout.getMeasuredHeight(), "rect"));
|
||||
socialLayout.setOnClickListener(new android.view.View.OnClickListener({
|
||||
onClick: function() {
|
||||
if(item.social[0].platform == "mail") {
|
||||
app.sendEmail({email: item.social[0].link})
|
||||
} else {
|
||||
app.openUrl(item.social[0].link);
|
||||
}
|
||||
gui.main.__internal_dismiss();
|
||||
gui.suspension.show();
|
||||
}
|
||||
}));
|
||||
} else {
|
||||
for(var i in item.social) {
|
||||
@@ -2675,9 +2765,14 @@ gui.dialogs.showProgressDialog(function(o) {
|
||||
socialImage.setBackgroundDrawable(gui.utils.ripple_drawable(socialImage.getMeasuredWidth(), socialImage.getMeasuredHeight(), "rect"));
|
||||
socialImage.setOnClickListener(new android.view.View.OnClickListener({
|
||||
onClick: function(view) {
|
||||
print(view.getId())
|
||||
if(item.social[view.getId()].platform == "mail") {
|
||||
app.sendEmail({email: item.social[view.getId()].link})
|
||||
} else {
|
||||
app.openUrl(item.social[view.getId()].link);
|
||||
}
|
||||
gui.main.__internal_dismiss();
|
||||
gui.suspension.show();
|
||||
}
|
||||
}));
|
||||
socialLayout.addView(socialImage);
|
||||
}
|
||||
@@ -3126,7 +3221,7 @@ gui.dialogs.showProgressDialog(function(o) {
|
||||
element.download.setBackgroundDrawable(gui.utils.ripple_drawable(element.download.getMeasuredWidth(), element.download.getMeasuredHeight(), "rect"));
|
||||
element.download.setOnClickListener(new android.view.View.OnClickListener({
|
||||
onClick: function() { threads.start(function() {
|
||||
if(!element.isShowingStatusBar) sheetmgr.downloadAndLoad(element.file, {author: element.author, keyCount: element.keyCount}, function(r) {
|
||||
if(!element.isShowingStatusBar) sheetmgr.downloadAndLoad(element.file, {author: element.author, keyCount: element.keyCount, name: element.name}, function(r) {
|
||||
switch(r.status) {
|
||||
case 1: {
|
||||
gui.run(function() {
|
||||
@@ -3460,6 +3555,29 @@ gui.dialogs.showProgressDialog(function(o) {
|
||||
onClick: function(checked) {
|
||||
config.values.autoPlay = config.save("auto_play", checked);
|
||||
}
|
||||
}, {
|
||||
type: "checkbox",
|
||||
name: config.languages[config.values.lang].page_setting_no_popup_play,
|
||||
check: config.values.noPopupPlay,
|
||||
onClick: function(checked) {
|
||||
config.values.noPopupPlay = config.save("no_popup_play", checked);
|
||||
}
|
||||
}, {
|
||||
type: "seekbar",
|
||||
name: config.languages[config.values.lang].page_setting_no_popup_play_interval,
|
||||
value: config.values.intervalSecondsPlayInNoPopupMode,
|
||||
range: [3, 15],
|
||||
onChangeUp: function(value) {
|
||||
config.values.intervalSecondsPlayInNoPopupMode = config.save("interval_seconds_play", value);
|
||||
}
|
||||
}, {
|
||||
type: "seekbar",
|
||||
name: config.languages[config.values.lang].page_setting_chord_delay,
|
||||
value: config.values.chordDelay,
|
||||
range: [0, 100],
|
||||
onChangeUp: function(value) {
|
||||
config.values.chordDelay = config.save("chordDelay", value);
|
||||
}
|
||||
}, {
|
||||
type: "checkbox",
|
||||
name: config.languages[config.values.lang].page_setting_show_broken_sheet,
|
||||
@@ -3511,7 +3629,7 @@ gui.dialogs.showProgressDialog(function(o) {
|
||||
name: config.languages[config.values.lang].page_setting_show_license,
|
||||
onClick: function(v) {
|
||||
threads.start(function() {
|
||||
config.fetchRepoFile("LICENSE", null, function(body) {
|
||||
config.fetchRepoFile("LICENSE", function(body) {
|
||||
gui.dialogs.showConfirmDialog({
|
||||
title: "GNU GENERAL PUBLIC LICENSE",
|
||||
text: body.string(),
|
||||
@@ -3526,7 +3644,7 @@ gui.dialogs.showProgressDialog(function(o) {
|
||||
name: config.languages[config.values.lang].page_setting_show_changelog,
|
||||
onClick: function(v) {
|
||||
threads.start(function() {
|
||||
config.fetchRepoFile("update_log.txt", null, function(body) {
|
||||
config.fetchRepoFile("update_log.txt", function(body) {
|
||||
gui.dialogs.showConfirmDialog({
|
||||
title: config.languages[config.values.lang].page_setting_changelog_title,
|
||||
text: body.string(),
|
||||
@@ -3550,7 +3668,7 @@ gui.dialogs.showProgressDialog(function(o) {
|
||||
try {
|
||||
android.os.Build.VERSION_CODES.R
|
||||
} catch (e) {
|
||||
sList.list.splice(6, 1);
|
||||
sList.list.splice(9, 1);
|
||||
}
|
||||
return sList.list;
|
||||
}()), function self(element) {
|
||||
@@ -3607,6 +3725,43 @@ gui.dialogs.showProgressDialog(function(o) {
|
||||
}));
|
||||
element.v_relative.addView(element.v_checkbox);
|
||||
break;
|
||||
case "seekbar":
|
||||
element.v_title = new android.widget.TextView(ctx);
|
||||
element.v_title.setId(114);
|
||||
element.v_title.setGravity(android.view.Gravity.LEFT | android.view.Gravity.CENTER);
|
||||
element.v_title.setLayoutParams(new android.widget.RelativeLayout.LayoutParams(-2, -2));
|
||||
element.v_title.getLayoutParams().setMargins(dp * 10, dp * 10, dp * 10, dp * 10);
|
||||
element.v_title.getLayoutParams().addRule(android.widget.RelativeLayout.ALIGN_PARENT_LEFT);
|
||||
element.v_title.getLayoutParams().addRule(android.widget.RelativeLayout.ALIGN_PARENT_TOP);
|
||||
element.v_title.setTextSize(14);
|
||||
element.v_title.setTextColor(gui.config.colors[config.values.theme].text);
|
||||
element.v_title.setText(element.name);
|
||||
element.v_relative.addView(element.v_title);
|
||||
element.v_disp = new android.widget.TextView(ctx);
|
||||
element.v_disp.setGravity(android.view.Gravity.LEFT | android.view.Gravity.CENTER);
|
||||
element.v_disp.setLayoutParams(new android.widget.RelativeLayout.LayoutParams(-2, -2));
|
||||
element.v_disp.getLayoutParams().setMargins(dp * 10, dp * 10, dp * 25, dp * 10);
|
||||
element.v_disp.getLayoutParams().addRule(android.widget.RelativeLayout.ALIGN_PARENT_RIGHT);
|
||||
element.v_disp.getLayoutParams().addRule(android.widget.RelativeLayout.ALIGN_PARENT_TOP);
|
||||
element.v_disp.setTextSize(12);
|
||||
element.v_disp.setTextColor(gui.config.colors[config.values.theme].sec_text);
|
||||
element.v_disp.setText(String(Math.round(element.value)));
|
||||
element.v_relative.addView(element.v_disp);
|
||||
element.v_seek = android.widget.SeekBar(ctx);
|
||||
element.v_seek.setLayoutParams(new android.widget.RelativeLayout.LayoutParams(-1, -2));
|
||||
element.v_seek.getLayoutParams().addRule(android.widget.RelativeLayout.BELOW, 114);
|
||||
element.v_seek.setMax(100);
|
||||
element.v_seek.setProgress(element.value / (element.range[1] - element.range[0]) * 100);
|
||||
element.v_seek.setOnSeekBarChangeListener(new android.widget.SeekBar.OnSeekBarChangeListener({
|
||||
onProgressChanged: function(sb, prog) {
|
||||
element.v_disp.setText(String(Math.round(sb.getProgress() / 100 * (element.range[1] - element.range[0]) + element.range[0])));
|
||||
},
|
||||
onStopTrackingTouch: function(sb) {
|
||||
element.onChangeUp(sb.getProgress() / 100 * (element.range[1] - element.range[0]) + element.range[0]);
|
||||
},
|
||||
}));
|
||||
element.v_relative.addView(element.v_seek);
|
||||
break;
|
||||
}
|
||||
return element.v_relative;
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
{
|
||||
"list": [{
|
||||
"code": "zh_CN",
|
||||
"name": "简体中文"
|
||||
"name": "简体中文",
|
||||
"version": 5
|
||||
}, {
|
||||
"code": "en_US",
|
||||
"name": "English (US)"
|
||||
"name": "English (US)",
|
||||
"version": 5
|
||||
}]
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
/*
|
||||
SkyAutoPlayer (Auto.js script)
|
||||
Copyright © 2020 StageGuard
|
||||
Copyright © 2020-2021 StageGuard
|
||||
Contact :
|
||||
(QQ: 1355416608)
|
||||
(Email: beamiscool@qq.com)
|
||||
|
||||
@@ -1,4 +1,15 @@
|
||||
版本: 20
|
||||
版本: 23
|
||||
更新时间: 2021.6.29 13:10
|
||||
更新内容:
|
||||
* 新增:"弹奏不显示弹奏界面"选项(Issue #6)。
|
||||
|
||||
版本: 22
|
||||
更新时间: 2020.12.22 23:48
|
||||
更新内容:
|
||||
* 新增:和弦按键按压延迟,可在设置中调整。
|
||||
这个功能就是在按压和弦的时候可以按照设定的时间依次从低音到高音依次按压。
|
||||
|
||||
版本: 21
|
||||
更新时间: 2020.12.22 18:31
|
||||
更新内容:
|
||||
* 新增:多语言设置。
|
||||
|
||||
Reference in New Issue
Block a user