定期索赔免费游戏
史诗般的游戏商店
亚马逊主要游戏
GOG
虚幻引擎(资产)(实验,与史诗游戏相同)
欢迎拉请求:)
在Windows/MacOS/Linux上工作。
Raspberry Pi(3,4,零2):需要64位OS,例如Raspberry Pi OS或Ubuntu(Raspbian不起作用,因为它是32位)。
简单选择:安装Docker(或Podman),然后在终端运行此命令:
docker run --rm -it -p 6080:6080 -v fgc:/fgc/data --pull=always ghcr.io/vogler/free-games-claimer
目前,这给您带来了Epic-Games的验证赛挑战。在固定问题#183之前,建议仅在没有Docker的情况下运行node epic-games
(见下文)。
这将运行node epic-games; node prime-gaming; node gog
如果您只想为其中一家商店索取游戏,则可以通过在docker run
命令末尾附加EG node epic-games
来覆盖默认命令,或者如果您想要几个bash -c "node epic-games.js; node gog.js"
数据(包括带有声称的游戏的JSON文件,兑换代码,屏幕截图)存储在Docker卷fgc
中。
安装node.js
克隆/下载此存储库并在终端中cd
运行npm install
如果需要pip install apprise
获取更新: git pull; npm install
运行node epic-games
, node prime-gaming
, node gog
...
在npm install
期间,Playwright将其Firefox下载到Home(DOC)中的缓存。如果您缺少系统上浏览器的一些依赖项,则可以使用sudo npx playwright install firefox --with-deps
。
如果您不想将Docker用于准头模式,则可以在虚拟机,在服务器上运行,或者在晚上唤醒PC以避免被中断。
所有脚本都以自动化的Firefox实例启动,以显示或隐藏的浏览器GUI(无头模式)。默认情况下,您不会在主机系统上看到任何浏览器打开。
在Docker内部运行时,浏览器仅在容器内显示。您可以打开http:// localhost:6080,可以通过NOVNC在容器内运行的浏览器进行交互(或在端口5900上使用其他VNC客户端)。
在Docker之外运行脚本时,默认情况下将隐藏浏览器;您可以使用SHOW=1 ...
显示UI(请参见下面的选项)。
第一次运行时,您必须登录要要求游戏的每个商店。您可以通过终端或直接在浏览器中间接登录。脚本将等到您成功登录。
终端中会有提示,要求您输入电子邮件,密码和之后的某些OTP(一次密码/安全代码),如果您启用了2FA/MFA(二/多因素身份验证)。如果您想通过浏览器登录自己,则可以按终端中的逃生以跳过提示。
登录后,脚本将继续声称当前游戏。如果它仍然在登录后等待,则可以重新启动它(并打开问题)。如果您定期运行脚本,则不必再次登录。
通过环境变量设置选项,该变量允许灵活配置。
TODO:在第一次运行中,脚本将指导您进行配置,并将所有设置保存到data/config.env
。您可以直接编辑此文件或运行node fgc config
以再次运行配置助手。
可用的选项/变量及其默认值:
选项 | 默认 | 描述 |
---|---|---|
展示 | 1 | 显示浏览器如果1。docker的默认值,在室外运行时未显示。 |
宽度 | 1280 | 打开的浏览器的宽度(以及Docker中VNC的屏幕)。 |
高度 | 1280 | 打开的浏览器的高度(以及Docker中VNC的屏幕)。 |
vnc_password | Docker的VNC密码。默认情况下没有密码! | |
通知 | 要使用的通知服务(Pushover,Slack,Telegram ...),请参见下文。通知 | |
notify_title | 可选的通知标题,例如推销。 | |
browser_dir | 数据/浏览器 | 浏览器配置文件的目录,例如多个帐户。 |
暂停 | 60 | 任何页面操作的超时。即使在慢速机器上也应该很好。 |
login_timeout | 180 | 秒登录的超时。将等待两次(提示 +手动登录)。 |
电子邮件 | 任何登录名的默认电子邮件。 | |
密码 | 任何登录名的默认密码。 | |
eg_email | Epic Games电子邮件登录。覆盖电子邮件。 | |
eg_password | Epic Games登录密码。覆盖密码。 | |
eg_otpkey | Epic Games MFA OTP密钥。 | |
eg_parentalpin | Epic Games父母控制PIN。 | |
PG_Email | 登录的主要游戏电子邮件。覆盖电子邮件。 | |
PG_Password | 登录的主要游戏密码。覆盖密码。 | |
pg_otpkey | 主要游戏MFA OTP密钥。 | |
pg_redeem | 0 | 主要游戏:尝试在外部商店(实验)兑换密钥。 |
pg_claimdlc | 0 | 主要游戏:尝试要求DLC(实验)。 |
gog_email | GOG电子邮件登录。覆盖电子邮件。 | |
gog_password | 登录的GOG密码。覆盖密码。 | |
gog_newsletter | 0 | 在要求游戏1之后,请勿退订时事通讯。 |
LG_Email | 旧游戏:用于兑换的电子邮件(如果未设置,默认为PG_Email) |
有关所有选项,请参见src/config.js
。
您可以直接在命令中添加选项,也可以将它们放入加载文件中。
您可以使用-e VAR=VAL
传递变量,例如docker run -e [email protected] -e NOTIFY='tgram://bottoken/ChatID' ...
或使用--env-file fgc.env
其中fgc.env
是主机系统上的文件(请参阅文档)。您还可以docker cp
您的配置文件放在fgc
卷中的/fgc/data/config.env
中,以将其存储在其余数据中而不是在主机上(示例)。如果您使用的是Docker组成(或Portainer等),则可以在environment:
部分。
在Linux/MacOS上,您可以将要设置的变量前缀,例如[email protected] SHOW=1 node epic-games
将显示浏览器并跳过询问您登录电子邮件。在Windows上,您必须使用set
,例如。您还可以将选项放入Dotenv加载的data/config.env
中。
这些脚本将尝试发送有关成功索取的游戏的通知,以及任何需要登录或遇到验证码的错误(不应该发生)。
通知使用通知,并提供许多服务,包括Pushover,Slack,Telegram,SMS,电子邮件,桌面和自定义通知。您只需要将NOTIFY
设置为要使用的通知服务,例如NOTIFY='mailto://myemail:[email protected]' 'pbul://o.gn5kj6nfhv736I7jC3cj3QLRiyhgl98b'
请参阅其服务和示例列表。
如果您设置了电子邮件,密码和OTP密钥的选项,则不会有任何提示,并且应该自动发生登录。这是可选的,因为所有商店均应登录,因为饼干得到了刷新。为了获取OTP密钥,最容易遵循商店的指南添加Authenticator应用程序。您还应该使用您喜欢的应用程序扫描显示的QR码,以具有2FA的替代方法。
Epic Games :访问密码和安全性,启用“第三方身份验证器应用程序”,复制“手动输入键”,然后使用它设置EG_OTPKEY
。
Prime Gaming :访问Amazon“您的帐户›登录和安全”,2步验证›管理›添加新应用程序›无法扫描条形码,复制粗体键并使用它来设置PG_OTPKEY
GOG :仅通过电子邮件提供OTP
注意将密码和OTP键作为清晰文本可能是安全风险。使用唯一/生成的密码! TODO:也许至少提供给Base64编码以进行存储。
运行node epic-games
(本地或Docker中)。
运行node prime-gaming
(本地或在Docker中)。
但是,在外部商店上的游戏中,Amazon Games开箱即用,您需要链接帐户或兑换键。
需要帐户链接的商店:Epic Games,Battle.net,Origin。
需要赎回钥匙的商店:gog.com,Microsoft Games,Legacy Games。
键和URL被打印到通知中的控制台,并保存在data/prime-gaming.json
中。带有键的页面屏幕截图也可以保存到data/screenshots
中。 Todo:外部商店上的兑换密钥。
Epic Games通常每周在圣诞节前每周都有两个免费游戏。 Prime Gaming每个月或在黄金时期都有新游戏。 GOG通常每周的夫妻都会有一个新游戏。虚幻引擎有一个新资产可以要求每个月的第一个星期二索赔。
每天运行脚本是安全的。
容器/脚本将要求当前可用的游戏,然后退出。如果要定期运行,则必须自己安排运行:
Linux/MacOS: crontab -e
(示例)
MacOS:启动
Windows:Task Scheduler(示例),其他选项,或者仅将命令放入AutoStart中的.bat
文件中,如果您经常重新启动...
任何操作系统:使用PM2之类的过程管理器
Docker Compose command: bash -c "node epic-games; node prime-gaming; node gog; echo sleeping; sleep 1d"
另外添加restart: unless-stopped
。
TODO:添加一些服务器模式,脚本只能保持运行并要求游戏,例如每天。
检查公开问题并在那里发表评论或打开新问题。
如果您是开发人员,则可以使用PWDEBUG=1 ...
来检查打开调试器的打开,您可以在其中浏览脚本。
尝试了EpicGames Freebies-smaimer,但自EpicGames引入HCAPTCHA以来就遇到了问题(请参阅问题)。
之前与Puppeteer一起玩,现在尝试了更新的https://playwright.dev。剧作家Inspector和codegen
生成脚本很不错,但是未能生成正确的代码以单击IFRAME中的按钮。
添加了main.spec.ts,它是npx playwright codegen
生成的测试脚本,并使用手动修复程序来单击创建的iframe中的按钮。可以通过npx playwright test
执行。测试跑者具有选项--debug
and --timeout
,并且可以执行打字稿,这很好。但是,这只能按照“我同意”的按钮,然后显示一个hcaptcha。
添加了使用playwright-extra@next
和@extra/recaptcha@next
的main.captcha.js(来自puppeteer-extra上的注释)。但是, playwright-extra
似乎是旧的和缺少的:has-text
选择器(在此处修复)和page.frameLocator
,因此脚本没有在没有调整的情况下运行。同样,通过2captcha解决的是一项付费服务,需要时间,可能是不可靠的。
添加了Main.Stealth.js,它使用无playwright-extra
的隐形插件,但最新的playwright
(来自评论)。列出的逃避足以不显示HCAPTCHA。脚本以非头部模式成功声称游戏。
删除了main.captcha.js
。使用playwright Test( main.spec.ts
)代替库( main.stealth.js
)具有免费CLI的优势--debug
and --timeout
。
按钮选择器应最好使用文本,以便在DOM中更改更稳定。
从EpicGames-Camile到免费游戏声明的重命名库,因为还添加了Amazon Prime Gaming的脚本。删除了所有旧脚本,以支持epic-games.js
和prime-gaming.js
。
史诗游戏: headless
模式受到HCAPTCHA挑战。有关的更多详细信息/参考。
#11引入了一个Dockerfile,用于通过XVFB在容器内部的无头部运行,这使其无头用于运行容器的主机。
v1.0独立脚本节点epic-games和node prime-prime-prime-gaming使用铬。
自Chromium导致Captchas以来,所有脚本都更改为Firefox。声称当时也没有Docker在无头模式下工作。
通过env vars添加了选项,可在data/config.env
中配置。
即使使用2FA,也可以通过OTPLIB自动登录添加OTP生成。
通过通知添加了通知。
具有较小纵横比的徽标(用于电报机器人等):? - 表情夹