Skip to content

Latest commit

 

History

History
207 lines (150 loc) · 11.5 KB

File metadata and controls

207 lines (150 loc) · 11.5 KB

بوت مواعيد VFS — التوثيق (العربية)

← README الرئيسي بالإنجليزية (الافتراضي)

بوت بلغة Python للتعامل مع بوابات VFS Global (تسجيل دخول، مسارات مواعيد، وغيرها حسب تنفيذ كل بلد) لوجهات ألمانيا (DE) وإيطاليا (IT) والبرتغال (PT)، مع دعم اختياري لـ GPM، وتشغيل بعدة نوافذ/خيوط، وإشعارات عبر Telegram والبريد وTwilio.

المستودع: github.com/code-root/vfs-appointment-bot

GitHub: CI والأتمتة


تنويه قانوني وأخلاقي

استخدم هذا المشروع وفق شروط استخدام VFS Global والقوانين المعمول بها. المطوّرون غير مسؤولين عن سوء الاستخدام أو تقييد الحسابات أو فشل الحجز. بيانات الدخول وأي أتمتة تقع على مسؤوليتك وحدك.

المميزات

  • توجيه حسب بلد الوجهة: vfs_bot/vfs_bot_factory.py يختار الصنف المناسب لـ DE / IT / PT.
  • بلد المصدر بصيغة ISO ثنائية (مثل AE)، ورابط البوابة يُعرَّف في config/vfs-url.ini بالمفتاح مصدر-وجهة.
  • Playwright مع playwright-stealth وبصمات متصفح واقعية؛ نوع المتصفح من config/browser.ini (chromium / firefox / webkit).
  • GPM اختياري: تشغيل/إيقاف البروفايل عبر API؛ يوجد دعم Selenium لبعض عمليات GPM.
  • إشعارات: تيليجرام، بريد، Twilio عبر notification/.
  • نوافذ متوازية: في run_vfs_bot.py يمكن تشغيل عدة خيوط حتى يُعثر على موعد أو يتوقف البرنامج.
  • إدارة بروفايلات GPM: مجموعة VFS_Bot, ملف used_profiles.json, سكربتات التعبئة والإعادة — التفاصيل في PROFILE_MANAGEMENT_README.md.
  • بروكسيات: utils/proxy_manager.py وملف proxies.txt (لا ترفع أسراراً للمستودع — انظر .gitignore).

المتطلبات

  • Python 3.8+
  • تثبيت متصفحات Playwright (chromium وإن لزم firefox)
  • حساب VFS صالح والرابط الصحيح في vfs-url.ini
  • GPM (اختياري) على العنوان الافتراضي أو المعدّل في config/gpm.ini

تثبيت المكتبات

pip install -r requirements.txt
playwright install chromium
playwright install firefox   # إذا كان browser.ini يستخدم firefox

البدء السريع

  1. استنساخ المشروع

    git clone https://github.com/code-root/vfs-appointment-bot.git
    cd vfs-appointment-bot
  2. إعداد مجلد config/
    يتم دمج كل ملفات *.ini داخل config/ تلقائياً (utils/config_reader.py). يمكن إضافة ملف إضافي عبر متغير البيئة VFS_BOT_CONFIG_PATH.

    • نسخ مثال GPM:
      cp config_gpm_example.ini config/gpm.ini
    • config/vfs-credential.ini: البريد وكلمة مرور VFS (حساس — مُستثنى في .gitignore).
    • config/vfs-url.ini: أسطر مثل AE-PT = https://...
    • config/notification.ini: إعدادات الإشعارات (لا ترفع الأسرار).
    • config/appointment-params.ini: قيم افتراضية لـ visa_center, visa_category, visa_sub_category ببادئات DE-, IT-, PT-.
    • config/browser.ini: نوع المتصفح، headless, وخيارات اختيارية.
    • config/gpm.ini: تفعيل GPM، api_url, profile_id, مسارات API، auto_stop, رمز اختياري، واسم مجموعة اختياري.
  3. التشغيل (الطريقة الموصى بها)

    python run_vfs_bot.py
    • Windows: run.bat (فحص Python والمكتبات، ترميز UTF-8، ثم تشغيل البوت).
    • Linux/macOS: run.sh أو python3 run_vfs_bot.py.
  4. تعديل السلوك داخل run_vfs_bot.py

    • source_country_code, destination_country_code
    • appointment_params أو None
    • number_of_windows (عدد النوافذ المتوازية)
    • تجديد سياق البروفايل تقريباً كل 20 دقيقة
    • فحص مستمر كل 5 ثوانٍ داخل vfs_bot.run عند التفعيل

تشغيل بديل: main.py

سطر أوامر مع:

  • -sc / --source-country-code
  • -dc / --destination-country-code
  • -ap / --appointment-params بصيغة مفتاح=قيمة,...

يعمل في حلقة مع انتظار من config/default.ini (interval).
ملاحظة: شغّل main.py من جذر المشروع (نفس مجلد run_vfs_bot.py). الملف يضيف جذر المشروع إلى sys.path تلقائياً.

هيكل المشروع والملفات (تفصيلي)

نقاط الدخول ومجلد scripts/

نفّذ python scripts/... من جذر المشروع حتى يُحمَل config/ والمسارات النسبية بشكل صحيح.

المسار الوظيفة
run_vfs_bot.py التشغيل الرئيسي، التحقق من الإعدادات، تعدد الخيوط، استدعاء البوت.
main.py واجهة argparse وحلقة واحدة مع عد تنازلي.
scripts/create_gpm_profile.py إنشاء بروفايل GPM تفاعلي عبر Selenium.
scripts/create_gpm_profiles.py إنشاء دفعة بروفايلات (مثلاً حتى 100 في مجموعة VFS_Bot).
scripts/populate_used_profiles.py تعبئة used_profiles.json من بروفايلات المجموعة.
scripts/reset_used_profiles.py إعادة تعيين تتبع الاستخدام.
scripts/test_gpm_connection.py اختبار اتصال GPM عبر HTTP.

المجلدات البرمجية

المسار الوصف
vfs_bot/ المنطق الأساسي: vfs_bot.py (الفئة الأساسية)، vfs_bot_de.py, vfs_bot_it.py, vfs_bot_pt.py, vfs_bot_factory.py.
notification/ تيليجرام، بريد، Twilio، والمصنع notification_client_factory.py.
utils/ إعدادات (config_reader/config_writer)، مؤقت، GPM، إدارة البروفايلات، البروكسيات، الحسابات، البريد، التواريخ.

ملفات config/

الملف الغرض
vfs-credential.ini بيانات الدخول لـ VFS
vfs-url.ini روابط تسجيل الدخول حسب مصدر-وجهة
default.ini interval لحلقة main.py
appointment-params.ini معاملات الموعد الافتراضية لكل وجهة
browser.ini نوع المتصفح والوضع headless وخيارات العرض
gpm.ini إعدادات GPM الكاملة
notification.ini إعدادات قنوات الإشعار

وثائق إضافية (docs/)

الملف المحتوى
README_GPM.md دليل GPM واستكشاف الأعطال
README_RUN.md طرق التشغيل (ويندوز/لينكس/ماك)
PROFILE_MANAGEMENT_README.md إدارة مجموعات البروفايلات وused_profiles.json
GITHUB.md إنشاء المستودع على GitHub والرفع واستكشاف أخطاء git
README.md التوثيق بالإنجليزية (الافتراضي في جذر المشروع)
diagrams/PROCESS.md مخططات Mermaid: إعداد → متصفح/GPM → دخول VFS → مسار الموعد → فحص → إشعار.
diagrams/vfs-journey-overview.svg صورة SVG توضيحية (عربي + إنجليزي).

ملفات أخرى

العنصر ملاحظات
app.log سجل التشغيل (مُستثنى من git عادة)
used_profiles.json تتبع بروفايلات GPM المستخدمة
proxies.txt قائمة بروكسيات
.env متغيرات بيئة محلية
docs/images/error_email_field_not_found.png لقطة تشخيص عند فشل العثور على حقل البريد
assets/ أصول ثابتة اختيارية (مثل صور QR)

البلدان المدعومة (الوجهة)

الرمز البلد
DE ألمانيا
IT إيطاليا
PT البرتغال

استكشاف الأخطاء

  • راجع app.log
  • تأكد أن مفتاح vfs-url.ini يطابق رمز المصدر والوجهة
  • لـ GPM: python scripts/test_gpm_connection.py و README_GPM.md
  • على Windows استخدم run.bat لدعم العربية وUTF-8 في الطرفية

المساهمة

  1. Fork للمستودع
  2. فرع جديد للميزة
  3. commit وpush
  4. فتح Pull Request

الترخيص

مشروع مفتوح المصدر — الاستخدام وفق سياسة المستودع والمسؤولية الشخصية.

شكر وتقدير

  • Playwright
  • بيئة GoLogin / GPM
  • المساهمون

دعم المشروع

إذا كان هذا المفيداً لك، فالدعم اختياري ويساعد على الصيانة والتطوير. اختر الطريقة الأنسب لك.

القناة طريقة الدعم
PayPal paypal.me/sofaapi
Binance Pay / المعرف UID 1138751298 — الإرسال من تطبيق Binance (Pay / التحويل الداخلي عند توفره).
Binance — إيداع (الويب) إيداع العملات المشفرة (Binance) — سجّل الدخول، اختر الأصل، ثم الشبكة BSC (BEP20).
عنوان BSC (للنسخ) 0x94c5005229784d9b7df4e7a7a0c3b25a08fd57bc

الشبكة: استخدم BSC (BEP-20) فقط. هذا العنوان مخصص لـ USDT (BEP-20) وBTC على BSC (Binance-Peg / «BTC» على BSC داخل التطبيق)، بما يتوافق مع شاشات الإيداع في Binance. لا ترسل بتكوين أصلي (on-chain BTC)، ولا ERC-20، ولا NFTs إلى هذا العنوان.

رموز QR للإيداع (امسح ضوئياً من Binance أو أي محفظة BSC)

USDT · BSC BTC · BSC
USDT deposit QR — BSC BTC on BSC deposit QR