เรียกร้องเกมฟรีเป็นระยะ ๆ
ร้านค้าเกมมหากาพย์
Amazon Prime Gaming
Gog
Unreal Engine (สินทรัพย์) (ทดลองการเข้าสู่ระบบเดียวกับเกมมหากาพย์)
ยินดีต้อนรับคำขอดึง :)
ทำงานบน Windows/MacOS/Linux
Raspberry Pi (3, 4, Zero 2): ต้องใช้ระบบปฏิบัติการ 64 บิตเช่น Raspberry Pi OS หรือ Ubuntu (Raspbian จะไม่ทำงานเนื่องจากเป็น 32 บิต)
ตัวเลือกง่าย: ติดตั้ง Docker (หรือ Podman) และเรียกใช้คำสั่งนี้ในเทอร์มินัล:
docker run --rm -it -p 6080:6080 -v fgc:/fgc/data --pull=always ghcr.io/vogler/free-games-claimer
ในปัจจุบันนี้ให้ความท้าทายกับ Captcha สำหรับเกมมหากาพย์ จนกว่าปัญหา #183 จะได้รับการแก้ไขขอแนะนำให้เพียงแค่เรียกใช้ node epic-games
โดยไม่ต้อง Docker (ดูด้านล่าง)
สิ่งนี้จะเรียกใช้ node epic-games; node prime-gaming; node gog
-หากคุณต้องการเรียกร้องเกมสำหรับหนึ่งในร้านค้าคุณสามารถแทนที่คำสั่งเริ่มต้นได้โดยการต่อท้าย node epic-games
ในตอนท้ายของคำสั่ง docker run
หรือหากคุณต้องการ bash -c "node epic-games.js; node gog.js"
ข้อมูล (รวมถึงไฟล์ JSON ที่มีเกมที่อ้างสิทธิ์รหัสเพื่อแลกภาพหน้าจอ) จะถูกเก็บไว้ใน Docker Volume fgc
ติดตั้ง node.js
โคลน/ดาวน์โหลดที่เก็บและ cd
นี้ลงในเทอร์มินัลนี้
รัน npm install
เรียกใช้ pip install apprise
(หรือใช้ PIPX หากคุณมีปัญหา) เพื่อติดตั้ง APPIVE หากคุณต้องการการแจ้งเตือน
เพื่อรับการอัปเดต: 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 สำหรับโหมด headless เสมือนจริงคุณสามารถทำงานภายในเครื่องเสมือนบนเซิร์ฟเวอร์หรือคุณปลุกพีซีของคุณในเวลากลางคืนเพื่อหลีกเลี่ยงการถูกขัดจังหวะ
สคริปต์ทั้งหมดเริ่มต้นอินสแตนซ์ Firefox อัตโนมัติไม่ว่าจะด้วยเบราว์เซอร์ GUI ที่แสดงหรือซ่อน ( โหมดหัวขาด ) โดยค่าเริ่มต้นคุณจะไม่เห็นเบราว์เซอร์ใด ๆ เปิดบนระบบโฮสต์ของคุณ
เมื่อทำงานด้านใน Docker เบราว์เซอร์จะแสดงเฉพาะภายในคอนเทนเนอร์ คุณสามารถเปิด http: // localhost: 6080 เพื่อโต้ตอบกับเบราว์เซอร์ที่ทำงานภายในคอนเทนเนอร์ผ่าน NOVNC (หรือใช้ไคลเอนต์ VNC อื่น ๆ บนพอร์ต 5900)
เมื่อเรียกใช้สคริปต์นอก Docker เบราว์เซอร์จะถูกซ่อนไว้โดยค่าเริ่มต้น คุณสามารถใช้ SHOW=1 ...
เพื่อแสดง UI (ดูตัวเลือกด้านล่าง)
เมื่อเรียกใช้ครั้งแรกคุณต้องเข้าสู่ระบบสำหรับแต่ละร้านที่คุณต้องการเรียกร้องเกม คุณสามารถเข้าสู่ระบบทางอ้อมผ่านเทอร์มินัลหรือโดยตรงในเบราว์เซอร์ สคริปต์จะรอจนกว่าคุณจะเข้าสู่ระบบได้สำเร็จ
จะมีการแจ้งเตือนในเทอร์มินัลขอให้คุณป้อนอีเมลรหัสผ่านและหลังจากนั้น OTP (รหัสผ่าน/รหัสความปลอดภัยครั้งเดียว) หากคุณมี 2FA/MFA (การตรวจสอบความถูกต้องสอง-/มัลติเพอร์เตอร์) หากคุณต้องการเข้าสู่ระบบด้วยตัวเองผ่านเบราว์เซอร์คุณสามารถกด Escape ในเทอร์มินัลเพื่อข้ามพรอมต์
หลังจากเข้าสู่ระบบสคริปต์จะอ้างสิทธิ์ในเกมปัจจุบันต่อไป หากยังคงรอหลังจากที่คุณเข้าสู่ระบบแล้วคุณสามารถรีสตาร์ทได้ (และเปิดปัญหา) หากคุณเรียกใช้สคริปต์เป็นประจำคุณไม่ควรเข้าสู่ระบบอีกครั้ง
ตัวเลือกถูกตั้งค่าผ่านตัวแปรสภาพแวดล้อมซึ่งอนุญาตให้มีการกำหนดค่าที่ยืดหยุ่น
TODO: ในการเรียกใช้ครั้งแรกสคริปต์จะแนะนำคุณผ่านการกำหนดค่าและบันทึกการตั้งค่าทั้งหมดเป็น data/config.env
คุณสามารถแก้ไขไฟล์นี้ได้โดยตรงหรือเรียกใช้ node fgc config
เพื่อเรียกใช้ Assistant Configuration อีกครั้ง
ตัวเลือก/ตัวแปรที่มีอยู่และค่าเริ่มต้นของพวกเขา:
ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|
แสดง | 1 | แสดงเบราว์เซอร์ถ้า 1. ค่าเริ่มต้นสำหรับนักเทียบท่าไม่แสดงเมื่อทำงานด้านนอก |
ความกว้าง | 1280 | ความกว้างของเบราว์เซอร์ที่เปิด (และหน้าจอสำหรับ VNC ใน Docker) |
ความสูง | 1280 | ความสูงของเบราว์เซอร์ที่เปิด (และหน้าจอสำหรับ VNC ใน Docker) |
vnc_password | รหัสผ่าน VNC สำหรับ Docker ไม่มีรหัสผ่านที่ใช้โดยค่าเริ่มต้น! | |
แจ้ง | บริการแจ้งเตือนที่จะใช้ (pushover, slack, telegram ... ), ดูด้านล่าง อนุมัติ | |
แจ้งเตือน | ชื่อเสริมสำหรับการแจ้งเตือนเช่นสำหรับ pushover | |
เบราว์เซอร์ _dir | ข้อมูล/เบราว์เซอร์ | ไดเรกทอรีสำหรับโปรไฟล์เบราว์เซอร์เช่นสำหรับหลายบัญชี |
การหมดเวลา | 60 | หมดเวลาสำหรับการดำเนินการใด ๆ ควรจะดีแม้ในเครื่องช้า |
login_timeout | 180 | หมดเวลาสำหรับการเข้าสู่ระบบในไม่กี่วินาที จะรอสองครั้ง (พรอมต์ + เข้าสู่ระบบด้วยตนเอง) |
อีเมล | อีเมลเริ่มต้นสำหรับการเข้าสู่ระบบใด ๆ | |
รหัสผ่าน | รหัสผ่านเริ่มต้นสำหรับการเข้าสู่ระบบใด ๆ | |
eg_email | อีเมล Epic Games สำหรับการเข้าสู่ระบบ แทนที่อีเมล | |
eg_password | รหัสผ่านเกม EPIC สำหรับการเข้าสู่ระบบ แทนที่รหัสผ่าน | |
eg_otpkey | เกม EPIC MFA OTP คีย์ | |
eg_parentalpin | EPIC GAMES PARENTER ควบคุมพิน | |
pg_email | อีเมลเกมที่สำคัญสำหรับการเข้าสู่ระบบ แทนที่อีเมล | |
pg_password | รหัสผ่านเกมสำคัญสำหรับการเข้าสู่ระบบ แทนที่รหัสผ่าน | |
pg_otpkey | สำคัญเกม MFA OTP | |
pg_redeem | 0 | การเล่นเกมที่สำคัญ: ลองแลกกุญแจในร้านค้าภายนอก (ทดลอง) |
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
เป็นไฟล์ในระบบโฮสต์ของคุณ (ดูเอกสาร) นอกจากนี้คุณยังสามารถ docker cp
ไฟล์การกำหนดค่าของคุณไปที่ /fgc/data/config.env
ในปริมาณ fgc
เพื่อจัดเก็บด้วยข้อมูลที่เหลือแทนบนโฮสต์ (ตัวอย่าง) หากคุณใช้ Docker Compose (หรือ Portainer ฯลฯ ) คุณสามารถใส่ตัวเลือกใน environment:
ส่วน
บน Linux/MacOS คุณสามารถนำหน้าตัวแปรที่คุณต้องการตั้งค่าเช่น [email protected] SHOW=1 node epic-games
จะแสดงเบราว์เซอร์และข้ามขออีเมลเข้าสู่ระบบของคุณ บน Windows คุณต้องใช้ set
ตัวอย่าง นอกจากนี้คุณยังสามารถใส่ตัวเลือกใน data/config.env
ซึ่งจะโหลดโดย dotenv
สคริปต์จะพยายามส่งการแจ้งเตือนสำหรับเกมที่อ้างสิทธิ์สำเร็จและข้อผิดพลาดใด ๆ เช่นจำเป็นต้องเข้าสู่ระบบหรือพบกับ Captchas (ไม่ควรเกิดขึ้น)
Appreat ใช้สำหรับการแจ้งเตือนและให้บริการมากมายรวมถึง Pushover, Slack, Telegram, SMS, อีเมล, เดสก์ท็อปและการแจ้งเตือนที่กำหนดเอง คุณเพียงแค่ต้องตั้งค่า NOTIFY
ถึงบริการแจ้งเตือนที่คุณต้องการใช้เช่น NOTIFY='mailto://myemail:[email protected]' 'pbul://o.gn5kj6nfhv736I7jC3cj3QLRiyhgl98b'
- อ้างถึงรายการและตัวอย่าง
หากคุณตั้งค่าตัวเลือกสำหรับอีเมลรหัสผ่านและคีย์ OTP จะไม่มีการแจ้งเตือนและการเข้าสู่ระบบควรเกิดขึ้นโดยอัตโนมัติ นี่เป็นทางเลือกเนื่องจากร้านค้าทั้งหมดควรเข้าสู่ระบบเนื่องจากคุกกี้สดชื่น ในการรับคีย์ OTP มันง่ายที่สุดในการติดตามคู่มือของร้านค้าสำหรับการเพิ่มแอพ Authenticator คุณควรสแกนรหัส QR ที่แสดงด้วยแอพที่คุณชื่นชอบเพื่อให้มีวิธีทางเลือกสำหรับ 2FA
เกม EPIC : เยี่ยมชมรหัสผ่านและความปลอดภัยเปิดใช้งาน 'แอพ Authenticator ของบุคคลที่สาม' คัดลอก 'รหัสรายการด้วยตนเอง' และใช้เพื่อตั้งค่า EG_OTPKEY
Prime Gaming : เยี่ยมชม Amazon 'บัญชีของคุณ› Login & Security', การตรวจสอบ 2 ขั้นตอน PG_OTPKEY
Managem
GOG : เสนอเฉพาะ OTP ทางอีเมลเท่านั้น
ระวังการจัดเก็บรหัสผ่านและคีย์ OTP เป็นข้อความที่ชัดเจนอาจเป็นความเสี่ยงด้านความปลอดภัย ใช้รหัสผ่านที่ไม่ซ้ำกัน/สร้าง! TODO: อย่างน้อยก็เสนอให้ Base64 เข้ารหัสสำหรับการจัดเก็บ
เรียกใช้ node epic-games
(ท้องถิ่นหรือใน Docker)
เรียกใช้ node prime-gaming
(ท้องถิ่นหรือใน Docker)
อย่างไรก็ตามการอ้างว่าเกม Amazon นั้นทำงานนอกกรอบสำหรับเกมในร้านค้าภายนอกที่คุณต้องเชื่อมโยงบัญชีของคุณหรือแลกคีย์
ร้านค้าที่ต้องการการเชื่อมโยงบัญชี: Epic Games, Battle.net, Origin
ร้านค้าที่ต้องการการไถ่คีย์: Gog.com, Microsoft Games, เกมมรดก
คีย์และ URL ถูกพิมพ์ไปยังคอนโซลซึ่งรวมอยู่ในการแจ้งเตือนและบันทึกใน data/prime-gaming.json
ภาพหน้าจอของหน้าด้วยคีย์จะถูกบันทึกลงใน data/screenshots
TODO: REDEM Keys ในร้านค้าภายนอก
เกมมหากาพย์มักจะมีสองเกมฟรี ทุกสัปดาห์ ก่อนวันคริสต์มาสทุกวัน Prime Gaming มีเกมใหม่ ทุกเดือน หรือมากกว่าบ่อยครั้งในช่วงวันสำคัญ GOG มักจะมีหนึ่งเกมใหม่ทุกคู่ของสัปดาห์ Unreal Engine มีสินทรัพย์ใหม่ที่จะเรียกร้อง ทุกวันอังคารแรกของเดือน
ปลอดภัยที่จะเรียกใช้สคริปต์ทุกวัน
คอนเทนเนอร์/สคริปต์จะเรียกร้องเกมที่มีอยู่ในปัจจุบันจากนั้นออก หากคุณต้องการให้ทำงานเป็นประจำคุณต้องกำหนดเวลาการวิ่งด้วยตัวเอง:
Linux/MacOS: crontab -e
(ตัวอย่าง)
MacOS: Launchd
Windows: Task Scheduler (ตัวอย่าง), ตัวเลือกอื่น ๆ หรือเพียงแค่ใส่คำสั่งในไฟล์ .bat
ใน autostart หากคุณรีสตาร์ทบ่อยครั้ง ...
ระบบปฏิบัติการใด ๆ : ใช้ตัวจัดการกระบวนการเช่น PM2
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 (ดูปัญหา)
เล่นกับ Puppeteer มาก่อนตอนนี้ลอง https://playwright.dev รุ่นใหม่ที่ใหม่กว่า นักเขียนบทละครและ codegen
เพื่อสร้างสคริปต์นั้นดี แต่ไม่สามารถสร้างรหัสที่เหมาะสมสำหรับการคลิกปุ่มใน iframe
เพิ่ม main.spec.ts ซึ่งเป็นสคริปต์ทดสอบที่สร้างโดย npx playwright codegen
พร้อมด้วยการแก้ไขด้วยตนเองสำหรับการคลิกปุ่มใน iframe ที่สร้างขึ้น สามารถดำเนินการโดย npx playwright test
Test Runner มีตัวเลือก --debug
และ --timeout
และสามารถเรียกใช้ TypeScript ซึ่งเป็นสิ่งที่ดี อย่างไรก็ตามสิ่งนี้ใช้ได้กับปุ่ม 'ฉันเห็นด้วย' เท่านั้นจากนั้นแสดง hcaptcha
เพิ่ม main.captcha.js ซึ่งใช้เบต้าของ playwright-extra@next
และ @extra/recaptcha@next
(จากความคิดเห็นบน Puppeteer-extra) อย่างไรก็ตาม playwright-extra
ดูเหมือนจะเก่าและขาดหายไป :has-text
(แก้ไขที่นี่) และ page.frameLocator
ดังนั้นสคริปต์จึงไม่ทำงานโดยไม่มีการปรับเปลี่ยน นอกจากนี้การแก้ปัญหาผ่าน 2Captcha เป็นบริการที่ต้องชำระเงินซึ่งต้องใช้เวลาและอาจไม่น่าเชื่อถือ
เพิ่ม main.stealth.js ซึ่งใช้ปลั๊กอิน Stealth โดยไม่ต้องมีเสื้อคลุม playwright-extra
แต่ playwright
ที่ทันสมัย (จากความคิดเห็น) การหลีกเลี่ยงที่ระบุไว้นั้นเพียงพอที่จะไม่แสดง hcaptcha สคริปต์อ้างว่าเกมประสบความสำเร็จในโหมดที่ไม่มีหัว
ลบ main.captcha.js
การใช้การทดสอบนักเขียนบทละคร ( main.spec.ts
) แทนที่จะเป็นห้องสมุด ( main.stealth.js
) มีข้อได้เปรียบของ CLI ฟรีเช่น --debug
และ --timeout
ตัวเลือกปุ่มควรใช้ข้อความเพื่อให้มีความเสถียรมากขึ้นเมื่อเทียบกับการเปลี่ยนแปลงใน DOM
เปลี่ยนชื่อที่เก็บข้อมูลจาก EpicGames-Claimer เป็น Free-Games-Claimer เนื่องจากมีการเพิ่มสคริปต์สำหรับ Amazon Prime Gaming ลบสคริปต์เก่าทั้งหมดในความโปรดปรานเพียงแค่ epic-games.js
และ prime-gaming.js
เกมมหากาพย์: โหมด headless
ได้รับความท้าทาย HCAPTCHA รายละเอียดเพิ่มเติม/การอ้างอิงในปัญหา
#11 แนะนำ DockerFile สำหรับการใช้งานที่ไม่ได้อยู่ภายในคอนเทนเนอร์ผ่าน XVFB ซึ่งทำให้ไม่มีหัวสำหรับโฮสต์ที่ใช้คอนเทนเนอร์
V1.0 สคริปต์แบบสแตนด์อโลนโหนดเกม Epic-Games และ Node Prime-Gaming โดยใช้โครเมียม
เปลี่ยนเป็น Firefox สำหรับสคริปต์ทั้งหมดตั้งแต่โครเมียมนำไปสู่ Captchas อ้างว่าทำงานในโหมดหัวขาดโดยไม่มีนักเทียบท่า
เพิ่มตัวเลือกผ่าน env vars กำหนดค่าใน data/config.env
เพิ่มการสร้าง OTP ผ่าน OTPLIB สำหรับการเข้าสู่ระบบอัตโนมัติแม้จะมี 2FA
เพิ่มการแจ้งเตือนผ่าน APPISE
โลโก้ที่มีอัตราส่วนขนาดเล็ก (สำหรับ Bot Telegram ฯลฯ ):? - อิโมจิพีเดีย