自动推送epic免费游戏到邮箱/Gotify

众所周知

  epic常年有免费游戏赠送,其中不乏一些大作,我可以不玩,但是必须喜加一!之前我通过RSS订阅,发现RSS作者偶尔也断更,我便做了一个python小脚本自动爬取epic的数据,推送到自己的邮箱/Gotify。

实际效果

邮件邮件 GotifyGotify

功能

  • 调用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,只需配置好自己的推送方式,它就能自动每天执行一次。具体步骤如下。

  1. fork上面的epic-free-push项目。
  2. 新建三个Action secrets:
    • ENV_VARS: 环境变量,用来推送消息,目前有两种方式(可以只用一种,也可以都用):
      • (新) Gotify方式
        • GOTIFY_URL: Gotify的服务地址
        • GOTIFY_TOKEN: Gotify app的token
      • 邮件方式
        • ADDRESS: 邮箱
        • CODE: SMTP授权码(SMTP授权码需要自己获取,qq邮箱请参考这里

ENV_VARSENV_VARS * GH_TOKEN: 新建一个github token,权限范围选择gist。 * GIST_ID: 新建一个gist,文件名输入passed.json,内容填入一个空数组[]。新建完成后复制url里的32位id。

  GH_TOKEN和GIST_ID用来操作gist存储已经推送过的游戏。

方法二: 自己的服务器

  如果你要在自己的服务器上使用,方法如下。

  1. 确保服务器已经安装Python 3.x
  2. 拉取代码:
    git clone git@github.com:yunyuyuan/epic-free-push.git cd epic-free-push pip install -r requirement.txt cp .env.sample .env
  3. 使用crontab配置每天执行一次:
    crontab -e
    增加下面的内容
    0 0 * * * /path/to/python /path/to/epic-free-push/main.py

以上两种方法二选一,完成后,如果有新上架的免费游戏,则会收到一条通知(邮件的发件人也是该邮箱,相当于自己发邮件给自己)。

此外

  有这种docker,可以自动下单免费游戏,我试过体验不好,授权登录epic后,第二天要再次授权,比较麻烦,估计是触发了epic的风控。

标签:python
1年前
0