Reivindicações de jogos grátis periodicamente em
Loja de jogos épicos
Amazon Prime Gaming
GoG
Motor Unreal (Ativos) (Experimental, Mesmo Login dos Jogos EPIC)
Pull Pedidos bem -vindos :)
Funciona no Windows/MacOS/Linux.
Raspberry Pi (3, 4, zero 2): requer sistema operacional de 64 bits, como o Raspberry Pi OS ou o Ubuntu (o Raspbian não funciona, pois é de 32 bits).
Opção fácil: Instale o Docker (ou Podman) e execute este comando em um terminal:
docker run --rm -it -p 6080:6080 -v fgc:/fgc/data --pull=always ghcr.io/vogler/free-games-claimer
Atualmente, isso oferece um desafio Captcha para os jogos épicos. Até que a edição nº 183 seja corrigida, é recomendável executar node epic-games
sem docker (veja abaixo).
Isso executará node epic-games; node prime-gaming; node gog
-Se você deseja reivindicar jogos apenas para uma das lojas, poderá substituir o comando padrão, anexando node epic-games
no final do comando docker run
, ou se você quiser vários bash -c "node epic-games.js; node gog.js"
Os dados (incluindo arquivos JSON com jogos reivindicados, códigos para resgatar, capturas de tela) são armazenados no Docker Volume fgc
.
Instale o Node.js
Clone/Baixe este repositório e cd
nele em um terminal
Execute npm install
Run pip install apprise
(ou use pipx se tiver problemas) para instalar a aprovação se você deseja notificações
Para obter atualizações: git pull; npm install
Executar node epic-games
, node prime-gaming
, node gog
...
Durante npm install
baixará seu Firefox para um cache em casa (DOC). Se você estiver perdendo algumas dependências para o navegador no seu sistema, poderá usar sudo npx playwright install firefox --with-deps
.
Se você não quiser usar o Docker para o modo quase sem cabeça, poderá executar dentro de uma máquina virtual, em um servidor ou acorda seu PC à noite para evitar ser interrompido.
Todos os scripts iniciam uma instância automatizada do Firefox, com a GUI do navegador mostrada ou oculta ( modo sem cabeça ). Por padrão, você não verá nenhum navegador aberto no seu sistema host.
Ao executar dentro do Docker, o navegador será mostrado apenas dentro do contêiner. Você pode abrir http: // localhost: 6080 para interagir com o navegador em execução dentro do contêiner via NOVNC (ou usar outros clientes VNC na porta 5900).
Ao executar os scripts fora do Docker, o navegador será oculto por padrão; Você pode usar SHOW=1 ...
para mostrar a interface do usuário (veja as opções abaixo).
Ao executar a primeira vez, você deve fazer login para cada loja em que deseja reivindicar jogos. Você pode fazer login indiretamente através do terminal ou diretamente no navegador. Os scripts esperarão até que você esteja conectado com sucesso.
Haverá instruções no terminal solicitando que você insira email, senha e depois alguns OTP (Código de Segurança/Segurança OTP) se você possui 2FA/MFA (autenticação de dois/multi-fatores) ativada. Se você deseja fazer login -se através do navegador, poderá pressionar Escape no terminal para pular os prompts.
Após o login, o script continuará reivindicando os jogos atuais. Se ainda esperar depois de você já estiver conectado, você poderá reiniciá -lo (e abrir um problema). Se você executar os scripts regularmente, não precisará fazer login novamente.
As opções são definidas por meio de variáveis de ambiente que permitem configuração flexível.
TODO: Na primeira execução, o script o guiará através da configuração e salvará todas as configurações em data/config.env
. Você pode editar este arquivo diretamente ou executar node fgc config
para executar o Assistente de Configuração novamente.
Opções/variáveis disponíveis e seus valores padrão:
Opção | Padrão | Descrição |
---|---|---|
MOSTRAR | 1 | Mostre o navegador se 1. Padrão para o Docker, não mostrado ao correr para fora. |
LARGURA | 1280 | Largura do navegador aberto (e da tela do VNC no Docker). |
ALTURA | 1280 | Altura do navegador aberto (e da tela para VNC no docker). |
Vnc_password | Senha VNC para Docker. Nenhuma senha usada por padrão! | |
Notificar | Serviços de notificação a serem usados (Pussover, Slack, Telegram ...), veja abaixo. Informar | |
Notify_title | Título opcional para notificações, por exemplo, para pushover. | |
Browser_dir | dados/navegador | Diretório para perfil do navegador, por exemplo, para várias contas. |
TEMPO ESGOTADO | 60 | Tempo limite para qualquer ação da página. Deve estar bem mesmo em máquinas lentas. |
Login_timeout | 180 | Tempo limite para login em segundos. Vai esperar duas vezes (prompt + login manual). |
Email padrão para qualquer login. | ||
SENHA | Senha padrão para qualquer login. | |
EG_EMAIL | Epic Games E -mail para login. Substitui o email. | |
Eg_password | Senha de jogos épicos para login. Substitui a senha. | |
EG_OTPKEY | Chave do MFA OTP de jogos épicos. | |
Eg_parentalpin | Epic Games Parental Controls Pin. | |
PG_EMAIL | Prime Gaming E -mail para login. Substitui o email. | |
Pg_password | Senha de jogo Prime para login. Substitui a senha. | |
PG_OTPKEY | Prime Gaming MFA OTP Key. | |
Pg_redeem | 0 | Prime Gaming: Tente resgatar chaves em lojas externas (experimental). |
Pg_claimdlc | 0 | Prime Gaming: Tente reivindicar DLCs (experimental). |
Gog_email | Email de GoG para login. Substitui o email. | |
Gog_password | Senha do GoG para login. Substitui a senha. | |
Gog_newsletter | 0 | Não cancelar a inscrição do boletim depois de reivindicar um jogo se 1. |
LG_EMAIL | Jogos legados: e -mail para resgatar (se não definido, padronizados para PG_EMAIL) |
Consulte src/config.js
para todas as opções.
Você pode adicionar opções diretamente no comando ou colocá -las em um arquivo para carregar.
Você pode passar variáveis usando -e VAR=VAL
, por exemplo, docker run -e [email protected] -e NOTIFY='tgram://bottoken/ChatID' ...
ou usando --env-file fgc.env
onde fgc.env
é um arquivo no seu sistema host (consulte Docs). Você também pode docker cp
seu arquivo de configuração para /fgc/data/config.env
no volume fgc
para armazená -lo com o restante dos dados em vez de no host (exemplo). Se você estiver usando o Docker Compose (ou Portainer etc.), poderá colocar opções no environment:
seção.
No Linux/MacOS, você pode prefixar as variáveis que deseja definir, por exemplo, [email protected] SHOW=1 node epic-games
mostrará o navegador e o ignorar pedir seu email de login. No Windows, você deve usar set
, exemplo. Você também pode colocar opções em data/config.env
, que serão carregados pelo DOTENV.
Os scripts tentarão enviar notificações para jogos reivindicados com sucesso e quaisquer erros como precisar fazer login ou encontrar captchas (não deve acontecer).
APREGA é usado para notificações e oferece muitos serviços, incluindo pushver, slack, telegrama, SMS, email, desktop e notificações personalizadas. Você só precisa definir NOTIFY
os serviços de notificação que deseja usar, por exemplo, NOTIFY='mailto://myemail:[email protected]' 'pbul://o.gn5kj6nfhv736I7jC3cj3QLRiyhgl98b'
- consulte seus serviços e exemplos.
Se você definir as opções de email, senha e chave OTP, não haverá prompts e logins deverão acontecer automaticamente. Isso é opcional, pois todas as lojas devem permanecer conectadas, pois os cookies são atualizados. Para obter a chave OTP, é mais fácil seguir o guia da loja para adicionar um aplicativo Authenticator. Você também deve digitalizar o código QR mostrado com seu aplicativo favorito para ter um método alternativo para 2FA.
Jogos épicos : visite senha e segurança, ative 'aplicativo de autenticador de terceiros', copie a 'chave de entrada manual' e use-a para definir EG_OTPKEY
.
Prime Gaming : Visite Amazon 'Your Conta ›Login & Security', verificação em duas etapas› Gerenciar ›Adicionar novo aplicativo› Não é possível digitalizar o código de barras, copiar a chave em negrito e use-a para definir PG_OTPKEY
GOG : oferece apenas OTP por e -mail
Cuidado que armazenar senhas e teclas OTP como texto claro pode ser um risco de segurança. Use uma senha exclusiva/gerada! TODO: Talvez pelo menos ofereça o codificação Base64 para armazenamento.
Execute node epic-games
(localmente ou no docker).
Execute node prime-gaming
(localmente ou no Docker).
Afirmando que os jogos da Amazon trabalham fora da caixa, no entanto, para jogos em lojas externas, você precisa vincular sua conta ou resgatar uma chave.
Lojas que exigem vinculação de contas: jogos épicos, battle.net, origem.
Lojas que exigem resgatar uma chave: gog.com, jogos da Microsoft, jogos de legados.
As chaves e URLs são impressos no console, incluídos em notificações e salvos em data/prime-gaming.json
. Uma captura de tela da página com a chave também é salva em data/screenshots
. TODO: resgate as chaves em lojas externas.
A Epic Games geralmente tem dois jogos gratuitos por semana , antes do Natal todos os dias. O Prime Gaming tem novos jogos todos os meses ou mais frequentemente durante os dias iniciais. O Gog geralmente tem um novo jogo a cada casais de semanas. O Unreal Engine tem novos ativos para reivindicar toda primeira terça -feira de um mês .
É seguro executar os scripts todos os dias.
Os contêineres/scripts reivindicarão jogos atualmente disponíveis e depois sairão. Se você deseja que ele funcione regularmente, você deve agendar as corridas:
Linux/MacOS: crontab -e
(exemplo)
MacOS: Launchd
Windows: Agendador de tarefas (exemplo), outras opções ou apenas coloque o comando em um arquivo .bat
no AutoStart se você reiniciar com frequência ...
Qualquer sistema operacional: use um gerente de processos como PM2
Docker Compõe command: bash -c "node epic-games; node prime-gaming; node gog; echo sleeping; sleep 1d"
adicionalmente adicionar restart: unless-stopped
.
TODO: Adicione algum modo de servidor em que o script continua em execução e reivindica os jogos, por exemplo, todos os dias.
Verifique as questões abertas e comente lá ou abra um novo problema.
Se você é um desenvolvedor, pode usar PWDEBUG=1 ...
para inspecionar qual abre um depurador onde você pode passar pelo script.
Tentei o EpicGames-FreeBies-Relaimer, mas teve problemas desde que a Epicgames introduziu o HCAPTCHA (ver edição).
Jogou com o marionetista antes, agora tentando https://playwright.dev, o que é bem parecido. O inspetor de dramaturgo e codegen
para gerar scripts são agradáveis, mas não conseguiu gerar o código certo para clicar em um botão em um iframe.
Adicionado main.spec.ts, que foi o script de teste gerado pelo npx playwright codegen
com correção manual para clicar em botões no iframe criado. Pode ser executado pelo npx playwright test
. O Test Runner tem opções --debug
e --timeout
e pode executar o TypeScript, o que é bom. No entanto, isso só funcionou com o botão 'eu concordo' e depois mostrou um hcaptcha.
Adicionado main.captcha.js, que usa beta de playwright-extra@next
e @extra/recaptcha@next
(do comentário sobre marionete-extra). No entanto, playwright-extra
parece estar antigo e ausente :has-text
(corrigido aqui) e page.frameLocator
, para que o script não tenha sido executado sem ajustes. Além disso, resolver via 2Captcha é um serviço pago que leva tempo e pode não ser confiável.
Adicionado Main.Stealth.js, que usa o plug-in furtivo sem wrapper playwright-extra
mas playwright
atualizado (do comentário). As evasões listadas são suficientes para não mostrar um hcaptcha. O script reivindicou o jogo com sucesso no modo não sem sentido.
Removido main.captcha.js
. Usando o dramwright test ( main.spec.ts
) em vez de biblioteca ( main.stealth.js
) tem a vantagem da CLI gratuita como --debug
e --timeout
.
Os seletores de botões devem preferencialmente usar o texto para ser mais estável contra as alterações no DOM.
Repositório renomeado da Epicgames-Claimer para o Free-Games-Claimer, já que um script para o Amazon Prime Gaming também foi adicionado. Removeu todos os scripts antigos em favor de apenas epic-games.js
e prime-gaming.js
.
Jogos épicos: o modo headless
recebe o HCAPTCHA Challenge. Mais detalhes/referências em questão.
O #11 introduziu um Dockerfile para executar sem jejum dentro do contêiner via XVFB, o que o torna sem cabeça para o host que executa o contêiner.
V1.0 Scripts independentes Nó Epic-Games e Node Prime-Gaming usando cromo.
Mudou para o Firefox para todos os scripts desde que o cromo levou a Captchas. Reivindicar então também funcionou no modo sem cabeça sem o Docker.
Adicionado opções via Env vars, configurável em data/config.env
.
Adicionado geração OTP via OTPLIB para login automático, mesmo com 2FA.
Notificações adicionadas por meio de permitir.
Logotipo com proporção menor (para telegrama, etc.) :? - Emojipedia