diff --git a/README.md b/README.md index 5bd7c33..e1be4e3 100644 --- a/README.md +++ b/README.md @@ -32,12 +32,18 @@ Genshin Impact Helper 可以自动化为你获取原神每日福利。 ## 💡特性 - [x] **自动签到** 程序会在每天早上自动执行签到流程,也可以随时通过部署教程的`步骤4`手动触发,具体时间参照[此处](.github/workflows/main.yml) -- [x] **支持订阅** 通过配置`SCKEY`开启订阅,每天将签到结果推送到微信上 -- [x] **支持多账号** 不同账号的`Cookie`之间用`#`分隔,如:`myCookie1#myCookie2` +- [x] **支持同步** 自动同步上游仓库,默认关闭 +- [x] **支持订阅** 可选多种订阅方式,通过配置不同参数开启,每天将签到结果推送给订阅用户 +- [x] **支持多账号** 不同账号的`Cookie`值之间用`#`分隔,如:`Cookie1#Cookie2#Cookie3` - [x] **支持多角色** 支持绑定官服和B站渠道服角色的米游社账号 ## 📐部署 +1. Fork 仓库 +2. 获取 Cookie +3. 添加 Cookie 至 Secrets +4. 启用 Actions +
查看教程 @@ -110,47 +116,137 @@ if (ask == true) { ## 🔍结果 -当你完成上述流程,可以在`Actions`页面点击`Genshin Impact Helper`-->`build`-->`Run sign`查看结果。 +当你完成上述流程,可以在`Actions`页面点击`Genshin Impact Helper`-->`build`-->`Run sign`查看运行日志,注意`签到结果`的提示。
查看结果 ### 签到成功 -如果成功,会输出类似`"result": "Success"`的信息: +如果成功,会输出类似`签到结果: 成功: 1 | 失败: 0 `的信息: ``` -2020-11-18T22:11:45 INFO Sleep for 100 seconds ... -2020-11-18T22:13:26 INFO UID is 100***000 -2020-11-18T22:13:27 INFO { - "result": "Success", - "message": "{\"retcode\": 0, \"message\": \"OK\", \"data\": {\"code\": \"ok\"}}" -} +签到结果: 成功: 1 | 失败: 0 + + NO.1 账号: + #########2021-01-13######### + 🔅[天空岛]1******9 + 今日奖励: 摩拉 × 8000 + 本月累签: 13 天 + 签到结果: OK + ############################ + #########2021-01-13######### + 🔅[世界树]5******1 + 今日奖励: 精锻用良矿 × 3 + 本月累签: 2 天 + 签到结果: OK + ############################ ``` ### 签到失败 -如果失败,会输出类似`"result": "Failed"`的信息: +如果失败,会输出类似`签到结果: 成功: 0 | 失败: 1`的信息: ``` -2020-11-17T22:11:33 INFO Sleep for 54 seconds ... -2020-11-17T22:12:28 INFO UID is 100***000 -2020-11-17T22:12:29 INFO { - "result": "Failed", - "message": "{\"data\": null, \"message\": \"请求异常\", \"retcode\": -401}" -} -Error: Process completed with exit code 255. +签到结果: 成功: 0 | 失败: 1 + + NO.1 账号: + 登录失效,请重新登录 ``` 同时你会收到一封来自GitHub、标题为`Run failed: Genshin Impact Helper - master`的邮件。
+注:若开启订阅推送,无论成功与否,都会收到推送通知。 + +## 🔄同步 + +因为接口请求上可能发生一些变化,所以上游源代码需要作出更改来适配这些变化,如果你没有及时同步项目源代码,可能会导致签到失败。 + +**如果你不熟悉 Github 如何同步上游仓库,建议删除你 Fork 的仓库(仓库的`Settings - Options - Danger Zone - Delete this repository`),以重新 Fork 的方式来同步更新,不要再乱点 Pull Request了~** + +⚠️开启自动同步后[存在的风险](https://github.com/y1ndan/genshin-impact-helper/pull/47#issuecomment-751869761) +> 这导致了开发者账号泄露后用户被供应链攻击的隐患,而主页的协议中没有明确指出这一点。协议中同时包含了“除此之外,开发者无权获取您的 Cookie”这一陈述,而事实上开发者在此次PR后可以通过更改源代码来在用户未经授权的情况下收集用户Cookie。此前用户在使用本软件时应该默认进行代码审查,然后手动在自己的Repo里PR进行更新。现在的则跳过了这一用户授权更新的动作。 + +若你了解并接受自动同步带来的可能的风险,请继续往下阅读: + +
+开启同步 + +项目重新启用自动同步功能,默认关闭。 + +同步默认使用远程仓库覆盖复刻仓库的方式,如果想保留自己的修改,可以编辑`pull.yml`文件,将`mergeMethod: hardreset`修改为`mergeMethod: merge`。 + +### 激活安装 + +1. 前往 `https://pull.git.ci/check/${owner}/genshin-impact-helper` 激活配置文件,其中`${owner}`修改为你的 Github 用户名 +2. 安装 [![ Pull](https://prod.download/pull-18h-svg) Pull app](https://github.com/apps/pull),在安装向导页选择`Only select repositories`,下拉列表选择`genshin-impact-helper`,点击`Install`完成安装 +3. 程序会在上游仓库有更新时 3 小时内自动同步 + +### 手动触发 + +完成激活安装后,你可以随时前往 `https://pull.git.ci/process/${owner}/genshin-impact-helper` 手动触发同步,其中`${owner}`修改为你的 Github 用户名,网页显示`Success`则触发成功。 + +如果没有自动同步,应检查你的仓库是否已经是最新的;或者检查仓库的`Pull requests + `里是否有以`[pull]`开头的合并请求,若有则需要点进去找到`Merge pull request`按钮,点击确认合并。 + +
+ +## 🔔订阅 + +若开启订阅推送,无论成功与否,都会收到推送通知 + +### Push All In One + +支持Server酱、酷推、Bark App、Telegram Bot、钉钉机器人、企业微信机器人、iGot聚合推送和pushplus 单个或多个推送,配置对应参数就会开启对应的推送方式,参数列表详见下文`参数`部分。 + +#### Server酱 + +以Server酱为例: + +**a.获取 SCKEY** + +- 使用 GitHub 登录 [sc.ftqq.com](http://sc.ftqq.com/?c=github&a=login) 创建账号 +- 点击「[发送消息](http://sc.ftqq.com/?c=code)」,获取`SCKEY` +- 点击「[微信推送](http://sc.ftqq.com/?c=wechat&a=bind)」,完成微信绑定 + +**b.添加 SCKEY 到 Secrets** + +- 建立名为`SCKEY`的 secret,并添加获取的 SCKEY 值,即可开启Server酱推送 + +其他推送方式请参考对应官方文档获取 KEY 或 TOKEN 等参数,再添加到`Secrets`里。 + +## 🧬参数 + +在`Settings`-->`Secrets`里添加的参数,`Name`必须为下列的参数名称之一,`Value`则填写对应获取的值 + +| 参数名称 | 是否必填 | 默认值 | 说明 | +|--- |--- |--- |--- | +| COOKIE | ✅ | | 米游社的Cookie | +| SCKEY | ❌ | | Server酱推送所需的SCKEY | +| COOL_PUSH_SKEY | ❌ | | Cool Push推送所需的SKEY | +| COOL_PUSH_MODE | ❌ | send | Cool Push推送方式,可选群组(group)或者微信(wx) | +| BARK_KEY | ❌ | | Bark推送所需的BARK_KEY | +| BARK_SOUND | ❌ | healthnotification | Bark推送的铃声,在APP内查看铃声列表 | +| TG_BOT_TOKEN | ❌ | | Telegram Bot的TOKEN | +| TG_USER_ID | ❌ | | 接收通知消息的Telegram用户的ID | +| DD_BOT_TOKEN | ❌ | | 钉钉机器人的webhook KEY | +| DD_BOT_SECRET | ❌ | | 钉钉加签密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串 | +| WW_BOT_KEY | ❌ | | 企业微信机器人的webhook KEY | +| IGOT_KEY | ❌ | | iGot推送所需的KEY | +| PUSH_PLUS_TOKEN | ❌ | | pushplus一对一推送或一对多推送下面的Token | +| PUSH_PLUS_USER | ❌ | 一对一推送 | pushplus一对多推送的'群组编码' | + ## 🔨开发 -如果需要重构或增加额外功能参考以下数据 +如果需要重构或增加额外功能可参考以下数据: + +
+查看数据 ```python +# 角色信息 roles = Roles(cookie).get_roles() roles = { 'retcode': 0, @@ -172,6 +268,7 @@ roles = { } ``` ```python +# 签到信息 infos = Sign(cookie).get_info() infos = [ { @@ -187,16 +284,9 @@ infos = [ } } ] - ``` -## 🔔订阅 -若开启订阅推送,无论成功与否,都会收到微信通知。 - -- 使用 GitHub 登录 [sc.ftqq.com](http://sc.ftqq.com/?c=github&a=login) 创建账号 -- 点击「[发送消息](http://sc.ftqq.com/?c=code)」,获取`SCKEY` -- 点击「[微信推送](http://sc.ftqq.com/?c=wechat&a=bind)」,完成微信绑定 -- 建立名为`SCKEY`的 secret,并添加获取的 SCKEY 值,即可开启订阅推送 +
## ❗️协议