# صندوق التواصل — محادثات عامة (الإصدار 3)
إعداد وإشراف الأستاذ خليل البلوشي

واجهة عربية قريبة من تطبيقات المحادثة: قائمة أسئلة، فقاعات للسائل والمعلم، بحث، مظهر فاتح وداكن، وإرفاق صور. تعمل على الهاتف والتابلت والحاسب والشاشات الصفية.

الموقع: https://omk811.github.io/info/
الإدارة: https://omk811.github.io/info/admin.html

## تحديث ضروري مرة واحدة لتفعيل ردود السائل
واجهة GitHub تُحدَّث تلقائيًا بعد رفع هذه الملفات. **رفع Code.gs إلى GitHub لا يحدّث مشروع Google تلقائيًا.**

1. افتح [Code.gs كاملًا](https://github.com/omk811/info/blob/main/Code.gs) واضغط Raw، ثم انسخ جميع محتوياته.
2. في مشروع Apps Script الحالي استبدل محتوى Code.gs بالكامل. لا تترك الدوال القديمة مكررة في ملفات .gs أخرى.
3. اضغط حفظ. ثم النشر ← إدارة عمليات النشر ← تعديل النشر الحالي ← إصدار جديد ← نشر. حافظ على التنفيذ بصفتك أنت والوصول الذي يسمح للمتابعين باستخدام الموقع. وافق على الصلاحيات إذا طلبها Google.
4. افتح رابط /exec: يجب أن يعرض version: "3.0" وconfigured: true. ارجع إلى الموقع وحدّث الصفحة.

إذا كان الخادم السابق مهيّأً بالفعل، فلا تحتاج إلى تغيير كلمة المرور أو إعادة إدخال الخصائص. يُنشئ الخادم ورقة «ردود المحادثات» تلقائيًا عند أول استخدام، ويضيف أعمدة بيانات المحادثة دون حذف الأعمدة والسجلات السابقة.

إذا ظهرت configured: false فقط: أضف ADMIN_PASSWORD إلى خصائص النص البرمجي بكلمة مرور جديدة من 12 إلى 128 حرفًا، ثم شغّل الدالة الظاهرة setupSystem من محرر المشروع. يتحقق مشغل التهيئة من حساب Google، ويحوّل كلمة المرور إلى بصمة ويمسح قيمتها الأصلية بعد الإعداد. لا تضف ملفات HTML إلى Apps Script؛ الصفحات موجودة في GitHub.

إذا أنشأت نشرًا جديدًا برابط مختلف، بدّل API_URL في assets/chat.js إلى رابط /exec الجديد. الرابط الموجود في هذا الإصدار هو آخر رابط قدّمه الأستاذ خليل في هذه المحادثة.

## طريقة الاستخدام
- الزائر يقرأ السؤال وردود المعلم والسائل من القائمة، دون تسجيل دخول ودون رمز متابعة.
- يختار «اطرح سؤالًا جديدًا»، ويكتب اسمه الأول وسؤاله، ويختار صورة إن احتاج، ثم يرسل. يظهر إشعار واضح قبل الإرسال بأن السؤال والصور والردود عامة.
- تظهر المحادثة الجديدة للجميع مباشرة عند استخدام خادم الإصدار 3؛ لا يشترط أن يكون المعلم قد ردّ عليها.
- تُحفظ صلاحية السائل للمتابعة تلقائيًا في متصفحه، فلا يحتاج إلى نسخ كود. يجد أسئلته في «أسئلتي»، ويمكنه الرد من داخل المحادثة.
- في الهاتف، يفتح النقر على السؤال المحادثة كاملة. زر الرجوع أعلى المحادثة يعيد القائمة. مربع الكتابة ثابت في الأسفل.
- يستطيع المعلم إرسال ردود متعددة، وإخفاء رسالة غير مناسبة وإظهارها، وأرشفة المحادثة واستعادتها. لا تحذف الأرشفة سجلات الجدول. استعادة محادثة عامة جديدة تعيد إتاحتها؛ السجلات القديمة الخاصة لا تُنشر بالاستعادة.
- الصور تضغط قبل الإرسال، وتُحمّل عند طلب عرضها؛ ملفات Drive نفسها خاصة ولا تحتاج إلى مشاركة عامة.
- تُحفظ مسودات الكتابة تلقائيًا. إذا ضاعت الاستجابة بعد الحفظ، تعيد المحاولة استخدام معرف الإرسال نفسه لمنع تكرار السؤال أو الرد، حتى بعد إعادة تحميل الصفحة.

## صلاحية السائل دون كود
الحفظ في localStorage على الجهاز، مع مفتاح عشوائي لا يعرضه الموقع ولا يتضمنه رابط مشاركة السؤال. لا تعتمد صلاحية الرد على تطابق الاسم؛ لا يستطيع زائر آخر انتحال السائل بكتابة اسمه.

مسح بيانات الموقع أو استخدام متصفح أو جهاز مختلف يفقد صلاحية متابعة السؤال بوصفك صاحبه. تبقى قراءة المحادثة العامة متاحة؛ يمكنك طرح سؤال جديد للإشارة إلى الحوار السابق. لا توجد مزامنة حسابات أو استعادة هوية بين الأجهزة في هذا الإصدار. لا تتضمن روابط مشاركة الأسئلة أي مفاتيح سرية.

## السجلات القديمة والانتقال
- جميع السجلات السابقة محفوظة في ورقة «الملاحظات» ولا تُحذف أو تتحول إلى محادثات عامة تلقائيًا.
- الرسائل القديمة التي أُرسلت كرسائل خاصة تبقى خاصة. الرسائل المنشورة سابقًا تبقى قابلة للقراءة دون كشف الأسماء القديمة.
- يمكن للإدارة نشر سجل قديم فقط إذا كانت موافقة النشر مسجلة أصلًا. لا يتيح الخادم نشر سجل قديم دون موافقة.
- قبل تحديث Apps Script، تعمل الواجهة الجديدة في وضع توافق: تعرض الأسئلة المنشورة من الإصدار 2، ويستطيع المعلم استخدام الرد الأساسي، ويستطيع الزائر إرسال سؤال يحفظ حق متابعته في المتصفح. لن تتاح الردود المتعددة أو ظهور السؤال الجديد فورًا للجميع حتى نشر Code.gs من الإصدار 3. تنبيه التحديث يظهر للإدارة.
- لا تحفظ كلمات المرور أو رموز جلسة المعلم في localStorage. جلسة الإدارة ساعة كحد أقصى؛ قد يطلب الخادم الدخول قبل ذلك عند انتهاء التخزين المؤقت. مسودات المعلم في sessionStorage وتُمسح عند تسجيل الخروج بعد تنبيهك.

## الملفات
- index.html: الواجهة العامة.
- admin.html: إدارة المحادثات.
- assets/chat.css: التصميم المتجاوب.
- assets/chat.js: الواجهة والاتصال ومخزن متابعة السائل.
- Code.gs: الخادم الكامل والمصادقة والحفظ والصور والمحادثات والإشراف.
- verification.txt: نتائج التحقق وحدوده.

## ملاحظات تشغيلية
التحديث التلقائي للمحادثة المفتوحة كل 60 ثانية عندما تكون الصفحة ظاهرة. يوجد زر تحديث يدوي. تعرض قائمة المحادثات 12 سجلًا في الطلب، وسجل الحوار 40 رسالة في الطلب مع زر للرسائل السابقة. يستخدم الخادم تخزينًا مؤقتًا محدودًا وقفلًا للكتابة ومعرفات ثابتة لمنع التكرار.

Google Apps Script وSheets لهما حصص تشغيل؛ ليست هذه خدمة محادثة فورية مضمونة الزمن أو منصة لتحمّل أعداد ضخمة من المتصلين. تبقى حماية الرسائل العامة من المحتوى غير المناسب مسؤولية الإشراف؛ يوفر النظام الإخفاء والأرشفة وحدود إرسال مؤقتة، ولا يدّعي مصادقة هوية الطالب أو منع جميع أنواع الإساءة.

لا تجعل جدول البيانات أو مجلد الصور متاحًا للعامة بالرابط. وافق الزائر على نشر المحتوى الجديد من النموذج، لكن راجع أي معلومات شخصية قد يكتبها داخل النص أو يضعها داخل الصورة.
