الدور: مهندس أتمتة Node.js أول
الهدف:
ابنِ نظامًا حقيقيًا وجاهزًا للإنتاج لأتمتة تسجيل الحسابات وإعداد التقارير باستخدام Node.js.
يجب أن ينفّذ النظام أتمتة متصفح فعلية وعمليات شبكة حقيقية.
بدون محاكاة، بدون بيانات وهمية، بدون عناصر نائبة، وبدون كود صوري.
سياسة المحاكاة:
لا تحاكِ أي شيء إطلاقًا.
لا تولّد مخرجات وهمية.
لا تستخدم خدمات تجريبية أو وهمية.
يجب أن تكون كل آليات العمل البرمجية قابلة للتنفيذ وتعمل فعليًا.
التقنيات المطلوبة:
- Node.js (ES2022+)
- Playwright (مفضّل) أو puppeteer-extra + stealth plugin
- وحدة fs الأصلية
- readline أو inquirer
- axios (للـ API وتيليجرام)
- Express (لـ dashboard API)
متطلبات النظام:
1) نظام الإدخال
- اقرأ عناوين البريد الإلكتروني بشكل غير متزامن من "gmailer.txt"
- كل سطر = عنوان بريد إلكتروني واحد
- اطلب من المستخدم إدخال:
• بادئة اسم المستخدم
• كلمة المرور
• وضع headless mode (true/false)
- يجب ألا يوقف التنفيذ الـ event loop
2) أتمتة المتصفح
لكل عنوان بريد إلكتروني:
- شغّل المتصفح مع خيار headless mode
- استخدم User-Agent عشوائيًا من قائمة داخلية
- طبّق تأخيرات عشوائية بين الإجراءات
- افتح browserContext جديدًا لكل محاولة
- امسح الكوكيز تلقائيًا
- تعامل مع أخطاء التنقّل بشكل مناسب بدون أن ينهار النظام
3) دعم البروكسي المجاني (بدون خدمات مدفوعة)
- استخدم فقط بروكسيات HTTP/HTTPS عامة ومجانية
- حمّل البروكسيات من proxies.txt
- بدّل البروكسي لكل حساب
- إذا فشل البروكسي → أعد المحاولة بالبروكسي التالي
- يجب أن يعمل النظام حتى بدون بروكسي
4) تجنّب رصد البوت / التقنيات المسموحة
- حجم viewport عشوائي
- سرعة كتابة عشوائية
- حركات ماوس عشوائية إذا كانت مدعومة
- إخفاء navigator.webdriver
- استخدم تقنيات التخفي المقبولة فقط
- ممنوع استخدام أي طرق تجاوز غير قانونية
5) مسار إنشاء الحساب
يجب أن يكون النظام مبنيًا بشكل معياري بحيث يمكن إعداد الموقع المستهدف لاحقًا.
الخطوات المتوقعة:
- الانتقال إلى صفحة التسجيل
- تعبئة البريد الإلكتروني واسم المستخدم وكلمة المرور
- إرسال النموذج
- اكتشاف النجاح أو الفشل
- استخراج أي بيانات تأكيد إذا كانت متاحة
6) نظام إخراج الملفات
عند النجاح:
أضف إلى:
outputs/basarili_hesaplar.txt
الصيغة:
email:username:password
أضف اسم المستخدم فقط إلى:
outputs/kullanici_adlari.txt
أضف كلمة المرور فقط إلى:
outputs/sifreler.txt
عند الفشل:
أضف إلى:
logs/error_log.txt
الصيغة:
Email: X | Error: MESSAGE
7) إشعارات تيليجرام
اختياري لكن يجب أن يكون مطبّقًا:
إذا كانت TELEGRAM_TOKEN و CHAT_ID مضبوطة:
أرسل الرسالة التالية:
"New Account Created:
Email: X
User: Y
Time: Z"
8) Dashboard API لحظي
أنشئ خادم Express على المنفذ 3000.
المسارات:
GET /stats
يرجع JSON:
{
total,
success,
failed,
running,
elapsedSeconds
}
GET /logs
يرجع آخر 100 سطر من السجلات
يجب أن تتحدّث لوحة المتابعة بشكل لحظي.
9) تقرير نهائي في الكونسول
بعد معالجة كل عناوين البريد الإلكتروني:
اعرض console.table يحتوي على:
- إجمالي المحاولات
- الناجحة
- الفاشلة
- نسبة النجاح %
- إجمالي المدة (بالثواني والدقائق)
10) معالجة الأخطاء
- يجب أن تكون كل محاولة إنشاء حساب داخل try/catch
- يجب ألا يؤدي الفشل إلى تعطيل النظام
- استمر في معالجة بقية عناوين البريد الإلكتروني
11) جودة الكود
- استخدم async/await بالكامل
- بنية معيارية Modular architecture
- بدون أي عمليات blocking عامة
- فصل واضح للمسؤوليات
هيكلة المشروع:
/project-root
main.js
gmailer.txt
proxies.txt
/outputs
/logs
/dashboard
متطلبات المخرجات:
أنتج:
1) كود Node.js كامل وقابل للتشغيل
2) package.json
3) تعليمات تشغيل واضحة
4) بدون Docker
5) بدون أدوات مدفوعة
6) بدون محاكاة
7) بدون أقسام ناقصة
مهم:
إذا تعذّر تنفيذ أي متطلب،
قدّم أقرب بديل حقيقي وعملي.
لا تسأل أسئلة.
لا تكتفِ بالشرح فقط.
أنتج كودًا كاملًا يعمل فعليًا.