Reclamos juegos gratuitos periódicamente en
Tienda de juegos épicos
Amazon Prime Gaming
Gog
Unreal Engine (activos) (experimental, el mismo inicio de sesión que los juegos épicos)
Solicitudes de atracción bienvenida :)
Funciona en Windows/MacOS/Linux.
Raspberry Pi (3, 4, cero 2): requiere un sistema operativo de 64 bits como Raspberry Pi OS o Ubuntu (Raspbian no funcionará ya que son de 32 bits).
Opción fácil: instalar Docker (o Podman) y ejecutar este comando en un terminal:
docker run --rm -it -p 6080:6080 -v fgc:/fgc/data --pull=always ghcr.io/vogler/free-games-claimer
Actualmente, esto le brinda un desafío Captcha para los juegos épicos. Hasta que se solucione el problema #183, se recomienda ejecutar node epic-games
sin Docker (ver más abajo).
Esto ejecutará node epic-games; node prime-gaming; node gog
: si solo desea reclamar juegos para una de las tiendas bash -c "node epic-games.js; node gog.js"
puede anular el comando predeterminado agregando EG node epic-games
al final del comando docker run
Ej. bash -c "node epic-games.js; node gog.js"
Los datos (incluidos los archivos JSON con juegos reclamados, códigos para canjear, capturas de pantalla) se almacenan en el volumen de Docker fgc
.
Instalar node.js
Clon/descargar este repositorio y cd
en él en un terminal
Ejecutar npm install
Ejecute pip install apprise
(o use PIPX si tiene problemas) para instalar Aprise si desea notificaciones
Para obtener actualizaciones: git pull; npm install
Ejecutar node epic-games
, node prime-gaming
, node gog
...
Durante npm install
Playwright descargará su Firefox a un caché en el hogar (DOC). Si le faltan algunas dependencias para el navegador de su sistema, puede usar sudo npx playwright install firefox --with-deps
.
Si no desea usar Docker para el modo casi sin cabeza, podría ejecutar dentro de una máquina virtual, en un servidor, o despierta su PC por la noche para evitar ser interrumpido.
Todos los scripts inician una instancia automatizada de Firefox, ya sea con la GUI del navegador que se muestra o oculta ( modo sin cabeza ). Por defecto, no verá ningún navegador abierto en su sistema de host.
Cuando se ejecute dentro de Docker, el navegador se mostrará solo dentro del contenedor. Puede abrir http: // localhost: 6080 para interactuar con el navegador que se ejecuta dentro del contenedor a través de novnc (o usar otros clientes VNC en el puerto 5900).
Al ejecutar los scripts fuera de Docker, el navegador estará oculto de forma predeterminada; Puede usar SHOW=1 ...
para mostrar la interfaz de usuario (vea las opciones a continuación).
Al ejecutar la primera vez, debe iniciar sesión para cada tienda en la que desea reclamar juegos. Puede iniciar sesión indirectamente a través del terminal o directamente en el navegador. Los scripts esperarán hasta que haya iniciado sesión con éxito.
Habrá indicaciones en el terminal que le pedirá que ingrese correo electrónico, contraseña y luego algunos OTP (contraseña de seguridad/código de seguridad) si tiene habilitado 2FA/MFA (autenticación de dos factores múltiples). Si desea iniciar sesión a través del navegador, puede presionar Escape en la terminal para omitir las indicaciones.
Después de iniciar sesión, el script continuará reclamando los juegos actuales. Si todavía espera después de que ya haya iniciado sesión, puede reiniciarlo (y abrir un problema). Si ejecuta los scripts regularmente, no debería tener que iniciar sesión nuevamente.
Las opciones se establecen a través de variables de entorno que permiten una configuración flexible.
TODO: En la primera ejecución, el script lo guiará a través de la configuración y guardará todas las configuraciones en data/config.env
. Puede editar este archivo directamente o ejecutar node fgc config
para ejecutar el Asistente de configuración nuevamente.
Opciones/variables disponibles y sus valores predeterminados:
Opción | Por defecto | Descripción |
---|---|---|
ESPECTÁCULO | 1 | Mostrar el navegador si 1. Predeterminado para Docker, no se muestra cuando se ejecuta afuera. |
ANCHO | 1280 | Ancho del navegador abierto (y de la pantalla para VNC en Docker). |
ALTURA | 1280 | Altura del navegador abierto (y de la pantalla para VNC en Docker). |
VNC_Password | Contraseña VNC para Docker. ¡No se usa la contraseña de forma predeterminada! | |
NOTIFICAR | Servicios de notificación para usar (empuje, holgura, telegrama ...), ver a continuación. Informar | |
Notify_title | Título opcional para notificaciones, por ejemplo, para impulsar. | |
Navegador_dir | datos/navegador | Directorio para el perfil del navegador, por ejemplo, para múltiples cuentas. |
SE ACABÓ EL TIEMPO | 60 | Tiempo de espera para cualquier acción de página. Debe estar bien incluso en máquinas lentas. |
Login_timeout | 180 | Tiempo de espera para iniciar sesión en segundos. Esperará dos veces (aviso + inicio de sesión manual). |
CORREO ELECTRÓNICO | Correo electrónico predeterminado para cualquier inicio de sesión. | |
CONTRASEÑA | Contraseña predeterminada para cualquier inicio de sesión. | |
Por ejemplo | Correo electrónico de juegos épicos para iniciar sesión. Anula el correo electrónico. | |
EG_Password | Contraseña de juegos épicos para iniciar sesión. Anula la contraseña. | |
Eg_otpkey | Juegos épicos MFA OTP Key. | |
Eg_parentalpin | Juegos épicos Pin de controles de los padres. | |
Pg_email | Prime juego de correo electrónico para iniciar sesión. Anula el correo electrónico. | |
PG_Password | Primera contraseña de juegos para iniciar sesión. Anula la contraseña. | |
PG_OTPKEY | Prime Gaming MFA OTP Key. | |
PG_REDEEM | 0 | Prime Gaming: intente canjear claves en tiendas externas (experimental). |
Pg_claimdlc | 0 | Prime Gaming: intente reclamar DLC (experimental). |
Gog_email | Correo electrónico de GOG para iniciar sesión. Anula el correo electrónico. | |
Gog_password | Contraseña de GOG para iniciar sesión. Anula la contraseña. | |
Gog_newsletter | 0 | No se dé cuenta del boletín después de reclamar un juego si 1. |
Lg_email | Legacy Games: correo electrónico para usar para canjear (si no está configurado, predeterminado a PG_EMAIL) |
Consulte src/config.js
para todas las opciones.
Puede agregar opciones directamente en el comando o ponerlas en un archivo para cargar.
Puede aprobar variables usando -e VAR=VAL
, por ejemplo docker run -e [email protected] -e NOTIFY='tgram://bottoken/ChatID' ...
o usando --env-file fgc.env
donde fgc.env
es un archivo en su sistema de host (ver documentos). También puede docker cp
su archivo de configuración a /fgc/data/config.env
en el volumen fgc
para almacenarlo con el resto de los datos en lugar de en el host (ejemplo). Si está utilizando Docker Compose (o Portainer, etc.), puede poner opciones en el environment:
sección.
En Linux/MacOS puede prefijo las variables que desea establecer, por ejemplo, [email protected] SHOW=1 node epic-games
mostrará el navegador y saltea pedirle su correo electrónico de inicio de sesión. En Windows debe usar set
, ejemplo. También puede poner las opciones en data/config.env
que se cargará por Dotenv.
Los scripts intentarán enviar notificaciones para juegos reclamados con éxito y cualquier error como necesitar iniciar sesión o encontrar Captchas (no debería suceder).
La información se utiliza para notificaciones y ofrece muchos servicios, incluidos Pushver, Slack, Telegram, SMS, correo electrónico, escritorio y notificaciones personalizadas. Solo necesita establecer NOTIFY
en los servicios de notificación que desea usar, por ejemplo, NOTIFY='mailto://myemail:[email protected]' 'pbul://o.gn5kj6nfhv736I7jC3cj3QLRiyhgl98b'
- Consulte su lista de servicios y ejemplos.
Si establece las opciones de correo electrónico, contraseña y clave OTP, no habrá indicaciones y los inicios de sesión deben ocurrir automáticamente. Esto es opcional ya que todas las tiendas deben permanecer conectadas ya que las cookies se actualizan. Para obtener la clave OTP, es más fácil seguir la guía de la tienda para agregar una aplicación de autenticador. También debe escanear el código QR mostrado con su aplicación favorita para tener un método alternativo para 2FA.
Juegos épicos : visite Password & Security, habilite 'Aplicación de autenticador de terceros', copie la 'clave de entrada manual' y úsela para establecer EG_OTPKEY
.
Prime Gaming : Visite Amazon 'su cuenta ›Iniciar sesión y seguridad', Verificación de 2 pasos› Administrar ›Agregar nueva aplicación› No se puede escanear el código de barras, copiar la tecla Bold y usarla para configurar PG_OTPKEY
GOG : Solo ofrece OTP por correo electrónico
Tenga cuidado de que almacenar contraseñas y claves OTP como texto claro puede ser un riesgo de seguridad. ¡Use una contraseña única/generada! TODO: Tal vez al menos ofrecer a Base64 codifica para el almacenamiento.
Ejecute node epic-games
(localmente o en Docker).
Ejecute node prime-gaming
(localmente o en Docker).
Sin embargo, reclamar los Juegos de Amazon funciona fuera de la caja, para los juegos en tiendas externas, debe vincular su cuenta o canjear una clave.
Tiendas que requieren enlace de cuenta: Epic Games, Battle.net, origen.
Tiendas que requieren redimir una clave: Gog.com, Microsoft Games, Legacy Games.
Las claves y las URL se imprimen en la consola, incluidas en las notificaciones y se guardan en data/prime-gaming.json
. Una captura de pantalla de la página con la clave también se guarda en data/screenshots
. TODO: redimir las teclas en tiendas externas.
Los juegos épicos generalmente tienen dos juegos gratis cada semana , antes de Navidad todos los días. Prime Gaming tiene nuevos juegos cada mes o más a menudo durante los primeros días. Gog generalmente tiene un nuevo juego cada pareja de semanas. Unreal Engine tiene nuevos activos para reclamar cada primer martes de un mes .
Es seguro ejecutar los guiones todos los días.
El contenedor/scripts reclamará los juegos actualmente disponibles y luego saldrá. Si desea que se ejecute regularmente, debe programar las ejecuciones usted mismo:
Linux/MacOS: crontab -e
(ejemplo)
MacOS: Launchd
Windows: Programador de tareas (ejemplo), otras opciones, o simplemente coloque el comando en un archivo .bat
en AutoStart si se reinicia a menudo ...
Cualquier sistema operativo: use un administrador de procesos como PM2
Docker Compose command: bash -c "node epic-games; node prime-gaming; node gog; echo sleeping; sleep 1d"
Agregar restart: unless-stopped
.
TODO: Agregue algún modo de servidor donde el script se siga ejecutando y reclama juegos, por ejemplo, todos los días.
Consulte los problemas abiertos y comente allí o abra un nuevo problema.
Si eres un desarrollador, puedes usar PWDEBUG=1 ...
para inspeccionar cuál abre un depurador donde puedes atravesar el script.
Probé EpicGames-Freebies Claimer, pero tuvo problemas desde que EpicGames introdujo HCAPTCHA (ver problema).
Jugó con titiritero antes, ahora probando más nuevos https://playwright.dev, que es bastante similar. El inspector de dramaturgo y codegen
para generar scripts son agradables, pero no lograron generar el código correcto para hacer clic en un botón en un iframe.
Se agregó main.spec.ts, que fue el script de prueba generado por npx playwright codegen
con corrección manual para hacer clic en los botones en el iframe creado. Puede ser ejecutado por npx playwright test
. El corredor de pruebas tiene opciones --debug
y --timeout
y puede ejecutar TypeScript, que es bueno. Sin embargo, esto solo funcionó hasta el botón 'Estoy de acuerdo', y luego mostró un HCaptcha.
Se agregó main.captcha.js, que usa beta de playwright-extra@next
y @extra/recaptcha@next
(desde el comentario en tupketeer-extrra). Sin embargo, playwright-extra
parece ser viejo y faltante :has-text
(fijado aquí) y page.frameLocator
, por lo que el script no se ejecutó sin ajustes. Además, resolver a través de 2Captcha es un servicio pagado que lleva tiempo y puede ser poco confiable.
Se agregó main.stealth.js, que utiliza el complemento Stealth sin una envoltura playwright-extra
pero playwright
actualizado (desde el comentario). Las evasiones enumeradas son suficientes para no mostrar un HCaptcha. El script reclamó el juego con éxito en el modo sin cabeza.
Eliminado main.captcha.js
. El uso de la prueba de dramaturgo ( main.spec.ts
) en lugar de la biblioteca ( main.stealth.js
) tiene la ventaja de CLI libre como --debug
y --timeout
.
Los selectores de botones deben usar preferiblemente texto para ser más estable contra los cambios en el DOM.
Repositorio renombrado de EpicGames-Claimer a Gree-Games Claimer ya que también se agregó un script para Amazon Prime Gaming. Eliminó todos los guiones antiguos a favor de solo epic-games.js
y prime-gaming.js
.
Juegos épicos: el modo headless
obtiene el desafío HCAPTCHA. Más detalles/referencias en el tema.
#11 introdujo un Dockerfile para ejecutar sin cabeza dentro del contenedor a través de XVFB, lo que lo hace sin cabeza para el host que ejecuta el contenedor.
V1.0 Scripts Standalone Scripts Node Epic-Games y Node Prime-Gaming usando cromo.
Cambiado a Firefox para todos los guiones, ya que Chromium condujo a Captchas. Afirmar entonces también funcionó en modo sin cabeza sin Docker.
Opciones agregadas a través de Env VARS, configurable en data/config.env
.
Se agregó la generación OTP a través de OTPLIB para el inicio de sesión automático, incluso con 2FA.
Se agregaron notificaciones a través de la apertura.
Logotipo con una relación de aspecto más pequeña (para Bot de telegrama, etc.) :? - Emojipedia