定期的に無料ゲームを主張します
壮大なゲームストア
Amazon Prime Gaming
ゴグ
Unreal Engine(Assets)(実験的、壮大なゲームと同じログイン)
リクエストをプル歓迎:)
Windows/MacOS/Linuxで動作します。
Raspberry Pi(3、4、ゼロ2):Raspberry Pi OSやUbuntuなどの64ビットOSが必要です(32ビットであるため、Raspbianは機能しません)。
簡単なオプション:Docker(またはPodman)をインストールし、このコマンドを端末で実行します。
docker run --rm -it -p 6080:6080 -v fgc:/fgc/data --pull=always ghcr.io/vogler/free-games-claimer
これは現在、壮大なゲームのCaptchaチャレンジを提供します。号#183が修正されるまで、Dockerなしでnode epic-games
実行することをお勧めします(以下を参照)。
これにより、 node epic-games; node prime-gaming; node gog
ストアのいずれかのゲームのみを請求したい場合は、 docker run
コマンドの最後にnode epic-games
追加するか、複数のbash -c "node epic-games.js; node gog.js"
必要な場合に、デフォルトコマンドをオーバーライドできます。 bash -c "node epic-games.js; node gog.js"
。データ(クレームされたゲームを備えたJSONファイル、償還コード、スクリーンショットを含む)は、Dockerボリュームfgc
に保存されます。
node.jsをインストールします
クローン/このリポジトリとcd
を端末にダウンロードします
npm install
実行します
pip install apprise
実行します(または問題がある場合はPIPXを使用します)通知が必要な場合はAppriseをインストールします
更新を取得するには: git pull; npm install
node epic-games
、 node prime-gaming
、 node gog
実行します...
npm install
中に、PlaywrightはFirefoxを自宅のキャッシュ(doc)にダウンロードします。システム上のブラウザの依存関係が不足している場合は、 sudo npx playwright install firefox --with-deps
を使用できます。
dockerをquasi-headlessモードに使用したくない場合は、サーバー上で仮想マシン内で実行するか、中断されないように夜間にPCを覚ますことができます。
すべてのスクリプトは、ブラウザGUIが表示されるか非表示(ヘッドレスモード)で自動化されたFirefoxインスタンスを開始します。デフォルトでは、ホストシステムでブラウザが開いていることはありません。
Docker内で実行すると、ブラウザはコンテナ内にのみ表示されます。 http:// localhost:6080を開いて、novncを介してコンテナ内で実行されているブラウザと対話できます(または、ポート5900で他のVNCクライアントを使用します)。
Dockerの外側でスクリプトを実行すると、ブラウザはデフォルトで非表示になります。 SHOW=1 ...
使用してUIを表示できます(以下のオプションを参照)。
初めて実行するときは、ゲームを請求する各ストアにログインする必要があります。ターミナルを介して、またはブラウザで直接ログインできます。スクリプトは、あなたが正常にログインするまで待ちます。
端末には、電子メール、パスワードの入力を求めるプロンプトがあり、その後、2FA/MFA(2-/Multi-Factor認証)が有効になっている場合、OTP(1回のパスワード/セキュリティコード)があります。ブラウザを介して自分でログインする場合は、端末でEscapeを押してプロンプトをスキップできます。
ログイン後、スクリプトは現在のゲームを請求し続けます。すでにログインしていた後も待っている場合は、再起動することができます(問題を開きます)。スクリプトを定期的に実行する場合は、再度ログインする必要はありません。
オプションは、柔軟な構成を可能にする環境変数を介して設定されます。
TODO:最初の実行では、スクリプトは構成をガイドし、すべての設定をdata/config.env
に保存します。このファイルを直接編集するか、 node fgc config
を実行して構成アシスタントを再度実行できます。
利用可能なオプション/変数とそのデフォルト値:
オプション | デフォルト | 説明 |
---|---|---|
見せる | 1 | dockerのデフォルトの場合はブラウザを表示します。外部で走るときは表示されません。 |
幅 | 1280 | 開いたブラウザの幅(およびDockerのVNCの画面)。 |
身長 | 1280 | 開いたブラウザの高さ(およびDockerのVNCの画面の)。 |
vnc_password | DockerのVNCパスワード。デフォルトで使用されるパスワードはありません! | |
通知します | 使用する通知サービス(プッシュオーバー、スラック、テレグラム...)、以下を参照してください。評価 | |
notify_title | 通知のオプションのタイトル、たとえばプッシュオーバーの場合。 | |
browser_dir | データ/ブラウザ | ブラウザプロファイルのディレクトリ、複数のアカウントの場合。 |
タイムアウト | 60 | 任意のページアクションのタイムアウト。スローマシンでも問題ないはずです。 |
login_timeout | 180 | 数秒でログインするためのタイムアウト。 2回待つ(プロンプト +マニュアルログイン)。 |
メール | 任意のログインのデフォルトの電子メール。 | |
パスワード | 任意のログインのデフォルトパスワード。 | |
eg_email | ログイン用の壮大なゲームメール。メールをオーバーライドします。 | |
eg_password | ログイン用の壮大なゲームパスワード。パスワードをオーバーライドします。 | |
eg_otpkey | Epic Games MFA OTPキー。 | |
eg_parentalpin | 壮大なゲームParental Controls PIN。 | |
PG_EMAIL | ログイン用のプライムゲームメール。メールをオーバーライドします。 | |
pg_password | ログイン用のプライムゲームパスワード。パスワードをオーバーライドします。 | |
pg_otpkey | プライムゲームMFA OTPキー。 | |
pg_redem | 0 | Prime Gaming:外部店でキーを引き換えてみてください(実験的)。 |
PG_CLAIMDLC | 0 | プライムゲーム:DLCS(実験)を請求してみてください。 |
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
はホストシステムのファイルです(ドキュメントを参照)。また、 fgc
ボリュームで構成ファイルを/fgc/data/config.env
にdocker cp
にdockerすることもできます。 Docker Compose(またはPortainerなど)を使用している場合は、 environment:
セクション。
Linux/macosでは、設定する変数をプレフィックスできます。たとえば、 [email protected] SHOW=1 node epic-games
ブラウザを表示し、ログインメールを尋ねるスキップです。 Windowsでは、 set
、例を使用する必要があります。 dotenvによってロードされるdata/config.env
にオプションを配置することもできます。
スクリプトは、ログインしたり、キャプチャと遭遇したりする必要があるなど、正常に請求されたゲームやエラーのために通知を送信しようとします(起こらないはずです)。
Appriseは通知に使用され、Pushover、Slack、Telegram、SMS、電子メール、デスクトップ、カスタム通知など、多くのサービスを提供します。使用する通知サービスにNOTIFY
設定する必要があります。たとえば、 NOTIFY='mailto://myemail:[email protected]' 'pbul://o.gn5kj6nfhv736I7jC3cj3QLRiyhgl98b'
- サービスと例のリストを参照してください。
電子メール、パスワード、OTPキーのオプションを設定すると、プロンプトがなく、ログインは自動的に発生する必要があります。 Cookieが更新されているため、すべての店舗がログインする必要があるため、これはオプションです。 OTPキーを取得するには、Authenticatorアプリを追加するためのストアのガイドに従うのが最も簡単です。また、お気に入りのアプリで表示されているQRコードをスキャンして、2FAの代替方法を用意する必要があります。
EPICゲーム:パスワードとセキュリティにアクセスし、「サードパーティの認証者アプリ」を有効にし、「マニュアルエントリキー」をコピーして、 EG_OTPKEY
設定するために使用します。
プライムゲーム:Amazonにアクセスしてください「アカウント›ログインとセキュリティ」、2段階検証›管理›管理›新しいアプリの追加›バーコードをスキャンできない、太字キーをコピーしてPG_OTPKEY
設定するために使用します
GOG :電子メールでOTPのみを提供します
パスワードとOTPキーをクリアテキストとして保存することは、セキュリティリスクである可能性があることに注意してください。一意/生成されたパスワードを使用してください! TODO:少なくともストレージのためにBase64エンコードを提供するかもしれません。
node epic-games
(ローカルまたはDocker)を実行します。
node prime-gaming
(ローカルまたはDocker)を実行します。
ただし、Amazonゲームはすぐに機能すると主張していますが、外部ストアのゲームでは、アカウントをリンクするか、キーを引き換える必要があります。
アカウントのリンクを必要とするストア:Epic Games、Battle.net、Origin。
キーを償還する必要がある店:GOG.com、Microsoft Games、Legacy Games。
キーとURLはコンソールに印刷され、通知に含まれ、 data/prime-gaming.json
に保存されます。キーを備えたページのスクリーンショットもdata/screenshots
に保存されます。 TODO:外部店でキーを引き換えます。
壮大なゲームには、通常、毎週クリスマスの前に2つの無料ゲームがあります。 Prime Gamingには、毎月またはプライムデイズ中に新しいゲームがあります。 Gogには通常、1週間のカップルごとに1つの新しいゲームがあります。 Unreal Engineには、 1か月の最初の火曜日ごとに請求する新しい資産があります。
毎日スクリプトを実行しても安全です。
コンテナ/スクリプトは、現在利用可能なゲームを請求してから終了します。定期的に実行したい場合は、自分で実行をスケジュールする必要があります。
Linux/macos: crontab -e
(例)
macos:launchd
Windows:タスクスケジューラ(例)、その他のオプション、または頻繁に再起動する場合は、CommandをAutoStartの.bat
ファイルに配置します...
任意のOS: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-Claimerを試しましたが、EpicGamesがHcaptchaを導入してから問題がありました(問題を参照)。
以前に操り人形師と遊んで、今では新しいhttps://playwright.devを試してみましたが、これはかなり似ています。 Playwright Inspectorとcodegen
スクリプトを生成しますが、IFrameでボタンをクリックするための適切なコードを生成できませんでした。
npx playwright codegen
によって生成されたテストスクリプトであるMain.spec.tsを追加しました。 npx playwright test
で実行できます。テストランナーにはオプションがあります--debug
と--timeout
、素晴らしいタイプスクリプトを実行できます。しかし、これは「私は同意する」ボタンに合わせてうまくいき、その後Hcaptchaを示しました。
playwright-extra@next
および@extra/recaptcha@next
(pupereteer-extraのコメントから)を使用するmain.captcha.jsを追加しました。ただし、 playwright-extra
古くて欠落しているように見えます:has-text
Selector(ここに固定)とpage.frameLocator
を使用するため、スクリプトは調整なしで実行されませんでした。また、2captcha経由で解決することは、時間がかかり、信頼できない可能性がある有料サービスです。
playwright-extra
ラッパーなしでステルスプラグインを使用しているが、最新のplaywright
(コメントから)を追加したmain.stealth.jsを追加しました。リストされている回避は、hcaptchaを表示しないのに十分です。スクリプトは、非ヘッドレスモードでゲームを正常に主張しました。
main.captcha.js
を削除しました。ライブラリ( main.stealth.js
)の代わりにPlaywrightテスト( main.spec.ts
)を使用すると、 --debug
や--timeout
などの無料のCLIの利点があります。
ボタンセレクターは、DOMの変化に対してより安定するために、テキストを使用することが望ましいです。
Amazon Prime Gamingのスクリプトも追加されたため、EpicGames-ClaimerからFree-Games-Claimerにリポジトリに変更されました。 epic-games.js
とprime-gaming.js
だけを支持して、すべての古いスクリプトを削除しました。
壮大なゲーム: headless
モードはHcaptchaチャレンジを取得します。問題の詳細/参照。
#11は、XVFBを介してコンテナ内で非ヘッドレスを実行するためのDockerFileを導入しました。
v1.0スタンドアロンスクリプトノード叙事詩ゲームとクロムを使用したノードプライムゲーム。
ChromiumがCaptchasにつながったため、すべてのスクリプトのFirefoxに変更しました。主張すると、Dockerなしでヘッドレスモードでも機能しました。
data/config.env
で構成可能なenv varsを介してオプションを追加しました。
2FAであっても、自動ログインのためにOTPLIBを介してOTP生成を追加しました。
Appriseを介して通知を追加しました。
より小さなアスペクト比のロゴ(電報ボットなどの場合):? - エモジペディア