# mimotion **Repository Path**: aaronhong/mimotion ## Basic Information - **Project Name**: mimotion - **Description**: zepp life edtor - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-11-06 - **Last Updated**: 2025-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### 创建小权限的限时token,推荐 - 前往[https://github.com/settings/tokens?type=beta](https://github.com/settings/tokens?type=beta)创建个人token,建议使用Fine-grained tokens,避免token泄露导致不必要的麻烦。 - 填写token的名称,用于自己区别干嘛用的。 - 选择token有效期,最大时长为1年。一年后需要重新续期或重建,唯一缺点 - `Repository access` 选择 `Only select repositories` 勾选自己fork后的仓库,下拉可搜索:输入 mimotion 进行检索 - 点击 `Repository permissions` 展开菜单,并勾选以下四个权限即可,其他的可以不勾选 - `Actions` Access: `Read and write` 用于获取Actions的权限 - `Contents` Access: `Read and write` 用于更新定时任务和日志文件的权限 - `Metadata` Access: `Read-only` 这个自带的必选 - `Workflows` Access: `Read and write` 获取用于更新 `.github/workflow` 下文件的权限 #### 你也可以创建更大权限的不限时token - 建议使用上面的小权限token,这个token无法指定某一个仓库的权限,也就是token一旦泄露将有可能导致其他人直接自由访问和修改你的所有仓库代码 - 前往[https://github.com/settings/tokens/new](https://github.com/settings/tokens/new)创建 - 填写token名称,选择有效期 - `Select scopes` 勾选 `repo` 和 `workflow` 即可 #### 创建完毕后点击最底下的 `Generate token` 即可生成token,复制token并自己保存一下以备后续使用,关闭当前页面后将无法再看到它。 ### 二、设置账号密码 #### 前往仓库设置创建变量 - Settings-->Secrets and variables-->Actions-->New repository secret - 快捷跳转地址 [https://github.com/${你的github用户名}/mimotion/settings/secrets/actions](../../settings/secrets/actions) - 点击右侧的 `New repository secret` 即可添加Secret #### 添加名为 **PAT** 的Secret变量,值为第一步申请的token - `PAT` 的作用是拿来更新随机执行时间以及加密token数据的,为了保证正常使用,一定要配置正确。 #### 添加名为 **AES_KEY** 的Secret变量,请自行创建一个长度为16个字符的字符串作为密钥 - 注意:密钥不要用中文,长度一定要是16个字符,否则可能出错。 - 如果你有多个账号,或者希望程序自动保存登录信息,就需要设置这个 `AES_KEY`。设置之后,程序会用这个密钥把各个账号的登录token信息加密保存起来。**请一定保管好你的密钥,不要泄露。** - 同时,请确保你已经正确配置了 PAT 密钥,否则程序无法自动保存和提交信息到仓库。 - 第一次配置 `AES_KEY` 后,运行时可能会看到提示:“密钥不正确或者加密内容损坏 放弃token”,**这是正常现象**。因为原来加密文件用的是我的密钥,和你设置的不同,所以会提示不匹配。你直接忽略它,等程序运行完后,就会用你的新密钥生成一份新的加密文件,下次运行就正常了。 - 配置 `AES_KEY` 后,每个人的仓库里面到会保存一份 `encrypted_tokens.data`。每次更新代码时,这个文件会被覆盖。**为了避免丢失你保存的信息,请在更新代码前备份这个文件**,等代码更新完,再把它放回仓库并提交,最后重新运行workflow。 #### 添加名为 **CONFIG** 的Secret变量 - 需要注意Secret变量是密文,提交后无法查看,只能删除或用新值更新,建议本地保存一下自己的配置数据方便后期修改。 - CONFIG的内容: ```json { "USER": "abcxxx@xx.com", "PWD": "password", "MIN_STEP": "18000", "MAX_STEP": "25000", "PUSH_PLUS_TOKEN": "", "PUSH_PLUS_HOUR": "", "PUSH_PLUS_MAX": "30", "SLEEP_GAP": "5", "USE_CONCURRENT": "False" } ``` ### 查看执行记录 - 前往 [Actions](../../actions) 可以查看所有工作流的执行历史 - `刷步数 #41: Scheduled` 代表是定时任务触发,`刷步数 #33: Manually run by xxx` 代表手动触发 - 点击其中一条记录,可以查看执行详情,这里以 `刷步数` 为例: - 详情界面 `Jobs` 可以查看到一个 `build` ,点击它查看执行步骤 - 执行步骤中主要关注 `开始` ,点击 `开始` 展开详情 - 展开后便可以查看到执行日志,如果执行成功,则会显示每个账号当前随机的步数是多少 - 如果执行失败,则需要根据实际情况分析具体失败原因 - 对于随机Cron的工作流 `Random Cron`,它会在 `刷步数` 执行成功后触发,执行后会更新cron表达式创建随机的分钟值,然后提交到git仓库。这一步失败的主要原因有: - `PAT` Secret变量,也就是个人token设置的不正确 - `CRON_HOURS` Variable变量设置的不正确,需要逗号分隔的小时字符串例如:`1,3,4,5,6,7` 。不要添加奇奇怪怪的东西 - 其他请见执行日志 - 随机Cron运行完毕后可以查看 `cron_change_time` 文件的内容,记录了触发方式、当前触发时间、cron表达式信息、下一次定时触发时间等信息,示例如下: ```log trigger by: workflow_run current system time: UTC: 23-06-03 12:56:53 北京时间: 23-06-03 20:56:53 current cron: UTC时间: '48 1,4,7,10,12,14 * * *' 北京时间: '48 9,12,15,18,20,22 * * *' next cron: UTC时间: '37 1,4,7,10,12,14 * * *' 北京时间: '37 9,12,15,18,20,22 * * *' next exec time: UTC(14:37) 北京时间(22:37) ```