Mengklaim game gratis secara berkala
Toko Game Epik
Amazon Prime Gaming
Gog
Unreal Engine (aset) (eksperimental, login yang sama dengan game epik)
Tarik permintaan selamat datang :)
Bekerja pada Windows/MacOS/Linux.
Raspberry Pi (3, 4, nol 2): Membutuhkan OS 64-bit seperti Raspberry Pi Os atau Ubuntu (Raspbian tidak akan berfungsi karena 32-bit).
Opsi Mudah: Instal Docker (atau Podman) dan jalankan perintah ini di terminal:
docker run --rm -it -p 6080:6080 -v fgc:/fgc/data --pull=always ghcr.io/vogler/free-games-claimer
Ini saat ini memberi Anda tantangan captcha untuk permainan epik. Sampai masalah #183 diperbaiki, disarankan untuk hanya menjalankan node epic-games
tanpa Docker (lihat di bawah).
Ini akan menjalankan node epic-games; node prime-gaming; node gog
-Jika Anda hanya ingin mengklaim game untuk salah satu toko, Anda dapat mengganti perintah default dengan menambahkan EG node epic-games
di akhir perintah docker run
, atau jika Anda ingin beberapa bash -c "node epic-games.js; node gog.js"
Data (termasuk file JSON dengan game yang diklaim, kode untuk menebus, tangkapan layar) disimpan dalam volume Docker fgc
.
Instal Node.js
Klon/unduh repositori ini dan cd
ke dalamnya di terminal
Jalankan npm install
Jalankan pip install apprise
(atau gunakan PIPX jika Anda memiliki masalah) untuk menginstal memberi tahu jika Anda ingin pemberitahuan
Untuk mendapatkan pembaruan: git pull; npm install
Jalankan node epic-games
, node prime-gaming
, node gog
...
Selama npm install
Playwright akan mengunduh Firefox ke Cache in Home (DOC). Jika Anda kehilangan beberapa dependensi untuk browser pada sistem Anda, Anda dapat menggunakan sudo npx playwright install firefox --with-deps
.
Jika Anda tidak ingin menggunakan Docker untuk mode kuasi-headless, Anda dapat menjalankan di dalam mesin virtual, di server, atau Anda membangunkan PC Anda di malam hari untuk menghindari terganggu.
Semua skrip memulai instance Firefox otomatis, baik dengan browser GUI yang ditampilkan atau disembunyikan ( mode tanpa kepala ). Secara default, Anda tidak akan melihat browser apa pun terbuka di sistem host Anda.
Saat berjalan di dalam Docker, browser akan ditampilkan hanya di dalam wadah. Anda dapat membuka http: // localhost: 6080 untuk berinteraksi dengan browser yang berjalan di dalam wadah melalui NovNC (atau menggunakan klien VNC lainnya di port 5900).
Saat menjalankan skrip di luar Docker, browser akan disembunyikan secara default; Anda dapat menggunakan SHOW=1 ...
untuk menunjukkan UI (lihat opsi di bawah).
Saat menjalankan pertama kali, Anda harus masuk untuk setiap toko yang ingin Anda klaim game. Anda dapat masuk secara tidak langsung melalui terminal atau langsung di browser. Skrip akan menunggu sampai Anda berhasil masuk.
Akan ada petunjuk di terminal yang meminta Anda untuk memasukkan email, kata sandi, dan setelah itu beberapa OTP (satu kali sandi/kode keamanan) jika Anda memiliki 2FA/MFA (otentikasi dua-faktor) yang diaktifkan. Jika Anda ingin login sendiri melalui browser, Anda dapat menekan Escape di terminal untuk melewatkan petunjuk.
Setelah login, skrip akan terus mengklaim game saat ini. Jika masih menunggu setelah Anda sudah masuk, Anda dapat memulai kembali (dan membuka masalah). Jika Anda menjalankan skrip secara teratur, Anda tidak perlu masuk lagi.
Opsi diatur melalui variabel lingkungan yang memungkinkan untuk konfigurasi yang fleksibel.
TODO: Pada menjalankan pertama, skrip akan memandu Anda melalui konfigurasi dan menyimpan semua pengaturan ke data/config.env
. Anda dapat mengedit file ini secara langsung atau menjalankan node fgc config
untuk menjalankan Asisten Konfigurasi lagi.
Opsi/variabel yang tersedia dan nilai defaultnya:
Pilihan | Bawaan | Keterangan |
---|---|---|
MENUNJUKKAN | 1 | Tunjukkan browser jika 1. Default untuk Docker, tidak ditampilkan saat berjalan di luar. |
LEBAR | 1280 | Lebar browser yang dibuka (dan layar untuk VNC di Docker). |
TINGGI | 1280 | Tinggi browser yang dibuka (dan layar untuk VNC di Docker). |
Vnc_password | Kata Sandi VNC untuk Docker. Tidak ada kata sandi yang digunakan secara default! | |
MEMBERITAHU | Layanan Pemberitahuan untuk Digunakan (Pushover, Slack, Telegram ...), lihat di bawah. Memberitahukan | |
Notify_title | Judul opsional untuk pemberitahuan, misalnya untuk Pushover. | |
Browser_dir | Data/Browser | Direktori untuk profil browser, misalnya untuk beberapa akun. |
Batas waktu | 60 | Batas waktu untuk tindakan halaman apa pun. Seharusnya baik -baik saja bahkan pada mesin yang lambat. |
Login_timeout | 180 | Batas waktu untuk login dalam hitungan detik. Akan menunggu dua kali (prompt + manual login). |
Email default untuk login apa pun. | ||
KATA SANDI | Kata sandi default untuk login apa pun. | |
EG_EMAIL | Email game epik untuk login. Mengesampingkan email. | |
Eg_password | Kata sandi game epik untuk login. Mengesampingkan kata sandi. | |
Eg_otpkey | Game Epik MFA OTP Key. | |
Eg_parentalpin | Pin Kontrol Orang Tua Game Epik. | |
Pg_email | Email gaming utama untuk login. Mengesampingkan email. | |
PG_PASSWORD | Kata Sandi Permainan Prime untuk Masuk. Mengesampingkan kata sandi. | |
PG_OTPKEY | Kunci OTP MFA OTP Prime Gaming. | |
Pg_redeem | 0 | Prime Gaming: Cobalah untuk menebus kunci di toko eksternal (eksperimental). |
PG_CLAIMDLC | 0 | Permainan Prime: Cobalah untuk mengklaim DLC (eksperimental). |
GOG_EMAIL | Email GOG untuk login. Mengesampingkan email. | |
GOG_PASSWORD | Kata sandi GOG untuk login. Mengesampingkan kata sandi. | |
GOG_NEWSLETTER | 0 | Jangan berhenti berlangganan buletin setelah mengklaim permainan jika 1. |
Lg_email | Game Legacy: Email untuk digunakan untuk penebusan (jika tidak disetel, default ke pg_email) |
Lihat src/config.js
untuk semua opsi.
Anda dapat menambahkan opsi secara langsung di perintah atau memasukkannya ke dalam file untuk dimuat.
Anda dapat lulus variabel menggunakan -e VAR=VAL
, misalnya docker run -e [email protected] -e NOTIFY='tgram://bottoken/ChatID' ...
atau menggunakan --env-file fgc.env
di mana fgc.env
adalah file di sistem host Anda (lihat dokumen). Anda juga dapat docker cp
file konfigurasi Anda ke /fgc/data/config.env
dalam volume fgc
untuk menyimpannya dengan sisa data alih -alih pada host (contoh). Jika Anda menggunakan Docker Compose (atau Portainer dll.), Anda dapat memasukkan opsi di environment:
bagian.
Di Linux/MacOS Anda dapat mengawali variabel yang ingin Anda atur, misalnya [email protected] SHOW=1 node epic-games
akan menampilkan browser dan lewati meminta Anda untuk email login Anda. Pada windows Anda harus menggunakan set
, contoh. Anda juga dapat memasukkan opsi di data/config.env
yang akan dimuat oleh dotenv.
Skrip akan mencoba mengirim pemberitahuan untuk permainan yang berhasil diklaim dan kesalahan apa pun yang perlu masuk atau ditemui captcha (tidak boleh terjadi).
Pemberitahuan digunakan untuk pemberitahuan dan menawarkan banyak layanan termasuk Pushover, Slack, Telegram, SMS, Email, Desktop, dan Pemberitahuan Kustom. Anda hanya perlu menetapkan NOTIFY
ke Layanan Pemberitahuan yang ingin Anda gunakan, misalnya NOTIFY='mailto://myemail:[email protected]' 'pbul://o.gn5kj6nfhv736I7jC3cj3QLRiyhgl98b'
- merujuk pada daftar layanan dan contohnya.
Jika Anda mengatur opsi untuk email, kata sandi, dan kunci OTP, tidak akan ada petunjuk dan login harus terjadi secara otomatis. Ini opsional karena semua toko harus tetap masuk karena cookie disegarkan. Untuk mendapatkan kunci OTP, paling mudah untuk mengikuti panduan toko untuk menambahkan aplikasi Authenticator. Anda juga harus memindai kode QR yang ditampilkan dengan aplikasi favorit Anda untuk memiliki metode alternatif untuk 2FA.
Game Epik : Kunjungi Kata Sandi & Keamanan, Aktifkan 'Aplikasi Authenticator Pihak Ketiga', salin 'Kunci Entri Manual' dan gunakan untuk mengatur EG_OTPKEY
.
Permainan Prime : Kunjungi Amazon 'Akun Anda ›Login & Keamanan', Verifikasi 2 Langkah› Kelola ›Tambahkan Aplikasi Baru› Tidak dapat memindai barcode, salin tombol tebal dan menggunakannya untuk mengatur PG_OTPKEY
GOG : Hanya menawarkan OTP melalui email
Berhati -hatilah bahwa menyimpan kata sandi dan kunci OTP sebagai teks yang jelas mungkin merupakan risiko keamanan. Gunakan kata sandi yang unik/dihasilkan! TODO: Mungkin setidaknya menawarkan ke Base64 Encode untuk penyimpanan.
Jalankan node epic-games
(secara lokal atau di Docker).
Jalankan node prime-gaming
(secara lokal atau di Docker).
Namun, mengklaim game Amazon bekerja di luar kotak, untuk game di toko-toko eksternal yang Anda butuhkan untuk menautkan akun Anda atau menebus kunci.
Toko yang membutuhkan tautan akun: Game Epik, Battle.net, Origin.
Toko yang membutuhkan penebusan kunci: GOG.com, Game Microsoft, Game Legacy.
Kunci dan URL dicetak ke konsol, termasuk dalam pemberitahuan dan disimpan dalam data/prime-gaming.json
. Tangkapan layar halaman dengan kunci juga disimpan ke data/screenshots
. TODO: Tebus kunci di toko -toko eksternal.
Game epik biasanya memiliki dua game gratis setiap minggu , sebelum Natal setiap hari. Permainan Prime memiliki game baru setiap bulan atau lebih sering selama hari -hari utama. GOG biasanya memiliki satu game baru setiap pasangan minggu. Unreal Engine memiliki aset baru untuk diklaim setiap hari Selasa pertama dalam sebulan .
Aman untuk menjalankan skrip setiap hari.
Wadah/skrip akan mengklaim game yang tersedia saat ini dan kemudian keluar. Jika Anda ingin berjalan secara teratur, Anda harus menjadwalkan menjalankan sendiri:
Linux/MacOS: crontab -e
(contoh)
MacOS: Launchd
Windows: Penjadwal Tugas (Contoh), opsi lain, atau cukup masukkan perintah di file .bat
di AutoStart jika Anda sering restart ...
OS apa pun: Gunakan manajer proses seperti PM2
Docker Compose command: bash -c "node epic-games; node prime-gaming; node gog; echo sleeping; sleep 1d"
Selain itu tambahkan restart: unless-stopped
ke sana.
TODO: Tambahkan beberapa mode server di mana skrip terus berjalan dan mengklaim game misalnya setiap hari.
Periksa masalah terbuka dan komentar di sana atau buka masalah baru.
Jika Anda seorang pengembang, Anda dapat menggunakan PWDEBUG=1 ...
untuk memeriksa mana yang membuka debugger di mana Anda dapat melangkah melalui skrip.
Mencoba Epicgames-Freebies-Claimer, tetapi memiliki masalah sejak Epicgames memperkenalkan HCAPTCHA (lihat masalah).
Bermain -main dengan dalang sebelumnya, sekarang mencoba https://playwright.dev yang lebih baru yang sangat mirip. Playwright Inspector dan codegen
untuk menghasilkan skrip bagus, tetapi gagal menghasilkan kode yang tepat untuk mengklik tombol di iframe.
Menambahkan main.spec.ts yang merupakan skrip uji yang dihasilkan oleh npx playwright codegen
dengan perbaikan manual untuk mengklik tombol di iframe yang dibuat. Dapat dieksekusi dengan npx playwright test
. Test Runner memiliki opsi --debug
dan --timeout
dan dapat menjalankan naskah yang bagus. Namun, ini hanya bekerja hingga tombol 'Saya setuju', dan kemudian menunjukkan hcaptcha.
Menambahkan main.captcha.js yang menggunakan beta playwright-extra@next
dan @extra/recaptcha@next
(dari komentar di puppeteer-extra). Namun, playwright-extra
tampaknya sudah tua dan hilang :has-text
(diperbaiki di sini) dan page.frameLocator
, sehingga skrip tidak berjalan tanpa penyesuaian. Juga, pemecahan melalui 2Captcha adalah layanan berbayar yang membutuhkan waktu dan mungkin tidak dapat diandalkan.
Menambahkan Main.Stealth.js yang menggunakan plugin Stealth tanpa pembungkus playwright-extra
tetapi playwright
terkini (dari komentar). Evasi yang terdaftar sudah cukup untuk tidak menunjukkan hcaptcha. Skrip mengklaim game berhasil dalam mode non-headless.
Dihapus main.captcha.js
. Menggunakan Tes Playwright ( main.spec.ts
) alih -alih Perpustakaan ( main.stealth.js
) memiliki keuntungan dari CLI gratis seperti --debug
dan --timeout
.
Pemilih tombol sebaiknya menggunakan teks agar lebih stabil terhadap perubahan DOM.
Berganti nama repositori dari Epicgames-klaimer menjadi games-claimer karena skrip untuk Amazon Prime Gaming juga ditambahkan. Menghapus semua skrip lama demi hanya epic-games.js
dan prime-gaming.js
.
Game Epik: Mode headless
mendapat tantangan hcaptcha. Rincian/referensi lebih lanjut dalam masalah.
#11 memperkenalkan dockerfile untuk menjalankan non-headless di dalam wadah melalui XVFB yang membuatnya tanpa kepala untuk host yang menjalankan wadah.
v1.0 skrip mandiri node-game epik dan node prime-gaming menggunakan kromium.
Diubah menjadi Firefox untuk semua skrip karena kromium menyebabkan captchas. Mengklaim kemudian juga bekerja dalam mode tanpa kepala tanpa Docker.
Opsi yang ditambahkan melalui Env vars, dapat dikonfigurasi dalam data/config.env
.
Menambahkan generasi OTP melalui OTPLIB untuk login otomatis, bahkan dengan 2FA.
Menambahkan pemberitahuan melalui memberitahukan.
Logo dengan rasio aspek yang lebih kecil (untuk bot telegram dll.) :? - Emojipedia