定期索賠免費遊戲
史詩般的遊戲商店
亞馬遜主要遊戲
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生成。
通過通知添加了通知。
具有較小縱橫比的徽標(用於電報機器人等):? - 表情夾