Réclame les jeux gratuits périodiquement sur
Magasin de jeux épiques
Amazon Prime Gaming
Gog
MOTEUR UNRAL (ACTIONS) (Même connexion expérimentale que les jeux EPIC)
Tirez les demandes de bienvenue :)
Fonctionne sur Windows / MacOS / Linux.
Raspberry Pi (3, 4, zéro 2): nécessite un système d'exploitation 64 bits comme Raspberry Pi OS ou Ubuntu (Raspbian ne fonctionnera pas car il est 32 bits).
Option facile: installez docker (ou podman) et exécutez cette commande dans un terminal:
docker run --rm -it -p 6080:6080 -v fgc:/fgc/data --pull=always ghcr.io/vogler/free-games-claimer
Cela vous donne actuellement un défi CAPTCHA pour les jeux épiques. Jusqu'à ce que le numéro 183 soit résolu, il est recommandé d'exécuter node epic-games
sans Docker (voir ci-dessous).
Cela exécutera node epic-games; node prime-gaming; node gog
- Si vous voulez seulement réclamer des jeux pour l'un des magasins, vous pouvez remplacer la commande par défaut en ajoutant node epic-games
à la fin de la commande docker run
, ou si vous voulez plusieurs bash -c "node epic-games.js; node gog.js"
. Les données (y compris les fichiers JSON avec des jeux revendiqués, les codes à échanger, les captures d'écran) sont stockées dans le volume Docker fgc
.
Installer Node.js
Cloner / télécharger ce référentiel et cd
dans un terminal
Exécuter npm install
Exécutez pip install apprise
(ou utilisez PIPX si vous avez des problèmes) pour installer APPURING si vous voulez des notifications
Pour obtenir des mises à jour: git pull; npm install
Exécutez node epic-games
, node prime-gaming
, node gog
...
Pendant npm install
du dramatique téléchargera son Firefox sur un cache à domicile (DOC). Si vous manquez des dépendances pour le navigateur sur votre système, vous pouvez utiliser sudo npx playwright install firefox --with-deps
.
Si vous ne souhaitez pas utiliser Docker pour le mode quasi-tête, vous pouvez exécuter à l'intérieur d'une machine virtuelle, sur un serveur, ou vous réveillez votre PC la nuit pour éviter d'être interrompu.
Tous les scripts démarrent une instance Firefox automatisée, soit avec l'interface graphique du navigateur affichée, soit masquée ( mode sans tête ). Par défaut, vous ne verrez aucun navigateur ouvert sur votre système hôte.
Lors de l'exécution à l'intérieur de Docker, le navigateur ne sera affiché que dans le conteneur. Vous pouvez ouvrir http: // localhost: 6080 pour interagir avec le navigateur fonctionnant à l'intérieur du conteneur via Novnc (ou utiliser d'autres clients VNC sur le port 5900).
Lors de l'exécution des scripts à l'extérieur de Docker, le navigateur sera caché par défaut; Vous pouvez utiliser SHOW=1 ...
pour afficher l'interface utilisateur (voir les options ci-dessous).
Lorsque vous exécutez la première fois, vous devez vous connecter pour chaque magasin sur lequel vous souhaitez réclamer des jeux. Vous pouvez vous connecter indirectement via le terminal ou directement dans le navigateur. Les scripts attendront d'être connecté avec succès.
Il y aura des invites dans le terminal vous demandant de saisir les e-mails, le mot de passe et ensuite certains OTP (Code de mot de passe / sécurité unique) si vous avez activé 2FA / MFA (authentification à deux / multi-facteurs). Si vous souhaitez vous connecter via le navigateur, vous pouvez appuyer sur Escape dans le terminal pour sauter les invites.
Après la connexion, le script continuera de réclamer les jeux actuels. S'il attend toujours après que vous êtes déjà connecté, vous pouvez le redémarrer (et ouvrir un problème). Si vous exécutez régulièrement les scripts, vous ne devriez pas avoir à vous connecter à nouveau.
Les options sont définies via des variables d'environnement qui permettent une configuration flexible.
TODO: lors de la première exécution, le script vous guidera à travers la configuration et enregistre tous les paramètres sur data/config.env
. Vous pouvez modifier ce fichier directement ou exécuter node fgc config
pour exécuter à nouveau l'assistant de configuration.
Options / variables disponibles et leurs valeurs par défaut:
Option | Défaut | Description |
---|---|---|
MONTRER | 1 | Afficher le navigateur si 1. Par défaut pour Docker, non affiché lors de l'exécution à l'extérieur. |
LARGEUR | 1280 | Largeur du navigateur ouvert (et écran pour VNC dans Docker). |
HAUTEUR | 1280 | Hauteur du navigateur ouvert (et écran pour VNC dans Docker). |
Vnc_password | Mot de passe VNC pour Docker. Aucun mot de passe utilisé par défaut! | |
Aviser | Services de notification à utiliser (Pushover, Slack, Telegram ...), voir ci-dessous. Informer | |
Notify_title | Titre facultatif pour les notifications, par exemple pour Pushover. | |
Navigateur_dir | données / navigateur | Répertoire du profil du navigateur, par exemple pour plusieurs comptes. |
TEMPS MORT | 60 | Délai d'expiration pour toute action de page. Devrait être bien même sur les machines lentes. |
Login_timeout | 180 | Timeout pour la connexion en secondes. Attendra deux fois (Connexion manuelle invite +). |
E-mail par défaut pour toute connexion. | ||
MOT DE PASSE | Mot de passe par défaut pour toute connexion. | |
Eg_email | E-mail des jeux épiques pour la connexion. L'emporte sur e-mail. | |
Eg_password | Mot de passe des jeux épiques pour la connexion. Remplace le mot de passe. | |
Eg_otpkey | Epic Games MFA OTP Key. | |
Eg_parealpin | Épopée des jeux parentaux PIN. | |
Pg_email | Email de jeu de premier ordre pour la connexion. L'emporte sur e-mail. | |
Pg_password | Prime de mot de passe de jeu pour la connexion. Remplace le mot de passe. | |
Pg_otpkey | Prime Gaming MFA OTP Key. | |
Pg_redeem | 0 | Prime Gaming: Essayez de racheter les clés sur les magasins externes (expérimentaux). |
Pg_claimdlc | 0 | Prime Gaming: Essayez de revendiquer les DLC (expérimentaux). |
Gog_email | Courriel GOG pour la connexion. L'emporte sur e-mail. | |
Gog_password | Mot de passe GOG pour la connexion. Remplace le mot de passe. | |
Gog_newsletter | 0 | Ne vous désabonnez pas de newsletter après avoir réclamé un jeu si 1. |
Lg_email | Jeux hérités: e-mail à utiliser pour rachat (sinon réglé, par défaut à PG_EMail) |
Voir src/config.js
pour toutes les options.
Vous pouvez ajouter des options directement dans la commande ou les mettre dans un fichier à charger.
Vous pouvez transmettre des variables en utilisant -e VAR=VAL
, par exemple docker run -e [email protected] -e NOTIFY='tgram://bottoken/ChatID' ...
ou en utilisant --env-file fgc.env
où fgc.env
est un fichier sur votre système hôte (voir les documents). Vous pouvez également docker cp
votre fichier de configuration vers /fgc/data/config.env
dans le volume fgc
pour le stocker avec le reste des données plutôt que sur l'hôte (exemple). Si vous utilisez Docker Compose (ou Portainer, etc.), vous pouvez mettre des options dans l' environment:
section.
Sur Linux / MacOS, vous pouvez préfixer les variables que vous souhaitez définir, par exemple [email protected] SHOW=1 node epic-games
affichera le navigateur et sautera vous demandant votre e-mail de connexion. Sur Windows, vous devez utiliser set
, exemple. Vous pouvez également mettre des options dans data/config.env
qui seront chargées par DOTENV.
Les scripts essaieront d'envoyer des notifications pour les jeux réclamés avec succès et toutes les erreurs comme avoir besoin de se connecter ou de rencontrer CAPTCHAS (ne devrait pas se produire).
L'approvisionnement est utilisé pour les notifications et propose de nombreux services, notamment Pushover, Slack, Telegram, SMS, e-mail, bureau et notifications personnalisées. Il vous suffit de définir NOTIFY
sur les services de notification que vous souhaitez utiliser, par exemple NOTIFY='mailto://myemail:[email protected]' 'pbul://o.gn5kj6nfhv736I7jC3cj3QLRiyhgl98b'
- Reportez-vous à leur liste de services et d'exemples.
Si vous définissez les options d'e-mail, de mot de passe et de clé OTP, il n'y aura pas d'invites et les connexions ne devraient se produire automatiquement. Ceci est facultatif car tous les magasins doivent rester connectés car les cookies sont rafraîchis. Pour obtenir la clé OTP, il est plus facile de suivre le guide du magasin pour ajouter une application Authenticator. Vous devez également numériser le code QR indiqué avec votre application préférée pour avoir une autre méthode pour 2FA.
Jeux EPIC : Visitez le mot de passe et la sécurité, activez «l'application d'authentification tierce», copiez la «clé d'entrée manuelle» et utilisez-la pour définir EG_OTPKEY
.
Prime Gaming : Visitez Amazon «Votre compte› Connexion et sécurité », Vérification en 2 étapes› Gérer ›Ajouter une nouvelle application› Impossible de scanner le code-barres, copier la touche Bold et l'utiliser pour définir PG_OTPKEY
GOG : n'offre que OTP par e-mail
Méfiez-vous que le stockage des mots de passe et des clés OTP en tant que texte clair peut être un risque de sécurité. Utilisez un mot de passe unique / généré! TODO: Peut-être au moins offrir à Base64 Encode pour le stockage.
Exécutez node epic-games
(localement ou dans Docker).
Exécutez node prime-gaming
(localement ou dans Docker).
Prétendre que les jeux Amazon fonctionnent cependant à l'extérieur de la boîte, pour les jeux dans les magasins externes, vous devez soit lier votre compte ou échanger une clé.
Magasins qui nécessitent une liaison de compte: jeux épiques, bataille.net, origine.
Magasins qui nécessitent de racheter une clé: gog.com, jeux Microsoft, jeux hérités.
Les clés et les URL sont imprimées sur la console, incluses dans les notifications et enregistrées dans data/prime-gaming.json
. Une capture d'écran de la page avec la clé est également enregistrée sur data/screenshots
. TODO: Échangez les clés sur les magasins externes.
Les jeux épiques ont généralement deux jeux gratuits chaque semaine , avant Noël tous les jours. Prime Gaming a de nouveaux jeux chaque mois ou plus souvent pendant les premiers jours. GOG a généralement un nouveau jeu à chaque couple de semaines. Unreal Engine a de nouveaux actifs à réclamer tous les premiers mardi par mois .
Il est sûr d'exécuter les scripts tous les jours.
Le conteneur / scripts réclameront les jeux actuellement disponibles, puis quittent. Si vous voulez qu'il fonctionne régulièrement, vous devez planifier les courses vous-même:
Linux / macOS: crontab -e
(exemple)
macOS: Launchd
Windows: Task Scheduler (exemple), d'autres options ou simplement mettre la commande dans un fichier .bat
dans Autostart si vous redémarrez souvent ...
Tout système d'exploitation: utilisez un gestionnaire de processus comme PM2
Docker Compose command: bash -c "node epic-games; node prime-gaming; node gog; echo sleeping; sleep 1d"
Ajouter en outre restart: unless-stopped
.
TODO: Ajoutez du mode serveur où le script continue de fonctionner et revendique les jeux, par exemple chaque jour.
Vérifiez les problèmes ouverts et commentez-y ou ouvrez un nouveau problème.
Si vous êtes un développeur, vous pouvez utiliser PWDEBUG=1 ...
pour inspecter qui ouvre un débogueur où vous pouvez parcourir le script.
J'ai essayé EpicGames-FreeBies-Clainer, mais a eu des problèmes depuis que EpicGames a introduit HCAPTCHA (voir le numéro).
Joué avec Puppeteer auparavant, essayant maintenant de nouveaux https://playwright.dev, ce qui est assez similaire. L'inspecteur du dramaturge et codegen
pour générer des scripts sont sympas, mais n'ont pas réussi à générer le bon code pour cliquer sur un bouton dans un iframe.
Ajout de main.spec.ts qui était le script de test généré par npx playwright codegen
avec une correction manuelle pour cliquer sur les boutons dans le nom IFRAME créé. Peut être exécuté par npx playwright test
. Le Runner de test a des options --debug
et --timeout
et peut exécuter TypeScript, ce qui est bien. Cependant, cela n'a fonctionné qu'au bouton «Je suis d'accord», puis a montré un HCAPTCHA.
Ajout de main.captcha.js qui utilise la bêta de playwright-extra@next
et @extra/recaptcha@next
(à partir du commentaire sur Puppeteer-Extra). Cependant, playwright-extra
semble être ancien et manquant :has-text
(corrigé ici) et page.frameLocator
, de sorte que le script n'a pas fonctionné sans ajustements. En outre, la résolution via 2CAPTCHA est un service payant qui prend du temps et peut être peu fiable.
Ajout de main.stealth.js qui utilise le plugin furtif sans playwright-extra
wrapper mais à jour playwright
(de commentaire). Les évasions énumérées sont suffisantes pour ne pas afficher un hcaptcha. Le script a revendiqué le jeu avec succès en mode non sans tête.
Supprimé main.captcha.js
. L'utilisation du test du dramaturge ( main.spec.ts
) au lieu de la bibliothèque ( main.stealth.js
) a l'avantage d'une clib libre comme --debug
et --timeout
.
Les sélecteurs de bouton doivent de préférence utiliser du texte afin d'être plus stables par rapport aux modifications du DOM.
Renommé Repository de EpicGames-Claimer à Free-Games-Claimer, car un script pour Amazon Prime Gaming a également été ajouté. Supprimé tous les anciens scripts en faveur de Just epic-games.js
et prime-gaming.js
.
Jeux épiques: le mode headless
obtient HCAPTCHA Challenge. Plus de détails / références en cause.
# 11 a introduit un dockerfile pour l'exécution de non-tête à l'intérieur du conteneur via XVFB, ce qui le rend sans tête pour l'hôte exécutant le conteneur.
V1.0 Scripts autonomes Games épiques du nœud et banc de nœud à l'aide de chrome.
Changé pour Firefox pour tous les scripts, car le chrome a conduit à Captchas. Le prétendant a ensuite fonctionné en mode sans tête sans Docker.
Ajout d'options via Env Vars, configurable dans data/config.env
.
Ajout de la génération OTP via OTPLIB pour la connexion automatique, même avec 2FA.
Ajout de notifications via APPRING.
Logo avec un rapport d'aspect plus petit (pour le bot télégramme, etc.) :? - emojipedia