展开目录
jxa运动指令脚本
jxaapplescriptmac
X
陈尼玛的博客
记录开发生涯的踩坑经历,用时间来验证成长
加载中

定量健身,通过脚本指令来控制健身节奏和数量,争取早日突破限制器,变秃也变强。

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

参考文档:

  1. https://www.cnblogs.com/andrewwang/p/8536446.html
  2. https://developer.apple.com/library/archive/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/Articles/Introduction.html
  3. https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/conceptual/ASLR_fundamentals.html#//apple_ref/doc/uid/TP40000983-CH218-SW2
  4. https://github.com/JXA-Cookbook/JXA-Cookbook/wiki

相关文档

暂无

随便看看

  1. sqlite 查看table的构建语句

  2. npm远程服务器某些配置不兼容代理的解决办法

  3. nodejs本地双向代理 端口转发

  4. nodejs socks5

  5. mongodb 批量修改字段语句

  6. webrtc服务搭建

  7. linux自启动/禁止自启动服务

  8. webpack使用外部资源

  9. putty使用http代理连接服务器

  10. git 设置代理服务器

  11. ssl 证书生成方式

  12. 把树莓派的存储空间拓展到整张TF卡中

  13. python下载文件,带进度条控制

  14. mysql选取内容导出到文件

  15. centos7 开放或者关闭端口

  16. youku电脑版跳过广告代码

  17. 感谢beego陪伴我度过那不靠谱的半年

畅言模块加载中