众所周知
epic常年有免费游戏赠送,其中不乏一些大作,我可以不玩,但是必须喜加一!之前我通过RSS订阅,发现RSS作者偶尔也断更,我便做了一个python小脚本自动爬取epic的数据,推送到自己的邮箱/Gotify。
实际效果
邮件
Gotify
功能
- 调用epic官方接口,获取免费游戏列表。目前是https://store-site-backend-static-ipv4.ak.epicgames.com/freeGamesPromotions?locale=zh-CN&country=CN&allowCountries=CN。
- 自动剔除已推送过的游戏,不会重复推送。
- 若之前推送的游戏是
未开始
状态,那么游戏在开始免费时,会再推送一次进行中
。进行中
的游戏可以领取。 - 点击游戏标题,直接跳转到游戏详情。
使用方式
代码地址: https://github.com/yunyuyuan/epic-free-push。
方法一: Github Actions(推荐)
Github Actions提供代码执行功能(每月免费使用2000分钟),我写了一个action,只需配置好自己的推送方式,它就能自动每天执行一次。具体步骤如下。
- fork上面的epic-free-push项目。
- 新建三个Action secrets:
- ENV_VARS: 环境变量,用来推送消息,目前有两种方式(可以只用一种,也可以都用):
- GH_TOKEN: 新建一个github token,权限范围选择gist。
- GIST_ID: 新建一个gist,文件名输入
passed.json
,内容填入一个空数组[]
。新建完成后复制url里的32位id。
GH_TOKEN和GIST_ID用来操作gist存储已经推送过的游戏。
方法二: 自己的服务器
如果你要在自己的服务器上使用,方法如下。
- 确保服务器已经安装
Python 3.x
。 - 拉取代码:
git clone git@github.com:yunyuyuan/epic-free-push.git cd epic-free-push pip install -r requirement.txt cp .env.sample .env
- 使用crontab配置每天执行一次:
增加下面的内容crontab -e
0 0 * * * /path/to/python /path/to/epic-free-push/main.py
以上两种方法二选一,完成后,如果有新上架的免费游戏,则会收到一条通知(邮件的发件人也是该邮箱,相当于自己发邮件给自己)。
此外
有这种docker,可以自动下单免费游戏,我试过体验不好,授权登录epic后,第二天要再次授权,比较麻烦,估计是触发了epic的风控。