定量健身,通过脚本指令来控制健身节奏和数量,争取早日突破限制器,变秃也变强。
jxa脚本内容
#!/usr/bin/env osascript -l JavaScript
const app=Application.currentApplication()
app.includeStandardAdditions=true
app.displayAlert('请检查设置', {message: '屏幕熄灭时,本进程会被中止,因此请修改 节能设置 保持程序运行期间屏幕常亮'})
function loop(a, b, fn) {
for(let i=a; i<b*1; i++) {
try{
fn(i)
}catch(e){
break
}
}
}
/***
X数字 倒计时,例X3: 3 2 1
Y数字 正计时,例Y3: 1 2 3
P数字 后面的操作循环,每次循环完成后报数,例:P10X3,即循环10次倒计时 3 2 1
数字 延迟指定秒
文字串:朗读指定文字
**/
const jobs=`
每日健身开始,准备
X3
打坐,5分钟,准备
X3
开始
300
完成
俯卧撑第一组10个,请按照节奏进行,准备
X3
开始
P10X3Y3
休息3分钟
180
俯卧撑第二组10个,请按照节奏进行,准备
X3
开始
P10X3Y3
休息3分钟
180
仰卧起坐第一组15个,请按照节奏进行,准备
X3
开始
P15X3Y3
休息3分钟
180
仰卧起坐第二组15个,请按照节奏进行,准备
X3
开始
P15X3Y3
休息3分钟
180
下蹲第一组10个,请按照节奏进行,准备
X3
开始
P10X3Y3
休息3分钟
180
下蹲第二组10个,请按照节奏进行,准备
X3
开始
P10X3Y3
休息3分钟
180
已完成全部锻炼,明天也请坚持,加油
P10X3Y3
`
jobs.match(/.+/g).map(str=>{
str=str.trim()
if(!str) return
if(str.match(/^\d+$/)) return loop(0, str, i=>{
app.beep()
delay(1)
})
if(!str.match(/^([A-Z])\d+/)) return app.say(str)
const fn=arr=>loop(0, arr.length, i=>{
const [c, n]=arr[i].match(/[A-Z]|\d+/g)
if(c==='P') throw loop(0, n, j=>{
fn(arr.slice(i+1, arr.length))
app.say(j+1)
})
if(c==='X') loop(0, n, j=>{
app.say(n-j)
delay(1)
})
if(c==='Y') loop(0, n, j=>{
app.say(j+1)
delay(1)
})
})
fn(str.match(/[A-Z]\d+/g))
})
app.displayAlert('请检查设置', {message: '程序运行完毕,请还原 节能设置'})
保存为 run.osa
chmod +x run.osa
./osa
参考文档:
- https://www.cnblogs.com/andrewwang/p/8536446.html
- https://developer.apple.com/library/archive/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/Articles/Introduction.html
- https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/conceptual/ASLR_fundamentals.html#//apple_ref/doc/uid/TP40000983-CH218-SW2
- https://github.com/JXA-Cookbook/JXA-Cookbook/wiki
相关文档
暂无
随便看看
畅言模块加载中