尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗موقع ألعاب للجمعة يشتغل على GitHub Pages، ويستخدم Firebase للغرف أونلاين.
الرابط: https://fridaynight-sa.github.io
| المجلد | اللعبة |
|---|---|
/ | الصفحة الرئيسية: خانة «ادخل برمز الغرفة»، وتحتها قسمين: «للجمعات 👨👩👧👦» (الألعاب الجماعية + شاشة العرض) و«لحالك 🧠» (Mind Games، وأي لعبة لحالك تنضاف بعدين) |
seenjeem/ | 🎬 سين جيم (مسلسلات وأفلام) |
outside/ | 🤫 برا السالفة |
sedq/ | 🤥 صدق ولا كذب |
mf/ | 👀 مين فينا؟ |
draw/ | 🎨 ارسم وخمّن |
dafour/ | 🤓 الدافور (أسئلة معلومات عامة بأربع خيارات) |
tv/ | 📺 شاشة العرض للتلفزيون (تشتغل مع كل الألعاب، وتمشي مع السهرة) |
mind/ | 🧠 Mind Games: ألعاب لحالك تدرّب العقل: mind/lamha/ ⚡ لمحة، وmind/dots/ 🧩 توصيل النقاط، وmind/squares/ 🟨 تذكّر المربعات، وmind/words/ 📚 لوحة الكلمات، وmind/search/ 🔎 دوّر الكلمة |
كل الغرف رموزها 4 حروف. رموز سين جيم القديمة (AB123) والروابط القديمة (الموقع/#AB123) تشتغل بعد.
fnnight.js (محمّل في كل لعبة). قاعدة البيانات: night/<CODE>/state. كل غرفة تعرف رقم خطوتها في السهرة (nt).site.webmanifest + الأيقونات (icon-192.png، icon-512.png، icon-maskable-512.png).fninstall.js يطلع شريط «حمّل» في الصفحة الرئيسية: الأندرويد بضغطة، والآيفون يشرح خطوات «إضافة إلى الشاشة الرئيسية».pick/)r:1 ومخفية من اللعب لين تنضاف صورتها.pick/ (أو من «الصور المطلوبة» في سين جيم)، والصق مفتاح TMDB (ينحفظ في المتصفح بس).picks/ في GitHub. الـ Action (apply-picks.yml) يصغّر الصور (1024px) ويحطها في img/ ويحدّث الأسئلة وينشر الموقع.seenjeem/index.html: أسئلة سين جيم، والصور في img/outside/words.json: أقسام وكلمات برا السالفةsedq/questions.json: أسئلة صدق ولا كذبmf/questions.json: أسئلة مين فيناdraw/words.json: كلمات ارسم وخمّنdafour/questions.json: أسئلة الدافور (options أربع خيارات، note معلومة اختيارية). رقم الجواب الصحيح مخفي في k عشان ما ينقرا من الملف وسط اللعب (يتحسب من answer وid، شف dafour/app.js). الخيارات تنخلط كل مرة.fnnight.js: السهرة وزر «🔄 بدّل اللعبة» (محمّل في كل لعبة)fnanim.js و fnfx.js: الحركات (احتفال، فائز…) والأصوات وزر كتم الصوتfnwake.js: يخلي شاشة صاحب الغرفة صاحية (هو اللي يشغّل المؤقتات)fninstall.js: شريط «حمّل Friday Night على جوالك»draw/board.js: لوحة الرسم (للعبة وشاشة العرض): خطوط و🪣 تعبئة، وصورة الرسمة للمعرضfncrypto.js: تشفير أسرار الغرف (الأدوار، التصويت، الكذبات، الأجوبة) عشان محد يقدر يغش من قاعدة البياناتshim.js و sw.js: تشغيل سين جيم على Firebase وعرض صور «فئاتي»firebase-config.js: إعدادات Firebasedatabase.rules.json: قواعد قاعدة البيانات. أي تعديل عليها لازم ينلصق في Firebase (Realtime Database ← Rules ← Publish)scripts/localize_tmdb.py: ينزّل صور TMDB داخل img/ (يشتغل تلقائي على GitHub Actions)الدافور وصدق ولا كذب وارسم وخمّن: كل جوال يحفظ الأسئلة/الكلمات اللي شافها (df-seen-v1، sq-seen-v1، draw-seen-v1)،
وكل لاعب يرسل آخرها مع اسمه (sn). صاحب الغرفة يختار اللي محد شافه، ولما يخلص كل شي يرجع الأقدم أول.
كل رسمة تنحفظ صورة صغيرة في media/<id> (32 حرف). آخر اللعبة (3 لاعبين وأكثر) الكل يصوّت لأحلى وأسوأ رسمة
(أحلى رسمة +10). الصور القديمة تنمسح أول ما تبدأ لعبة جديدة بنفس الغرفة.
mind/mind.css شكل القسم. mind/index.html صفحة القسم (تقرا أفضل رقم من الجوال، وفيها بطاقة «حفظ تقدمك»).mind/lamha/: draw.js يرسم كل شي (السيارات، النجمة والأشكال اللي تشبهها، الخلفيات، التشويش) بدون ملفات صور. app.js اللعبة.PAIRS في draw.js) تطلع قبل البداية، مثل اللعبة الأصلية. الأزواج تمر كلها قبل ما يتكرر واحد (pq في التقدم)، وما يجي نفس الزوج جلستين ورا بعض.lamha-v1).mind/dots/)levels.js (5×5 لين 9×9). كل مستوى: "<n>:<حروف>"، الحرف الكبير نقطة والصغير الخط. انصنعت بـ scripts/dots/gen.py (يحتاج pip install pycosat) وكل مستوى له حل واحد بس، حتى لو الخط يمشي جنب نفسه.dots-v1).mind/squares/)squares-v1).mind/nback/ صار يحوّل لـ mind/squares/ (كانت فيه قبل لعبة n-back وانشالت).mind/words/)WORDS_CLUE) ببلاش.levels.js: WORDS_LEVELS كل مستوى "<الحروف>|<صفوف>|<أعمدة>|<كلمة>,<صف>,<عمود>,<h أو v>;…"، وWORDS_DICT الكلمات اللي تنحسب إضافية، وWORDS_MEAN الكلمة بتشكيلها ومعناها ومثال. ينصنع بـ scripts/words/ (اقرا scripts/words/README.md).OWNER_HASH)، والجوال يتذكره (words-owner).words-v1)، ووأنت تلعب الصفحة ثابتة.mind/sync.js) وبدون نتmind/<الرمز>/j لمحة وmind/<الرمز>/dots توصيل النقاط وmind/<الرمز>/squares تذكّر المربعات وmind/<الرمز>/words لوحة الكلمات (القواعد تسمح بأي لعبة جديدة باسم حروف صغيرة، فما تحتاج تعديل القواعد مع كل لعبة). النسخة ترتفع لحالها بعد كل جلسة، ولو ما فيه نت تنتظر (mind-dirty) وترتفع أول ما يرجع.<المفتاح>:in).firebase-config.js فيه apiKey وauthDomain. الحساب يحفظ الرمز في mindu/<uid>.sw.js يرد من نسخة محفوظة لصفحات Mind Games بس (الألعاب الثانية ما يلمسها). sync.js يعبي النسخة مرة وحدة بعد كل تحديث.فتح اللعبة بدون رمز يرجّعك لغرفتك بس إذا اللعبة شغالة وكنت فيها قبل أقل من ربع ساعة. السهرة اللي لها أكثر من 4 ساعات بدون تبديل ما تنقل أحد.
mind/search/)levels.js): من 6×6 فيها 4 كلمات، لين 10×10 فيها 12 كلمة. أول 20 مستوى بالعرض والطول، بعدها بالمايل، ومن 121 بالعكس بعد.
كل مستوى موضوع (56 موضوع في scripts/search/themes.txt، مكتوبة باليد).paper.js، ما ينزل إلا لما تنفتح): جريدة «الجمعة»، عدد كل يوم من 29 أكتوبر 2026 بتوقيت السعودية، 730 عدد.
«الكلمة الضائعة»: بعد ما تلقى الكلمات، الحروف اللي تبقى (سطر سطر، من اليمين لليسار) تكوّن مثل أو حديث أو شطر بيت
(scripts/search/sayings.txt). تقدر تكتب الحل قبل، والغلط يزيد 30 ثانية. «ترتيب العدد»: paper/<العدد>/<رقم الجوال> = {n: الاسم، s: الثواني}،
ينكتب مرة وحدة وما يتغير.python3 scripts/search/gen.py وبعدها python3 scripts/search/export.py. التحقق: كل كلمة موجودة مرة وحدة بس في كل الاتجاهات،
وما فيه كلمة داخل كلمة ثانية.search-v1، ونسخة احتياطية مع «رمز تقدمك» (mind/sync.js).الرابط: km165vr7/ (ما ينذكر في أي صفحة، ومخفي عن محركات البحث). تدخل بحساب Google.
الحماية من قواعد قاعدة البيانات، مو من الصفحة: الأرقام والرسالة يقدر عليها حساب واحد بس (رقم حسابه uid في database.rules.json).
أي حساب ثاني يطلع له «🔒 هذي الصفحة لصاحب الموقع بس». km165vr7/#setup يعرض رقم الحساب اللي داخل (لو تغيّر حساب صاحب الموقع).
📊 الزوار: fnstats.js (في الصفحة الرئيسية وكل لعبة) يزيد +1 مرة وحدة باليوم لكل جوال في stats/day/<يوم>، ومرة بالأسبوع
stats/week/<أول يوم في الأسبوع: الأحد>، ومرة بالشهر stats/month/<شهر>، و+1 لكل لعبة يفتحها باليوم stats/game/<يوم>/<لعبة>.
ما ينرسل أي شي عن الشخص. الأيام بتوقيت السعودية. القواعد ما تسمح إلا بزيادة واحد، وما أحد يقدر يمسح أو يغيّر الأرقام.
📢 رسالة للكل: notice = {t: النص, s: وقت النشر, e: وقت النهاية أو 0 = لين توقفها}. تطلع فوق خانة رمز الغرفة في الصفحة الرئيسية.
🚀 لوحة الكلمات: يفتح mind/words/#jump=<رقم>، ويشتغل بس في جوال انفتحت فيه لوحة المدير (أو انكتب فيه الرمز السري).
📱 مين دخل (للعائلة بس: لو صار الموقع للعامة، هذا الجزء يخالف نظام حماية البيانات الشخصية، فيتشال قبل النشر):
كل جوال له رقم عشوائي في جواله (fn-dev) وسجل واحد في dev/<الرقم>: نوع الجوال، شركة النت والمدينة (من get.geojs.io أو ipwho.is، مرة باليوم)،
وقت الدخول وآخر مرة كان موجود (كل دقيقة والصفحة قدامه)، الألعاب، الأسماء اللي كتبها في الألعاب، ومستواه في لوحة الكلمات.
صاحب الموقع يسمّي الجوال مرة وحدة (devname/<الرقم>). القراءة لصاحب الموقع بس.
🚫 الحظر المؤقت: ban/<الرقم> = {u: لين متى}. الجوال يشيّك عند فتح أي صفحة وكل دقيقة، ويطلع له «موقوف مؤقتاً». يوقف الجوال نفسه بس
(لو مسح بيانات المتصفح يصير جهاز جديد).
🚧 إخفاء لعبة: cfg/hide/<لعبة>: true. تختفي من الصفحة الرئيسية وشريط الألعاب و«بدّل اللعبة»، وصفحتها تقول «مقفلة مؤقتاً». إخفاء mind يخفي ألعابها كلها.
✨ كلام جنب الاسم: صاحب الموقع يكتبه لأي جوال (tag/<الرقم>) ولنفسه (cfg/me/t). ينضاف للاسم لما اللاعب يدخل غرفة (من خانة الاسم
fName/jName في كل الألعاب)، فيطلع في كل لعبة وفي التلفزيون والسهرة. الكلام بين علامتين مخفيتين (U+2063 … U+2064)
وfnstats.js يخليه شارة ملوّنة (ذهبية لصاحب الموقع، بنفسجية لغيره) عشان ما يبان إنه من الاسم. اللي يكتبه اللاعب بنفسه بعد «·» ينشال.
🖼️ صورة صاحب الموقع (cfg/me/img، صورة صغيرة 160×160): اسمه يحمل علامة مخفية (U+2060)، و يحط الصورة مكانها في أي جوال.
الجوال يعرف إنه حق صاحب الموقع لما تنفتح فيه لوحة المدير ()، أو لما صاحب الموقع يضغط «📌 هذا أنا» عنده في «مين دخل»
(كلامه يصير العلامة المخفية نفسها). أيقونة الموقع على الشاشة الرئيسية لها تخزين غير Safari، فتحتاج «هذا أنا» لحالها.
الأسماء المحفوظة في الجوال تتحدّث بالكلام الجديد من الصفحة اللي بعدها. قاعدة الموقع: الصورة بدون ذوات أرواح.
python3 scripts/stamp.py يحط رقم نسخة جديد على ملفات الموقع (app.js?v=…) عشان الجوالات ما تشغّل نسخة قديمة محفوظة.database.rules.json ← Publish.</> ← انسخ databaseURL و projectId إلى firebase-config.js.إذا firebase-config.js على null، تشتغل سين جيم وبرا السالفة على جهاز واحد بس.
fnstats.jsfn-ownertag/<الرقم>🔑 «ادخل بحساب Google» في الصفحة الرئيسية (اختياري، الألعاب تشتغل بدونه): يحفظ الاسم الأول لخانة الاسم في الألعاب (fn-gname)،
ويربط الجوال بالحساب في users/<uid> (الاسم والإيميل، يكتبه صاحب الحساب بس، ويقراه صاحب الموقع بس) عشان «مين دخل» يطلع باسمه.
لو الحساب هو حساب صاحب الموقع (يقدر يقرا أرقام الزوار)، الجوال ينعرف إنه حقه، فيطلع كلامه وصورته بدون «هذا أنا».
ما يشتغل من داخل تطبيقات مثل سناب وانستقرام (Google تمنعه هناك)، فتطلع رسالة تقول افتحه في Safari أو Chrome.
كل هذا في fnstats.js (محمّل في كل صفحة).
🛠️ القواعد بضغطة: في لوحة المدير زر «طبّق القواعد». Google يعطي الصفحة إذن مرة وحدة (حساب صاحب المشروع، scope firebase.database)،
والصفحة ترسل database.rules.json من الموقع إلى .settings/rules.json. ما ينحفظ الإذن. لو ما ضبط، تطلع خطوات اللصق باليد.
اللوحة تطلّع «فيه قواعد جديدة ما انطبقت» لحالها لو قسم من أقسامها مرفوض.