المطالبة بألعاب مجانية بشكل دوري
متجر الألعاب الملحمية
ألعاب الأمازون برايم
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
يمنحك هذا حاليًا تحديًا لكسر في الألعاب الملحمية. حتى يتم إصلاح العدد رقم 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 مع الألعاب المطالب بها ، والرموز لاسترداد لقطات الشاشة) في fgc
Docker Volume.
تثبيت node.js
استنساخ/قم بتنزيل هذا المستودع والقرص cd
فيه في محطة
تشغيل npm install
قم بتشغيل pip install apprise
(أو استخدم 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 لوضع شبه رأس ، فيمكنك التشغيل داخل جهاز افتراضي أو على خادم أو تستيقظ على جهاز الكمبيوتر الخاص بك في الليل لتجنب المقاطعة.
تبدأ جميع البرامج النصية على مثيل Firefox الآلي ، إما مع عرض واجهة المستخدم الرسومية للمستعرض أو المخفي ( الوضع بدون رأس ). بشكل افتراضي ، لن ترى أي متصفح مفتوح على نظام المضيف الخاص بك.
عند الركض داخل Docker ، سيتم عرض المتصفح فقط داخل الحاوية. يمكنك فتح http: // localhost: 6080 للتفاعل مع المتصفح الذي يعمل داخل الحاوية عبر novnc (أو استخدام عملاء VNC الآخرين على المنفذ 5900).
عند تشغيل البرامج النصية خارج Docker ، سيتم إخفاء المتصفح افتراضيًا ؛ يمكنك استخدام SHOW=1 ...
لإظهار واجهة المستخدم (انظر الخيارات أدناه).
عند تشغيله لأول مرة ، يجب عليك تسجيل الدخول لكل متجر تريد المطالبة بالألعاب. يمكنك تسجيل الدخول بشكل غير مباشر عبر المحطة أو مباشرة في المتصفح. ستنتظر البرامج النصية حتى يتم تسجيل الدخول بنجاح.
سيكون هناك مطالبات في المحطة تطلب منك إدخال البريد الإلكتروني وكلمة المرور ، وبعد ذلك بعض OTP (رمز كلمة المرور/الأمان لمرة واحدة) إذا تم تمكين 2FA/MFA (مصادقة ثنائية/متعددة العوامل). إذا كنت ترغب في تسجيل الدخول بنفسك عبر المتصفح ، فيمكنك الضغط على Escape في المحطة لتخطي المطالبات.
بعد تسجيل الدخول ، سيستمر البرنامج النصي في المطالبة بالألعاب الحالية. إذا كان لا يزال ينتظر بعد تسجيل الدخول بالفعل ، فيمكنك إعادة تشغيله (وفتح مشكلة). إذا قمت بتشغيل البرامج النصية بانتظام ، فلن تضطر إلى تسجيل الدخول مرة أخرى.
يتم تعيين الخيارات عبر متغيرات البيئة التي تسمح بالتكوين المرن.
TODO: في التشغيل الأول ، سوف يرشدك البرنامج النصي من خلال التكوين وحفظ جميع الإعدادات إلى data/config.env
. يمكنك تحرير هذا الملف مباشرة أو تشغيل node fgc config
لتشغيل مساعد التكوين مرة أخرى.
الخيارات/المتغيرات المتاحة وقيمها الافتراضية:
خيار | تقصير | وصف |
---|---|---|
يعرض | 1 | عرض المتصفح إذا كان 1. الافتراضي لـ Docker ، لا يظهر عند الركض في الخارج. |
عرض | 1280 | عرض المتصفح المفتوح (وشاشة VNC في Docker). |
ارتفاع | 1280 | ارتفاع المتصفح المفتوح (والشاشة لـ VNC في Docker). |
vnc_password | كلمة مرور VNC لـ Docker. لا كلمة مرور تستخدم افتراضيا! | |
إخطار | خدمات الإخطار للاستخدام (Bushover ، Slack ، Telegram ...) ، انظر أدناه. إبلاغ | |
Notify_title | العنوان الاختياري للإشعارات ، على سبيل المثال للعمالة الرثجة. | |
Browser_dir | البيانات/المتصفح | دليل ملف تعريف المتصفح ، على سبيل المثال لحسابات متعددة. |
نفذ الوقت | 60 | مهلة أي إجراء صفحة. يجب أن يكون بخير حتى على الآلات البطيئة. |
login_timeout | 180 | مهلة تسجيل الدخول في ثوان. سوف تنتظر مرتين (موجه + تسجيل الدخول اليدوي). |
بريد إلكتروني | البريد الإلكتروني الافتراضي لأي تسجيل الدخول. | |
كلمة المرور | كلمة المرور الافتراضية لأي تسجيل دخول. | |
على سبيل المثال | ألعاب ملحمية البريد الإلكتروني لتسجيل الدخول. يتجاوز البريد الإلكتروني. | |
eg_password | كلمة مرور الألعاب الملحمية لتسجيل الدخول. يتجاوز كلمة المرور. | |
eg_otpkey | ألعاب ملحمية MFA OTP مفتاح. | |
eg_parentalpin | ألعاب ملحمية أدوات التحكم الوالدية. | |
pg_email | البريد الإلكتروني للألعاب الأولية لتسجيل الدخول. يتجاوز البريد الإلكتروني. | |
pg_password | كلمة مرور الألعاب الأولية لتسجيل الدخول. يتجاوز كلمة المرور. | |
pg_otpkey | Prime Gaming MFA OTP Key. | |
PG_REDEEM | 0 | Prime Gaming: حاول استرداد المفاتيح على المتاجر الخارجية (التجريبية). |
pg_claimdlc | 0 | Prime Gaming: حاول المطالبة 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 (لا ينبغي أن تحدث).
يتم استخدام الإبرام للإشعارات ويقدم العديد من الخدمات بما في ذلك الإرهاق والركود والبرقية والرسائل القصيرة والبريد الإلكتروني وسطح المكتب والإشعارات المخصصة. تحتاج فقط إلى تعيين NOTIFY
لخدمات الإخطار التي تريد استخدامها ، على سبيل المثال ، NOTIFY='mailto://myemail:[email protected]' 'pbul://o.gn5kj6nfhv736I7jC3cj3QLRiyhgl98b'
- الرجوع إلى قائمة الخدمات والأمثلة.
إذا قمت بتعيين خيارات البريد الإلكتروني وكلمة المرور ومفتاح OTP ، فلن يكون هناك أي مطالبات ويجب أن تحدث تسجيلات تسجيل الدخول تلقائيًا. هذا اختياري حيث يجب أن تظل جميع المتاجر مسجلة نظرًا لأن ملفات تعريف الارتباط يتم تحديثها. للحصول على مفتاح OTP ، من الأسهل اتباع دليل المتجر لإضافة تطبيق مصادقة. يجب عليك أيضًا مسح رمز الاستجابة السريعة المعروضة باستخدام تطبيقك المفضل للحصول على طريقة بديلة لـ 2FA.
ألعاب Epic : تفضل بزيارة كلمة المرور والأمان ، وتمكين "تطبيق Authenticator من الطرف الثالث" ، ونسخ "مفتاح الإدخال اليدوي" واستخدمه لتعيين EG_OTPKEY
.
Prime Gaming : تفضل بزيارة Amazon "حسابك› تسجيل الدخول والأمان "، التحقق من خطوتين› إدارة ›إضافة تطبيق جديد› لا يمكن مسح الباركود ، ونسخ المفتاح BOLD واستخدامه لتعيين PG_OTPKEY
GOG : يقدم OTP فقط عبر البريد الإلكتروني
احذر من أن تخزين كلمات المرور ومفاتيح OTP كنص واضح قد يكون خطراً على الأمان. استخدم كلمة مرور فريدة/تم إنشاؤها! TODO: ربما عرض على الأقل إلى BASE64 الترميز للتخزين.
قم بتشغيل node epic-games
(محليًا أو في Docker).
قم بتشغيل node prime-gaming
(محليًا أو في Docker).
ومع ذلك ، فإن المطالبة بأن ألعاب Amazon تعمل خارج الصندوق ، ومع ذلك ، للألعاب على المتاجر الخارجية ، تحتاج إما إلى ربط حسابك أو استرداد مفتاح.
المتاجر التي تتطلب ربط الحساب: ألعاب Epic ، Battle.net ، Origin.
المتاجر التي تتطلب استرداد مفتاح: GOG.com ، ألعاب Microsoft ، ألعاب Legacy.
تتم طباعة المفاتيح وعناوين URL إلى وحدة التحكم ، المدرجة في الإخطارات وحفظها في data/prime-gaming.json
. يتم حفظ لقطة شاشة للصفحة مع المفتاح أيضًا في data/screenshots
. TODO: استرداد مفاتيح على المتاجر الخارجية.
عادةً ما يكون للألعاب الملحمية مباراتين مجانيتين كل أسبوع ، قبل عيد الميلاد كل يوم. لدى Prime Gaming ألعاب جديدة كل شهر أو في كثير من الأحيان خلال الأيام الأولية. عادةً ما يكون لدى GOG لعبة جديدة واحدة لكل أزواج من الأسابيع. يمتلك Unreal Engine أصولًا جديدة للمطالبة بكل يوم ثلاثاء من الشهر .
من الآمن تشغيل البرامج النصية كل يوم.
ستطالب الحاوية/البرامج النصية بالألعاب المتاحة حاليًا ثم الخروج. إذا كنت تريد أن تعمل بانتظام ، فيجب عليك تحديد موعد للتشغيل بنفسك:
Linux/MacOS: crontab -e
(مثال)
MacOS: LaunchD
Windows: جدولة المهام (مثال) ، خيارات أخرى ، أو فقط وضع الأمر في ملف .bat
في Autostart إذا قمت بإعادة التشغيل في كثير من الأحيان ...
أي نظام تشغيل: استخدم مدير العملية مثل 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 freedbies claimer ، ولكن واجهت مشاكل منذ أن قدمت epicgames hcaptcha (انظر المشكلة).
لعبت مع Puppeteer من قبل ، والآن محاولة أحدث https://playwright.dev وهو مشابه جدا. مفتش Playwright و codegen
لإنشاء البرامج النصية لطيفة ، ولكنها فشل في إنشاء الرمز المناسب للنقر فوق زر في iframe.
تمت إضافة main.spec.ts الذي كان البرنامج النصي اختبار تم إنشاؤه بواسطة npx playwright codegen
مع الإصلاح اليدوي للنقر على الأزرار في iframe التي تم إنشاؤها. يمكن تنفيذها بواسطة npx playwright test
. يحتوي عداء الاختبار على خيارات --debug
و --timeout
ويمكنه تنفيذ TypeScript وهو لطيف. ومع ذلك ، فقد عمل هذا فقط على الزر "أوافق" ، ثم أظهر hcaptcha.
تمت إضافة main.captcha.js التي تستخدم بيتا من playwright-extra@next
و @extra/recaptcha@next
(من التعليق على Puppeteer-Extra). ومع ذلك ، يبدو أن playwright-extra
قديم ومفقود :has-text
Selector (ثابت هنا) و page.frameLocator
، لذلك لم يتم تشغيل البرنامج النصي بدون تعديلات. أيضًا ، يعد الحل عبر 2Captcha خدمة مدفوعة الأجر تستغرق وقتًا وقد تكون غير موثوقة.
تمت إضافة main.stealth.js الذي يستخدم المكون الإضافي الخفي بدون غلاف playwright-extra
- playwright
المحدث (من التعليق). التكاثرات المدرجة كافية لعدم إظهار hcaptcha. نعلت لعبة البرنامج النصي بنجاح في الوضع بدون رأس.
تمت إزالة main.captcha.js
. باستخدام اختبار الكاتب المسرحي ( main.spec.ts
) بدلاً من المكتبة ( main.stealth.js
) يتمتع بميزة CLI الحرة --debug
و --timeout
.
يفضل أن يستخدم محددات الأزرار النص حتى يكونوا أكثر استقرارًا مقابل التغييرات في DOM.
تم إعادة تسمية المستودع من epicgames-claimer إلى claimer للألعاب الحرة حيث تمت إضافة برنامج نصي للألعاب Prime Amazon. إزالة جميع البرامج النصية القديمة لصالح فقط epic-games.js
و prime-gaming.js
.
الألعاب الملحمية: يحصل الوضع headless
على تحدي Hcaptcha. مزيد من التفاصيل/المراجع في القضية.
#11 قدمت Dockerfile لتشغيل بدون رأس داخل الحاوية عبر XVFB مما يجعلها مقطوعة الرأس للمضيف الذي يعمل على تشغيل الحاوية.
V1.0 البرامج النصية المستقلة للألعاب الملحمية والعقدة بالألعاب الرئيسية باستخدام الكروم.
تغيرت إلى Firefox لجميع البرامج النصية منذ أن أدى الكروم إلى Captchas. عند المطالبة بعد ذلك ، عملت أيضًا في وضع مقطوعة الرأس بدون Docker.
الخيارات المضافة عبر env vars ، قابلة للتكوين في data/config.env
.
تمت إضافة توليد OTP عبر OTPlib لتسجيل الدخول التلقائي ، حتى مع 2FA.
الإشعارات المضافة عبر الإفطار.
شعار مع نسبة العرض إلى الارتفاع الأصغر (لبرقية روبوت وما إلى ذلك) :؟ - الرموز الرباعية