무료 게임을 정기적으로 주장합니다
Epic Games Store
아마존 프라임 게임
GOG
Unreal Engine (자산) (실험, 서사시 게임과 동일한 로그인)
풀 요청 환영 :)
Windows/MacOS/Linux에서 작동합니다.
Raspberry Pi (3, 4, Zero 2) : Raspberry Pi OS 또는 Ubuntu와 같은 64 비트 OS가 필요합니다 (Raspbian은 32 비트이므로 작동하지 않습니다).
쉬운 옵션 : Docker (또는 Podman)를 설치 하고이 명령을 터미널에서 실행합니다.
docker run --rm -it -p 6080:6080 -v fgc:/fgc/data --pull=always ghcr.io/vogler/free-games-claimer
이것은 현재 당신에게 서사시 게임에 대한 보판 도전을 제공합니다. 문제 #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"
. 데이터 (청구 된 게임이있는 JSON 파일, 사용 코드, 스크린 샷)는 Docker Volume fgc
에 저장됩니다.
node.js를 설치하십시오
이 저장소를 복제/다운로드하고 터미널에서 cd
다운로드하십시오.
npm install
실행하십시오
알림을 원하는 경우 pip install apprise
(또는 문제가있는 경우 PIPX를 사용하거나 PIPX를 사용하십시오).
업데이트를 얻으려면 : 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를 사용하지 않으려면 가상 컴퓨터, 서버에서 실행하거나 밤에 PC를 깨우면 중단되지 않도록하십시오.
모든 스크립트는 브라우저 GUI가 표시되거나 숨겨진 ( 헤드리스 모드 )로 자동화 된 Firefox 인스턴스를 시작합니다. 기본적으로 호스트 시스템에 브라우저가 열려 있지 않습니다.
Docker 내부에서 실행될 때 브라우저는 컨테이너 안에만 표시됩니다. http : // localhost : 6080을 열면 NOVNC를 통해 컨테이너 내부에서 실행되는 브라우저와 상호 작용할 수 있습니다 (또는 포트 5900에서 다른 VNC 클라이언트를 사용).
Docker 이외의 스크립트를 실행할 때 브라우저는 기본적으로 숨겨집니다. SHOW=1 ...
사용하여 UI를 표시 할 수 있습니다 (아래 옵션 참조).
처음 실행할 때는 게임을 청구하려는 각 매장에 로그인해야합니다. 터미널을 통해 또는 브라우저에서 직접 간접적으로 로그인 할 수 있습니다. 스크립트는 성공적으로 로그인 될 때까지 기다립니다.
터미널에 이메일, 암호를 입력하도록 요청한 후 2FA/MFA (2/Multi-Factor 인증)가 활성화 된 경우 일부 OTP (한 번 암호/보안 코드)가 있습니다. 브라우저를 통해 직접 로그인하려면 터미널에서 탈출을 눌러 프롬프트를 건너 뛸 수 있습니다.
로그인 한 후 스크립트는 현재 게임을 계속 주장합니다. 이미 로그인 한 후에도 여전히 대기중인 경우 다시 시작하고 문제를 열 수 있습니다. 스크립트를 정기적으로 실행하면 다시 로그인 할 필요가 없습니다.
옵션은 유연한 구성을 허용하는 환경 변수를 통해 설정됩니다.
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 | 로그인 시간 초과 시간 초과 몇 초 만에. 두 번 대기합니다 (프롬프트 + 수동 로그인). |
이메일 | 모든 로그인에 대한 기본 이메일. | |
비밀번호 | 모든 로그인의 기본 비밀번호. | |
EG_EMAIL | 서사시 게임 로그인을위한 이메일. 이메일을 무시합니다. | |
eg_password | 로그인을위한 서사시 게임 비밀번호. 비밀번호를 대체합니다. | |
eg_otpkey | 서사시 게임 MFA OTP 키. | |
eG_ParentalPin | 에픽 게임 부모 통제 핀. | |
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
는 호스트 시스템의 파일입니다 (문서 참조). fgc
볼륨의 /fgc/data/config.env
로 구성 파일을 docker cp
로도 호스트 대신 나머지 데이터와 함께 저장할 수도 있습니다 (예). 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='mailto://myemail:[email protected]' 'pbul://o.gn5kj6nfhv736I7jC3cj3QLRiyhgl98b'
NOTIFY
서비스 및 예제 목록을 참조하십시오.
이메일, 비밀번호 및 OTP 키 옵션을 설정하면 프롬프트가없고 로그인이 자동으로 발생해야합니다. 쿠키가 새로 고침되기 때문에 모든 상점이 로그인해야하므로 선택 사항입니다. OTP 키를 얻으려면 인증기 앱을 추가하기 위해 매장 안내서를 따르는 것이 가장 쉽습니다. 또한 선호하는 QR 코드를 좋아하는 앱으로 스캔하여 2FA에 대한 대체 방법을 갖추어야합니다.
서사시 게임 : 비밀번호 및 보안을 방문하고 '타사 인증 자 앱'을 활성화하고 '수동 입력 키'를 복사 한 후 EG_OTPKEY
설정하는 데 사용하십시오.
Prime Gaming : Amazon '귀하의 계정 방문›로그인 및 보안', 2 단계 확인›관리›새 앱 추가›바코드를 스캔 할 수 없습니다. Bold Key를 복사하여 PG_OTPKEY
설정하십시오.
GOG : 이메일을 통해 OTP 만 제공합니다
비밀번호와 OTP 키를 명확한 텍스트로 저장하는 것은 보안 위험 일 수 있습니다. 고유/생성 된 비밀번호를 사용하십시오! TODO : 스토리지를 위해 Base64 Encode에 최소한 제공 할 수 있습니다.
node epic-games
(로컬 또는 Docker)을 실행합니다.
node prime-gaming
(로컬 또는 Docker)을 실행하십시오.
그러나 Amazon Games가 상자 밖에서 작동하지만 외부 상점의 게임의 경우 계정을 연결하거나 키를 사용해야합니다.
계정 연결이 필요한 상점 : Epic Games, Battle.net, Origin.
gog.com, Microsoft Games, 레거시 게임 : 키를 사용해야하는 상점.
키와 URL은 콘솔에 인쇄되어 알림에 포함되어 있으며 data/prime-gaming.json
에 저장됩니다. 키가있는 페이지의 스크린 샷도 data/screenshots
에 저장됩니다. TODO : 외부 상점에서 열쇠를 사용할 수 있습니다.
Epic Games에는 매주 크리스마스 전에 매주 두 개의 무료 게임이 있습니다. Prime Gaming은 매월 또는 프라임 일 동안 새로운 게임을 자주합니다. Gog는 보통 몇 주마다 하나의 새로운 게임을 가지고 있습니다. Unreal Engine에는 한 달의 첫 화요일마다 새로운 자산이 청구 할 새로운 자산이 있습니다.
매일 스크립트를 실행하는 것이 안전합니다.
컨테이너/스크립트는 현재 사용 가능한 게임을 청구 한 다음 종료합니다. 정기적으로 실행하려면 직접 실행을 예약해야합니다.
Linux/MacOS : crontab -e
(예)
MACOS : 시작
Windows : Task Scheduler (예), 기타 옵션, 또는 자주 다시 시작하면 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를 시도해 보았습니다. 스크립트를 생성하기위한 극작가 및 codegen
훌륭하지만 iframe에서 버튼을 클릭하기위한 올바른 코드를 생성하지 못했습니다.
Main.spec.ts는 npx playwright codegen
이 생성 한 테스트 스크립트 인 생성 iframe에서 버튼을 클릭하기위한 수동 수정으로 생성 된 테스트 스크립트입니다. npx playwright test
로 실행할 수 있습니다. 테스트 러너에는 옵션이 있습니다 --debug
및 --timeout
옵션이 있으며 좋은 타임 스크립트를 실행할 수 있습니다. 그러나 이것은 '동의'버튼만으로 작동했으며 hcaptcha를 보여주었습니다.
playwright-extra@next
및 @extra/recaptcha@next
의 베타를 사용하는 main.captcha.js를 추가했습니다 (Puppeteer-Extra에 대한 의견). 그러나 playwright-extra
오래되고 누락 된 것 같습니다 :has-text
selector (여기에서 수정)와 page.frameLocator
스크립트를 조정하지 않고 실행하지 않았습니다. 또한 2captcha를 통해 해결하는 것은 시간이 걸리고 신뢰할 수없는 유료 서비스입니다.
playwright-extra
래퍼없이 스텔스 플러그인을 사용하지만 최신 playwright
(댓글에서)를 사용하는 main.stalth.js를 추가했습니다. 나열된 회피는 hcaptcha를 보여주지 않기에 충분합니다. 스크립트는 게임이없는 모드에서 게임을 성공적으로 주장했습니다.
main.captcha.js
제거했습니다. 도서관 ( main.stealth.js
) 대신 극작가 테스트 ( main.spec.ts
)를 사용하면 --debug
및 --timeout
과 같은 무료 CLI의 장점이 있습니다.
버튼 선택기는 DOM의 변화에 대해 더 안정적이 되려면 텍스트를 사용해야합니다.
Amazon Prime Gaming의 스크립트가 추가 된 이후 Epicgames-Chaimer에서 Free-Games-Claimer로 이름이 바뀌 었습니다. epic-games.js
와 prime-gaming.js
를 선호하여 모든 오래된 스크립트를 제거했습니다.
서사시 게임 : headless
모드는 hcaptcha 도전을받습니다. 자세한 내용/참조 문제.
#11은 XVFB를 통해 컨테이너 내부에서 비 헤드리스를 실행하기위한 도커 파일을 도입하여 컨테이너를 실행하는 호스트의 헤드리스가됩니다.
v1.0 독립형 스크립트 노드 Epic-Games 및 Chromium을 사용한 노드 프라임 게임.
Chromium이 담긴 이후로 모든 스크립트의 Firefox로 변경되었습니다. 그런 다음 Docker없이 헤드리스 모드에서도 일했습니다.
data/config.env
에서 구성 가능한 ENV Vars를 통해 옵션이 추가되었습니다.
2FA와 함께 자동 로그인을 위해 OTPLIB를 통해 OTP 생성을 추가했습니다.
APPRESE를 통해 알림이 추가되었습니다.
종횡비가 작은 로고 (Telegram Bot 등) :? - 이모 지프