利用.NET 5和Github Action 自动执行米游社原神每日签到福利
背景
众所周知,原神的签到福利是需要下载app才可以领取的。但像我这种一般不怎么刷论坛的人,每天点开app签到很麻烦。
很多大佬利用Github的Action自动执行的模式,实现了很多好东西。加上.net 5平台刚刚发布,因此才有这个项目
项目链接
https://github.com/yinghualuowu/GenshinDailyHelper
签到逻辑
根据米游社的抓包记录,签到逻辑如下
- 绑定角色(获取角色信息)
- 查询是否签到
- 执行签到
获取角色接口
binding/api/getUserGameRolesByCookie?
这个接口将返回账户角色信息,重要的有角色区域,角色 uid,角色昵称,角色等级
查询签到情况
event/bbs_sign_reward/info?
如果已经签到则不执行签到,虽然允许重复签到。
执行签到
event/bbs_sign_reward/sign?
注意:执行签到需要带上x-rpc-device_id,不然会提示请到APP进行签到
接口返回码参考
/// <summary>
/// 判断返回码并延迟
/// </summary>
/// <returns></returns>
public virtual string CheckOutCodeAndSleep()
{
Random ran = new Random();
int randKey = ran.Next(500, 2000);
Thread.Sleep(randKey);
// -1还是-100表示登录失败
switch (Retcode)
{
case 0:return "执行成功";
case -5003:return "已经签到";
default:throw new GenShinException($"请求异常{Message}");
}
}
Action执行逻辑
在.github/workflows中,主要配置了有
name: genshenDailyChekin on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch: # 手动触发
schedule: # 计划任务触发
- cron: '10 16 * * *' # cron表达式,Actions时区是UTC时间,所以要往前推8个小时,如上表示每天0点10分 jobs:
build: runs-on: ubuntu-latest steps:
- uses: actions/checkout@v2 # 设置服务器时区为东八区
- name: Set time zone
run: sudo timedatectl set-timezone 'Asia/Shanghai' - name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.100 - name: Install dependencies
run: dotnet restore - name: Build
run: dotnet build --configuration Release --no-restore - name: Run
env:
Cookie: ${{secrets.Cookie}}
run: dotnet run -p ./GenshinDailyHelper ${Cookie}
Cookie抓取
- 通过浏览器登录米哈游论坛 https://bbs.mihoyo.com/ys/
- 按
F12,打开开发者工具 -> Network点击进入 - 刷新网页,找到以下的位置,复制Cookie后放在记事本或其它可以保存的地方
代码实现
代码主要由HttpClient进行请求,实现较为简单。并没有有意处理异常。
/// <summary>
/// 对外做出请求
/// </summary>
/// <param name="uri">请求接口</param>
/// <param name="method">请求方式</param>
/// <param name="content">请求数据实体</param>
/// <returns>返回实体对象<see cref="T"/></returns>
private async Task<T> ExecuteRequest<T>(Uri uri, HttpMethod method, HttpContent content = null)
{
using var requestMessage = BuildHttpRequestMessage(uri, method, content); var response = await Client.SendAsync(requestMessage); var rawResult = await response.Content.ReadAsStringAsync(); var result = JsonConvert.DeserializeObject<T>(rawResult); return result;
}
利用.NET 5和Github Action 自动执行米游社原神每日签到福利的更多相关文章
- 利用Github Action和.Net 5 自动执行米游社原神每日签到福利
GenshinDailyHelper 原神的签到福利是需要单独下载APP进行才可以领取,并且每天需要打卡,虽然奖励并不是很可观,但有一些摩拉,食材和可观的经验书累计起来还是挺有吸引力的.可能本身不怎么 ...
- 利用腾讯云函数部署.Net 5米游社原神每日签到功能
自从GitHub批量禁止滥用Action功能后,项目不得不考虑另外方案执行应用.其中腾讯云函数被大家作为不错的选择(虽然马上也要收费了). 但对于.Net的部署目前资源很少,而且我也没学过bash.在 ...
- 使用Github Action自动填写疫情通
使用Github Action自动填写疫情通 西电晨午晚检一天三次,通过企业号功能进行填写.实际上,西电企业号大部分功能是以网页模式工作的,通过构造connection发送合适的request,设置计 ...
- hexo配合github action 自动构建(多种形式)
已经使用HEXO正常构建GitHub页面 根据github action 给hexo配置自动部署github page 前往墨抒颖的个人网站查看纯净版 1. 为仓库设置访问密钥 第一步先生成密钥,打开 ...
- 利用spring实现服务启动就自动执行某些操作的2种方式
第一种方式,用bean的init-method属性 <bean class="com.emax.paycenter.log.LogBridge" init-method=&q ...
- 5 分钟教你快速掌握 GitHub Actions 自动部署博客
自从 GitHub 宣布 GitHub Actions 在平台上对所有开发人员和存储库可用以来,GitHub Actions 越来越受欢迎.很多第三方平台在生态系统中有速度等限制,将进一步推动开发人员 ...
- github action 实现CI/CD
两种github action 打包.Net Core 项目docker镜像推送到阿里云镜像仓库 1.GitHub Actions 是什么? 大家知道,持续集成由很多操作组成,比如抓取代码.运行测试. ...
- 利用Github Action实现Tornadofx/JavaFx打包
原文地址: 利用Github Action实现Tornadofx/JavaFx打包 - Stars-One的杂货小窝 最近开了个新项目,主要是个工具软件,也算个人的自娱自乐吧,也算开源的一部分,想着都 ...
- 利用 Github Actions 自动更新 docfx 文档
利用 Github Actions 自动更新 docfx 文档 Intro docfx 是微软出品一个 .NET API 文档框架,有一个理念是代码即文档,会根据项目代码自动生成 API 文档,即使没 ...
随机推荐
- day37 Pyhton 网络编程04
# tcp协议和udp协议的选择问题 # tcp # 大量的连续的数据 传递文件\发送邮件 # 文件的传递 # 下载电影 # udp # 短消息类 社交软件 # qq 微信 # 在线播放视频 快会丢帧 ...
- 性能测试-CPU瓶颈分析的思路
CPU(中央处理器),是电子计算机的主要设备之一,电脑中的核心配件.CPU作为计算机系统的运算和控制核心,是信息处理.程序运行的最终执行单元.CPU的功效主要为处理指令.执行操作.控制时间.处理数据. ...
- spring boot:用spring security加强druid的安全(druid 1.1.22 / spring boot 2.3.3)
一,druid的安全保障有哪些环节要注意? 1,druid ui的访问要有ip地址限制 2,用户必须要有相应的权限才能访问druid 3,关闭重置功能 说明:stat-view-servlet.url ...
- spring boot:使mybatis访问多个druid数据源(spring boot 2.3.2)
一,为什么要使用多个数据源? 1,什么情况下需要使用多个数据源? 当我们需要访问不同的数据库时,则需要配置配置多个数据源, 例如:电商的业务数据库(包括用户/商品/订单等) 和统 ...
- NCEP数据资料获取 地面抬升指数
先放上数据地址:https://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis.surface.html 美国国家环境预报中心(NCEP ...
- C#Socket通讯(2)
前言 前面已经把游戏的服务端UI搭起来来了,现在需要实现的就是编写服务端控制器与客户端的代码,实现服务端与客户端的数据传输,并将传输情况显示在服务端的UI上 服务端控制器完整代码 private st ...
- GitHub如何删除项目库Repositories
1.在头像那里找到settings按钮 2.选择repositories 3.找到你要删除的项目 4.点击settings 5.滑到页面最下面,点击delete 7.输入项目名称,复制即可 8.删除后 ...
- toolbox docker国内镜像(阿里云加速器)
docker-machine create --engine-registry-mirror=加速地址 -d virtualbox default# 若虚拟机已经创建好docker-machine s ...
- JVM内存管理和垃圾回收
无论对于Java程序员还是大数据研发人员,JVM是必须掌握的技能之一.既是面试中经常问的问题,也是在实际业务中对程序进行调优.排查类似于内存溢出.栈溢出.内存泄漏等问题的关键.笔者将按下图分多篇文章详 ...
- 010_Markdown学习
目录 Markdown学习 标题 三级标题 四级标题 五级标题 六级标题 字体 引用 分割线 图片 超链接 列表 表格 代码 Markdown学习 标题 三级标题 四级标题 五级标题 六级标题 字体 ...