بوت تيليجرام يعرض سجلات اللاعبين، مع لوحة إدارة وصفحة ويب بنفس الوظيفة.
- البوت: المستخدم يكتب اسم المستخدم وكلمة المرور اللذين أعطيتهما له، فيظهر سجله.
- لوحة الإدارة
/admin: إنشاء/تعديل/حذف حسابات اللاعبين وسجلاتهم. - صفحة اللاعب
/con/dskl/npn: نفس عمل البوت على الويب (تسجيل دخول ثم عرض السجل). - القاعدة: Turso، وملف
database.jsينشئ الجداول ويحدّثها تلقائياً.
TELEGRAM_BOT_TOKEN · APP_URL · TURSO_DATABASE_URL · TURSO_AUTH_TOKEN · ADMIN_PASSWORD · SESSION_SECRET
- ارفع الملفات إلى نفس مستودع GitHub (استبدل القديمة) — Vercel ينشر تلقائياً.
- افتح
https://موقعك/adminوادخل بـADMIN_PASSWORD. - اضغط «ربط البوت وتحديثه» في بطاقة «حالة البوت». هذا يضبط الـ Webhook (مع توكن سرّي) واسم البوت
Komuy botوقائمة الأوامر. لازم تضغطه مرة واحدة بعد أول نشر، وإلا لن يرد البوت. - اضغط «+ إنشاء حساب مستخدم جديد» وسجّل أول لاعب، ثم جرّب
/startفي البوت.
- الجداول الجديدة:
players,bot_sessions,login_attempts,komuy_migrations. - الجداول القديمة (
users,events,problems...) تبقى كما هي دون مساس. - التحديث تلقائي عند أول طلب وعند كل
npm run build. يدوياً:npm run db:migrate. - لتعديل بنية القاعدة مستقبلاً: أضف عنصراً جديداً في آخر مصفوفة
MIGRATIONSداخلdatabase.js(لا تعدّل القديم).
- كلمات المرور مخزّنة مشفّرة (bcrypt) ولا يمكن عرضها. لتغيير كلمة مرور لاعب: افتح «تعديل» وأدخل كلمة جديدة (يُسجَّل خروجه تلقائياً).
- 5 محاولات دخول خاطئة تقفل صاحبها 15 دقيقة (للبوت والموقع ولوحة الإدارة).
- البوت يحذف رسالة كلمة المرور بعد قراءتها، ويعمل في المحادثات الخاصة فقط.
- الـ Webhook يرفض أي طلب لا يحمل التوكن السرّي (يُشتق من
SESSION_SECRET؛ إن غيّرته اضغط «ربط البوت» مجدداً). - كل عمليات لوحة الإدارة تتحقق من الجلسة داخل الدالة نفسها، وليس فقط عبر الـ middleware.