Back to Browse

Quran Reels MCP Server

Cloud & DevOpsLow Risk10.0MCP RegistryRemote
Free

Server data from the Official MCP Registry

Free browser-based Quran video maker: vertical reels with 47 reciters and 8 translation languages.

About

Free browser-based Quran video maker: vertical reels with 47 reciters and 8 translation languages.

Remote endpoints: streamable-http: https://quran-reels-tau.vercel.app/api/mcp

Security Report

10.0
Low Risk10.0Low Risk

Valid MCP server (1 strong, 0 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry.

6 tools verified · Open access · No issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Found in Source Code

Found by scanning the linked source code. This listing connects to a hosted endpoint, so none of this runs on your machine: it describes what the server software does where it is hosted.

HTTP Network Access

Connects to external APIs or services over the internet.

file_system

Applies to the server that hosts this plugin, not to your machine.

How to Connect

Remote Plugin

No local installation needed. Your AI client connects to the remote endpoint directly.

Add this to your MCP configuration to connect:

{
  "mcpServers": {
    "app-vercel-quran-reels-tau-quran-reels-mcp": {
      "url": "https://quran-reels-tau.vercel.app/api/mcp"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

قرآن ريلز — Quran Reels ⭐

قرآن ريلز — الواجهة الرئيسية

المستودع: https://github.com/Ansygroup/quran-reels (عام · main) · النشر: Vercel · الدفع المستقبلي: scripts/gh_push.sh

صانع فيديو قرآن مجاني وفوري — نسخة مطوّرة بالكامل من quranreels.tech تعمل داخل المتصفح بدون خوادم معالجة وبدون قوائم انتظار وبدون حدود يومية.

🔗 الفكرة في سطر واحد: اختر الآيات ← شاهد المعاينة الحية ← اضغط «إنشاء» ← حمّل ملف MP4 عمودي 1080×1920 خلال ثوانٍ.

🌐 منشور الآن: https://quran-reels-tau.vercel.app


✨ المزايا (مقارنة بالأصل)

الأصلهذه النسخة
الإنشاءطابور خادم 1–3 دقائق + 10 فيديوهات/يوم + 30 ثانية تبريدفوري داخل المتصفح بلا حدود وبدون تسجيل
المعاينةغير متوفرةمعاينة حية أثناء التصميم (تشغيل/تقديم/تنقل بين الآيات)
الخصوصيةرفع للخادمالصوت والصور لا تغادر جهازك (رفع خلفية محلي)
الأدوات24 أداة32 أداة تعمل دون إنترنت حيث أمكن
التصديرMP4 من الخادمMediaRecorder داخل المتصفح: MP4/WebM حسب دعم المتصفح، مع تقدير الأبعاد 9:16 / 1:1 / 16:9

🎬 الصانع

  • 47 قارئًا (كل ayah mp3 من everyayah عبر /proxy موحّد المصدر — مطلوب لالتقاط الصوت في التصدير)
  • 114 سورة + نطاق آيات يدوي أو «رسائل سريعة» (الصبر، السكينة، الرزق، التوبة… 324 مرجعًا متحققًا)
  • ترجمة داخل الفيديو بـ8 لغات (إنجليزية، فرنسية، تركية، إندونيسية، أردية، إسبانية، إيطالية) + عربي مبسّط
  • 14 خلفية (10 صور مولّدة + 4 تدرّجات) + رفع صورة من جهازك (محلي فقط)
  • أنماط بطاقة (card/glow/banner) × 4 ألوان ذهبي/زمردي/فضي/وردي، عدّ حجم الخط، علامة مائية، إهداء «صدقة جارية» بثلاثة أنماط، إيقاف الحركة، شارة عنوان السورة، شريط تقدّم، ترجمة قابلة للإخفاء
  • معاينة حقيقية: صوت كل آية + رسم Canvas بنفس كود التصدير (لا مفاجآت)
  • تصدير لحظي: canvas.captureStream + MediaRecorder مع شريط تقدّم وإمكانية الإلغاء، ثم تحميل/مشاركة/فيديو فوري

🧰 الأدوات الـ32

مواقيت الصلاة (12 طريقة + تحديد موقع دقيق بتوقيت المنطقة) · القبلة (بوصلة + SVG + خريطة) · التاريخ الهجري/الميلادي · أذكار الصباح والمساء (حصن المسلم كامل — 132 فئة) · المسبحة · أسماء الله الحسنى · آية اليوم · آيات بالموضوع · حلقة التلاوة · خطة الختمة · الختمة الجماعية برابط قابل للمشاركة · مخارج الحروف · إذاعة القرآن (بث مباشر) · الأحاديث (النووية/القدسية مضمّنة + البخاري ومسلم وأبو داود والترمذي والنسائي وابن ماجه والموطأ بتحميل كسول) · تخريج الحديث · مصمّم البطاقات PNG · حاسبة الزكاة · المواريث (شاملة فرع واردث ووصية ووصية مطلقة) · أسماء المولودين (1017 اسمًا) · ألوان E · التقويم الإسلامي · عدّاد المناسبات · عدّاد الإفطار · تنبيهات الأذان (إشعارات + جرس) · أعمال اليوم · متتبع الصيام · قضاء الصلاة · حاسبة الكفارة · تعلم الصلاة · المساجد القريبة (OpenStreetMap) · الدعاء المختار

🏗️ البنية

quran-reels/
├── server.py              # خادم محلي: ثابت + /proxy (قائمة بيضاء) + /api/ip + /api/app-config
├── vercel.json            # إعدادات Vercel: outputDirectory=public + إعادة توجيه /proxy → /api/proxy + كاش
├── .vercelignore          # ما لا يُرفع عند النشر
├── api/                   # دوال Serverless (Node) — مرآة كاملة لـ server.py
│   ├── proxy.js           # نفس عقد /proxy: 400/403/502 + كاش 6 ساعات + ACAO *
│   ├── ip.js              # نفس عقد /api/ip مع نفس البديل الافتراضي (القاهرة)
│   └── app-config.js      # إعدادات عامة (Supabase URL + المفتاح العام) من متغيرات البيئة
└── public/
    ├── index.html         # الصفحة الكاملة (SEO + JSON-LD + FAQ)
    ├── css/style.css      # نظام تصميم RTL (تاجوال/أميري/أميري قرآن)
    ├── js/
    │   ├── data.js        # القراء، الترجمات، الخلفيات، FAMOUS، الأدوات…
    │   ├── core.js        # أدوات + حساب المواقيت (PrayTimes) + القبلة + الهجري + الراوتر
    │   ├── quran.js       # تحميل المصحف + الاختيارات + فهرس البحث
    │   ├── reel.js        # رسم الفيديو (Canvas) + AyahPlayer + ReelRecorder
    │   ├── creator.js     # واجهة الصانع وتدفق التصدير
    │   ├── tools.js       # إطار الأدوات المساعدة
    │   ├── tools-a/b/c.js # الأدوات الـ32
    │   └── app.js         # الإقلاع والصفحة الرئيسية
    ├── data/              # المصحف (2.1MB) + 7 ترجمات + أذكار + أسماء + أحاديث
    ├── fonts/             # Amiri / AmiriQuran / Scheherazade / Tajawal
    └── img/backgrounds/   # 10 خلفيات مولّدة (بلا نصوص)

🚀 التشغيل

cd quran-reels
PORT=8787 python3 server.py
# ثم افتح http://localhost:8787
  • لا توجد تبعيات (Python 3 مكتبة فقط + Node للفحص الاختياري).
  • /proxy?u= يقبل فقط: everyayah.com, api.alquran.cloud, cdn.jsdelivr.net, raw.githubusercontent.com, qurango.net, overpass-api.de, overpass.osm.ch, api.aladhan.com, nominatim.openstreetmap.org.
  • PORT اختياري (افتراضي 8787) ويجب أن يُشغَّل على 0.0.0.0 ليعمل خلف وكيل المعاينة.

🌐 النشر على Vercel + Supabase

Vercel (الحساب متصل — المصادقة محفوظة داخل المشروع في .vcfg ولا تحتاج موافقة جديدة):

# مرة واحدة لكل بيئة عمل جديدة (إن لزم): npm i -g vercel  أو استخدم npx
npx vercel -Q "$PWD/.vcfg" deploy --prod --yes --scope ansygroups-projects
  • الإعدادات في vercel.json: مجلد الخرج = public، و/proxy يُعاد توجيهه إلى api/proxy، وصفحات بدون امتداد تفتح التطبيق، وكاش CDN يوم للملفات الثابتة و6 ساعات للـproxy، ورؤوس nosniff/Referrer-Policy.
  • متغيرات البيئة في المشروع (production + preview):
    • SUPABASE_URL · SUPABASE_ANON_KEY — تقرأها api/app-config.js ويستهلكها المتصفح.
  • نطاق مخصص لاحقًا: أضِفه من لوحة Vercel ثم حدّث وسوم SEO إليه.

تحصينات مطبَّقة (2026-10-27):

  • api/proxy.js + مرآته server.py: سقف حجم25MB · حدّ120 طلب/دقيقة/IP · دعم Range (تنقّل الصوت بـ206) · إعادة فحص مضيفي كل تحويل (حتى3) · كاش6س + كاش دافئ من الذاكرة.
  • /api/ip: يقرأ رؤوس x-vercel-ip-* من حافة Vercel أولًا (بلا اعتماد خارجي وبلا rate-limit) ثم ipapi.co ثم بديل القاهرة.
  • Supabase: صلاحيات أعمدة محدودة (UPDATE على done/plan فقط) + قيود (طول الاسم≤24، done≤365، تنسيق معرّف) + العميل يكتب عبر PATCH ثم INSERT (لا upsert). البقيّة المقصودة: المفتاح العام يسمح بقراءة لوحة الختمة كاملة (بيانات تقدّم منخفضة الحساسية) — الحل الجذري عند الحاجة: Supabase Auth.
  • معرّفات خطط أقوى (16 محرفًا عشوائيًا عبر crypto).

PWA / وضع دون إنترنت:

  • public/sw.js + manifest.json + img/icon.svg: يُخزّن الهيكل والبيانات الأساسية عند أول زيارة؛ التنقّل والأدوات تعمل دون إنترنت، و/proxy+/api شبكة دائمًا (لا يُخزَّن صوت). الإصدار الحالي qr-v1 — عند تغيير ملفات الهيكل ارفع الرقم في sw.js لتجديد الكاش.

Supabase — الختمة الجماعية المشتركة (متزامنة بين الأجهزة):

  • مشروع quran-reels بجدولتي khatma_plans وkhatma_progress مع RLS (تقدّم كل فرد في صف مستقل).
  • أداة «ختمة جماعية» تقرأ /api/app-config؛ عند غيابها تعمل بدون سحابة بهدوء (تراجع صامت).
  • رابط المشاركة يحمل الخطة؛ التقدّم يُدفع عند «أنهيت اليوم» ويُسحب عند فتح الرابط على أي جهاز.

👤 الحساب + النشر التلقائي (الأتمتة) — الجديد

تجربة المستخدم (تعمل فورًا): زر «🔑 دخول» → رابط سحري للبريد أو «المتابعة بجوجل» → صفحة #/account فيها ربط المنصات بضغطة OAuth واحدة، جدول النشر، ومولّد البوستات، و«الأتمتة» اليومية. زر «🤖 جدولة للنشر» في نتيجة التصدير يرفع الفيديو إلى حسابك ويفتح نافذة الجدولة. الزائر يبقى حرًا — كل شيء (الإنشاء والأدوات) يعمل بلا تسجيل.

كيف تُفعِّل النشر الفعلي (إعدادات المطوّر — مرة واحدة لكل منصة):

المنصةمتغيرات Vercel (Secrets)أين تنشئ التطبيقرابط إعادة التوجيه السجلّي
يوتيوب (ويُفعِّل جوجل الدخول لاحقًا)GOOGLE_CLIENT_ID · GOOGLE_CLIENT_SECRETGoogle Cloud Console → OAuth consent → Credentialshttps://quran-reels-tau.vercel.app/api/oauth/callback
فيسبوك + إنستغرامMETA_APP_ID · META_APP_SECRETdevelopers.facebook.com → My Appsنفس الرابط أعلاه
تيك توكTIKTOK_CLIENT_KEY · TIKTOK_CLIENT_SECRETdevelopers.tiktok.comنفس الرابط
XX_CLIENT_ID · X_CLIENT_SECRETdeveloper.x.comنفس الرابط
  • رابط إعادة التوجيه واحد لكل المنصات: /api/oauth/callback (المنصة تُرمَّز داخل state).
  • دخول جوجل: إعداد Supabase Dashboard → Authentication → Providers → Google (نفس عميل جوجل تقريبًا؛ سجّل redirect: https://<ref>.supabase.co/auth/v1/callback) — البريد السحري يعمل بلا أي إعداد (SMTP المدمج؛ حدّه الافتراضي 2 رسائل لكل نافذة وقت — يُرفع من الداشبورد أو عبر SMTP خاص عند الحاجة).
  • الأتمتة: Vercel Cron يوميًا 15 4 * * * UTC (≈06:15 القاهرة) ينشر المهام المستحقة عبر CRON_SECRET — خطة Vercel المجانية تكفي (فيديو تلقائي/يوم). النشر الفوري متاح دائمًا من زر «انشر الآن».
  • التخزين: فيديوهات الجدولة تُرفع إلى Supabase Storage bucket reels (عام — لحاجة المنصات لجلب الرابط) بحدّ 50MB/ملف؛ حدّ الـ1GB المجاني يكفي مئات الريلز.
  • الأمان: التوكنات تُشفَّر AES-256-GCM بمفتاح TOKEN_ENC_KEY (خادم فقط)، JWTs تُتحقق ES256 عبر JWKS، الجداول محمية RLS بملكية المستخدم، ولا تظهر أي توكنات في الاستجابات.
  • .env.secrets في جذر المشروع (مُستبعد من الرفع): نسخة محلية من TOKEN_ENC_KEY وCRON_SECRET — فقدانهما يعني إعادة ربط المنصات (لا ضرر).
  • حدّ Vercel: خطة Hobby تسمح بـ12 دالة/نشرة — المجموع الحالي 11. عند الإضافة ادمج المسارات (نمط api/x.js + استعلامات ?op= كما هو هنا).
  • واقع المنصات (بصدق): رفع يوتيوب مباشر (كوتا ~6 فيديو/يوم افتراضيًا، تُرفع بطلب) · إنستغرام يتطلب حساب Business + مراجعة تطبيق Meta · تيك توك مراجعة تطبيق (وضع الاختبار ينشر للمنشئين فقط) · X قد يتطلب خطة API مدفوعة لرفع الفيديو. كل ذلك أطراف خارجية — الكود جاهز ويعمل فور منح الموافقة.
  • الباقات (مجاني/برو/مدى الحياة) معروضة كواجهة — الدفع الإلكتروني خطوة قادمة عند طلبك.

✅ الاختبارات

  • حزمة الاختبارات الدائمة داخل المشروع: tests/run.js (Playwright) — تُشغَّل ضد الإنتاج أو الخادم المحلي:
cd tests
npm i playwright && npx playwright install chromium-headless-shell
npx playwright install-deps chromium-headless-shell   # مكتبات النظام (مرة واحدة)
node run.js                                              # محلي: 127.0.0.1:8787
BASE=https://quran-reels-tau.vercel.app node run.js      # الإنتاج
SKIP_EXPORT=1 node run.js                                # بلا قسم التصدير (~أسرع)
node tools_smoke.js                                      # دخان فتح الـ32 أداة (~5 ث)
node tools_interact.js                                   # تفاعل فعلي لكل أداة (نقر·select·input·checkbox)
node correctness_test.js                                 # صحة الحسابات مقابل Aladhan (30 فحصًا)
# الثلاثة الأخيرة تقبل BASE=… للإنتاج أيضًا
  • ما تغطيه: الإقلاع + وسوم SEO وJSON-LD وrobots/sitemap + معاينة وتصدير MP4 فعلي + فتح الـ32 أداة بلا أخطاء + تفاعلات عميقة (مسبحة/زكاة/ختمة فردية/ختمة جماعية مع حالة السحابة/مواقيت/قبلة/أذكار/أحاديث/إذاعة/اختبار مخارج) + قائمة الجوال.

  • Lighthouse (موبايل مُحاكى): أداء 91 · وصولية 100 · أفضل الممارسات 100 · SEO 100 (FCP ‏1.0s · LCP ‏1.5s · CLS ‏0.07 · صفر فشل)

  • مدقّق W3C (validator.nu): 0 أخطاء · 0 تحذير — تسلسل عناوين دلالي كامل (بما شامل عنوانَي sr-only لقسم الأداة وv-tag آية اليوم) — وللصفحات الأربع الجديدة /ar/*: 0/0 لكل منها.

  • طبقة فهرسة (جولة كمل#8): كانت كل روابط التطبيق #/… غير قابلة للفهرسة و sitemap = رابط واحد، فبُنيت صفحات هبوط ثابتة بلا سكربتات معناها غنيّ وJSON-LD وFAQ داخلي مترابط: /ar/quran-video-maker/ · /ar/islamic-tools/ (شبكة الـ32 أداة) · /ar/prayer-times/ · /ar/qibla-direction/ — sitemap الآن 11 مسارًا، وروابط داخلية من تذييل الرئيسية إليها، ورؤوس أمان/caching ممتدّة لـ/ar/(.*)، وLH للصفحة الأولى 98/100/100/100.

  • توسعة المحتوى وGEO (كمل#10 — «الرقم واحد»): +6 صفحات على كلمات المنافسين الحقيقية (quran-video-tiktok · quran-video-with-translation · short-quran-verses-video · adhkar · tasbeeh · zakat-calculator) — كلها W3C 0/0 ومولّدة عبر scripts/build_lp.js القابل لإعادة الاستخدام · /llms.txt بحقائق للاقتباس من محركات الذكاء · robots.txt يسمح صراحةً بـ12+ وكيل ذكاء (GPTBot·PerplexityBot·ClaudeBot·Google-Extended…) · IndexNow أُعيد إيداعه بـ11 رابطًا HTTP 200 · تقرير المنافسين الكامل في docs/competitors.md (20 فاعلًا + مقارنة صريحة + أهداف قابلة للقياس).

  • وسم التحقق من Google google-site-verification منشور في الرئيسية (خطوة GSC: تحقق ← إرسال sitemap ← طلب فهرسة الـ12 مسارًا).

  • خادم MCP (كمل#11 — «الذكاء يرشحك»): POST /api/mcp — خادم Streamable HTTP بروتوكولي 2025-06-18/2025-03-26 بلا مفاتيح ولا جلسات (JSON-RPC · دفعات · CORS) و6 أدوات تجعل محركات الذكاء تنداء الموقع: quran_reel_maker_info · get_prayer_times (9 طرق + توقيت IANA آمن DST) · get_qibla · get_hijri_date (أم القرى) · get_verse (عثماني ≤10) · create_reel (رابط /?s=…&from=…&to=… يفتح الصانع معبأًا) · اكتشاف /.well-known/mcp.json · وثائق /developers/mcp/ (W3C 0/0) · مختبر tests/mcp_test.js 28/28.

  • السجلّ الرسمي MCP (كمل#24د — منشور ✓): app.vercel.quran-reels-tau/quran-reels-mcp@1.0.0 في registry.modelcontextprotocol.io (status=active) بمصادقة HTTP عبر /.well-known/mcp-registry-auth (Ed25519 — بلا حساب ولا متصفح)، والـremotes تشير إلى https://quran-reels-tau.vercel.app/api/mcp — يُستهلك منه GitHub MCP Registry وكل العملاء الراغبون في السجلّ الرسمي · إعادة النشر: mcp-publisher publish.

  • الدفعة الكبرى (كمل#12 — «كلهم»): 58 صفحة جديدة عبر scripts/build_k12.js = قسم إنجليزي /en/ (6 صفحات مزدوجة اللغة مع hreflang على 6 أزواج عربي↔إنجليزي) + فهرس القرّاء و47 صفحة قارئ (/ar/reciters/ + /ar/reciter/<slug>/) بأزرار /?r=<folder> تفتح المولّد مُهيّأً بصوت القارئ (تعريب عميق في applyDeepLink/handlePending + وسيط اختياري في أداة MCP create_reel) + صفحات الثقة (/about · /terms · /privacy · /contact بنموذج يعمل على RPC دفاعي submit_contact بجدول RLS بلا قراءة) · فواتير موحّدة بالروابط الثقة في كل الصفحات · Sitemap 12→70 · llms.txt محدّث · W3C 70 صفحة 0/0 · مختبر tests/pages12_test.js 21/21 · IndexNow 70@200.

  • المدونة والموسمية (كمل#13): scripts/build_blog.js → فهرس /blog/ + 8 مقالات على كلمات الأصل الحقيقية (٣٠ فكرة · هل توجد أداة مجانية؟ · جدول مقارنة مع quranreels.tech/tashghil/quranvideomaker ·7 أخطاء · الجدولة والأتمتة · خطة رمضان1448 أم القرى:1 رمضان≈8 فبراير2027 · محتوى الجمعة · أول فيديو في5 دقائق) — كل مقال بـArticle+BreadcrumbList+FAQPage JSON-LD و<time> وقراءة معلنة · رابط «مقالات» في فواتير الموقع كلّه (قوالب×3 + الجذر + الثابتة) · Sitemap 70→79 · llms.txt قسم المدونة · W3C 79×0/0 · مختبر tests/blog_test.js 12/12 (يشمل فحص CJK وروابط داخلية حيّة ومسارات sitemap الدقيقة) · IndexNow 79@200.

  • المراقبة + كلمة-بكلمة + الحزمة + المؤجَّل (كمل#14 — «كلهم»): أسلوب «كلمة-بكلمة» الرابع في صانع الريلز (reel.js _drawWords: إبراز الكلمة الجارية بقرص ذهبي موزون بالحروف على زمن التلاوة الحقيقي — صوت مفكّك أو تقدير — مع مطابقة سطور _fitAyah حرفيًا، واختبار S3 في run.js) · مراقبة أسبوعية: npm run monitor (scripts/monitor_site.js + lib/monitor.js — كل مداخل sitemap بحالة 200 + robots/llms/علامة GSC/تذييل المدونة + diff منافسين بقوائم جديدة/محذوفة + استعلام Bing RSS للفهرسة وتقرير Markdown يومي في docs/monitor/) + Vercel Cron إثنين 06:30UTC (/api/cron/monitor) · بريد تأكيد التواصل: api/contact.js يمرّ على RPC ثم يرسل تأكيدًا للمراسل ونسخة للمسؤول عبر lib/mailer.js (Resend، بلا مفتاح = no-op) مع مسار احتياطي مباشر في النموذج · عيب OAuth مُصحَّح: redirect_uri للمنصات الأربع كانت لمسارات غير موجودة → موحَّد على /api/oauth/callback · حزمة اقتباسات خارجية docs/backlinks.md (ورقة حقائق +8 أهداف بروابطهم +3 قوالب رسائل + خطة أسبوعية) · محاضر الإعداد: docs/{github,domain,oauth,payments,smtp}-setup.md + مسودة sql/credits-draft.sql (غير مُطبَّقة) + scripts/rebase_url.js لتبديل النطاق بأمر واحد بعد ضبط DNS · مختبر pages12 21→24.

  • GSC وسم التحقق (كمل#15): الرمز IHmoe5QFrC77PbZdh2O0MeZFLIKwg-saA50td32AcQo مثبَّت الآن في 79/79 صفحات — أُضيفت الناقصة الأربع (ar/quran-video-maker · ar/islamic-tools · ar/prayer-times · ar/qibla-direction) بنفس موضع القالب · المراقبة تفحص الآن مطابقة القيمة الدقيقة لا مجرد الوجود (lib/monitor EXPECTED_VERIF) · اختبار دائم في pages12 (GSC token exact on home) · الخطوة التالية: GSC → Verify → سجل Sitemap (79) → طلب الفهرسة · ملف التحقق googleb789508316de731f.html (أسلوب رفع الملف — 53 بايت حرفيًا في الجذر) مع حارس في pages12 (24→25).

  • صفحات المنصّات (كمل#17): quran-video-instagram · quran-video-whatsapp — بنصّ الأصل الحرفي (عنوانهما ووصفهما مأخوذان من صفحتيهما المنشورتين في quranreels.tech) + quran-video-facebook بكلماتنا (الأصل لا يملك صفحة فيسبوك — تحقّقت من خريطته الـ90) — كل صفحة بـWebPage+FAQPage JSON-LD وروابط متقاطعة (تيك توك ↔ المنصّات) · إصلاح رابط ميّت: /ar/quran-reels-for-dawah/ كان في صفحة الترجمة ولا وجود له ← استُبدل بستاتس واتساب · Sitemap 79→82 · llms.txt +3 · W3C 5 صفحات معدَّلة 0/0 · pages12 25→27 (يشمل جولة 82 رابطًا self-canonical) · IndexNow 200×3 · monitor 82/82.

  • صفحات الموسم والفئات (كمل#18): 21 صفحة جديدة — سلسلة «كم باقي» (hub + رمضان2027/الفطر/الأضحى/عرفة/رجب/شعبان/الجمعة: تواريخ أم القرى بنصّ الأصل مع تدرّج «قد يختلف يومًا بالرؤية» + عدّاد حيّ id="kbc" داخل كل صفحة، والجمعة يحسب نفسها أسبوعيًا في المتصفح) + التهنئة بالاسم (hub + عيدان + جمعة + رمضان — عناوين الأصل مع وصف مُكيَّف لإهدائنا أسفل الفيديو بدل «بطاقة الافتتاح» التي ليست عندنا) + 7 فئات أدوات (islamic-tools/{prayer-and-place,quran-discovery,quran-learning,dhikr,hadith-and-learning,calculators-and-tracking,family-and-life} بعناوين ووصفات الأصل وأدواتنا موزّعة) + /ar/quran-word-highlight/ بكلماتنا (slug الأصل معطّل 404 فملكِلناه) · إشارات الميزة: سؤال FAQ الجذر الـ16 في data.js (يعيد بناء run.js) + صف في جدول مقارنة المدونة (مع تصريح صريح بأن للمنافس أيضًا «كلمة بكلمة») + llms · build_lp 9→30 · Sitemap 82→103 · pages12 27→29 (فحص الكلمة المفتاحية + فحص العدّاد) · run.js 87/0 · blog 12/12 · correctness30 · smoke32 · mcp28 · interact32 · W3C 23×0/0 (validator.nu) · Lighthouse 91/98 (الرئيسية/المصصّم — بلا انحدار عن خط الأساس مع تشتّت طبيعي 79–95، وأُضيف preload لـstyle.css لتقليل render-blocking) · IndexNow 21@200/202 · monitor 103/103.

  • استكمال خريطة الأصل + تجديد التصميم (كمل#19 «الكل»): 51 صفحة جديدة تُغلق كل الفجوات المتبقّية من sitemap الأصل (90 رابطًا — لم يبقَ منها إلا ما هو مغطّى بمسار آخر): 24 صفحة أدوات مفردة بنصوص الأصل (qibla · hijri-date · islamic-calendar · ayat-bil-mawdoo · daily-ayah · quran-radio · quran-looper · quran-khatma · group-khatma (يُصلح رابطًا ميّتًا كان في كمل#18) · hisn-almuslim · asma-allah-husna · hadith · hadith-checker · how-to-pray · mawarith · kaffara · qada · sawm · baby-names · nearby-mosques · minshawi-rare · makharij · tahfeez · quran-quiz باختبار حقيقي8 أسئلة داخل الصفحة · crypto-zakat بحاسبة يدوية + تنبيه علمي · halal-product-checker — بكلماتنا لأن «الباركود والصورة» ليسا عندنا) + 13 صفحة صانع متخصّصة (no-watermark · no-music · free-maker · quran-video-ramadan · quran-reels-ai · quran-translation-video · quran-tafsir-video (صفحة حدود صريحة) · khushoo · sadaqa-jariya · quran-word-highlight-video + yasser-dossary/mishary-rashid(=alafasy)/best-quran-reciters بصفحات قرّاء حقيقية47) + adhkar/{sabah,masaa,nawm} + guides/quran-reels-guide-2026 + compare/quran-video-makers (بدون ادّعاء «7» — جدولنا المُتحقَّق فقط) + نسختا ur/ وid/ (lang/dir صحيحة) + جذرية: /faq/ و**/content-sources/** (شفافية المصادر) و**/developers/ + docs/en + integrations/n8n** (MCP/JSON-RPC حقيقي بلا مفتاح) مع redirect /privacy-policy → /privacy (308) · أوصاف الميزات الغائبة عُدِّلت بصدق (بوصلة بلا توهّج أخضر · بلا «مشي» · بلا عمر هجري · بلا صورة حديث · بلا مجسّم3D…) · بناء القالب: base/lang/dir اختيارية (30→81 صفحة مولّدة) · Sitemap 103→154 · pages12 29→30 (+فحص ur/id lang+GSC) · تجديد تصميم عابر عبر style.css + قالبي lp/blog (hero بتدرّج ذهبي · hover/borders · focus-visible · selection · reduced-motion) مع إصلاح CLS ناتج عن text-wrap:balance (LH: المصصّم89→97 بعد الإزالة) · W3C 90×0/0 · run 87/0 · blog12 · correctness30 · smoke32 · mcp28 · interact32 · LH الرئيسية88–91 (خط الأساس91) · IndexNow 51@200×3 · monitor 154/154.

  • محرّك المقالات + 100 مقال + صور AI + تعميق الباك (كمل#20 «engine100 · ai · deepen»): محرّك scripts/build_posts.js يقرأ posts/library{,_b}.js (بنوك محتوى 8 عناقيد: video13 · reciters12 · prayer13 · hifz13 · azkar13 · seasons12 · family12 · publishing12) + posts/index{,_b}.js (مواصفات100 مقال فريد: slug/عنوان ب sufix «| قرآن ريلز»/وصف/كلمات مفتاحية/مقدمة/3 نقاط/تطبيق/FAQ×2-3/روابط داخلية≥2) → 100 مقال على /articles/<slug>/ + hub /articles/: Article+BreadcrumbList+FAQPage JSON-LD · crumb «الرئيسية ← المكتبة» · <time> عربي · دقائق القراءة (كلمات/180) · ترابط مركّب (2 من بنك العنقود + «اقرأ أيضًا» +3 بطاقات ذات صلة + أداة العنقود + cluster links) · 8 صور AI رائدة للعناقيد في public/img/articles/<slug>.jpg (hero+og تلقائيًا، والباقي og-cover) · الفوترات كلها أضافت «المكتبة» (قالب lp + قالب blog +64 صفحة ثابتة + محرّك المقالات نفسه) · Sitemap 154→255 · llms.txt +قسم «مكتبة المقالات» · مختبر pages12 154→255 · محلي كامل أخضر: run 87/0 · blog 12/12 · correctness 30 · smoke 32 · interact 32 · api 0 · mcp 28 · الحجم مُنسَب عمدًا: «مليون مقال» مستحيل فيزيائيًّا ويعرّض الموقع لـ scaled-content-abuse (ask_user: engine100) — المحرّك جاهز لتمديد مئات المقالات القادمة ببنوك العناقيد نفسها.

  • GitHub (كمل#16): المستودع العام https://github.com/Ansygroup/quran-reels مرفوع بـ18 التزامًا ومتحقق من التطاقب (sha محلي = بعيد) · فرع master أُعيد تسميته main · التوكن في .vcfg/gh_token (600، متجاهل للـgit، لا يُطبع أبدًا) + .vcfg/gh_repo · scripts/gh_push.sh يعيد إضافة origin ويدفع بأمر واحد (مقاوم لمسح .git/config) · توثيق الحالة في docs/github-setup.md.

  • Lighthouse على مسارات الأدوات: #/tools ‏= 95/100/100/100 · #/tool/prayer ‏= 94/100/100/100 — صفر فشل في كل المسارات.

  • سلسلة E2E REST دائمة tests/e2e_rest.py: 13/13 على البناء النهائي (منح·JWKS·OAuth 401/302·تخزين رفع+عام·RLS ختمة·جدولة·نشر 502 بلا ربط·أتمتة·قائمة ربط).

  • دخان الأدوات الـ32 tests/tools_smoke.js: يفتح كل أداة ويتحقق الرندر + غياب أخطاء الصفحة + عدم التجاوز الأفقي — 32/32 في ~5 ثوانٍ على المحلي والإنتاج.

  • عطل تجميد مُصلَّح (كشفه الدخان): hijriParts كان يُنشئ Intl.DateTimeFormat لكل استدعاء، فحلقة hijriToGreg (×900 داخل أداة الرزنامة) كانت تُجمّد الخيط الرئيسي لعشرات الثواني (أداة calendar عالقة) — الآن المُنسّق واحد مخزّن في core.js.

  • اختبار الصحة tests/correctness_test.js — 30/30 محليًا وإنتاجًا: مرجع خارجي مباشر (Aladhan) لحسابات اليوم: الهجري ↔ gToH + roundtrip · قبلة القاهرة/لندن/جاكرتا/نيويورك ±1° · مواقيت أم القرى (القاهرة) ↔ method=4 بفارق 0–2 دقيقة · الزكاة عبر DOM (٢٫٥٪ + نصاب ٨٥غ + حكمان) · أدوات نصية (toAr·fmtTime·normAr).

  • عطل هجري صامت مُصلَّح (كشفه اختبار الصحة): إعادة التسمية في جولة كمل#6 تركت raw: fmt.format(date) — ReferenceError يبتلعه catch، فكانت كل التواريخ الهجري تعرض افتراضيًا «١ محرم ١٤٤٨ هـ» والاختبارات تمرّ لأنها تفحص الرندر فقط — الآن _HIJRI_FMT في المسار الصحيح.

  • عطل DST مُصلَّح: ثابت tz في جدول المدن كان يُخطئ ساعة كاملة أثناء التوقيت الصيفي (القاهرة tz:2 مقابل Africa/Cairo = +3 اليوم) — الآن لكل مدينة منطقة IANA (z) تُشتق إزاحتها لليوم الحالي عبر tzFromName عند كل قراءة (مسارات: محفوظ/جهاز/IP/اختيار المدينة).

  • تفاعل الأدوات tests/tools_interact.js — 32/32 محليًا وإنتاجًا: يتمرّس حتى ٤ حركات فعلية لكل أداة (نقر زر/رابط · تغيير select · إدخال آمن · تبديل checkbox) مع حارس تجميد ومنظّف حالة (Escape/hash/صوت) — الأدوات العرضية الخالصة (iftar/calendar/countdown) مُوثّقة كعرضية في الكود.

  • ملاحظة نطاق: إعدادات المشروع تحوي quran-reels.ansygroup.com كـalias (يظهر في أمر النشر) لكن DNS لا يحلّه بعد — النطاق المرجعي quran-reels-tau.vercel.app سليم.

  • أداء الإقلاع: defer لـ12 سكربت، تنفيذات الأدوات الثلاثة تُجلب عند أول فتح أداة (مقتناة في SHELL للأوفلاين)، خلفية الصفحة الرئيسية webp، كاش سنة للخطوط/الخلفيات/JS/CSS عبر ?v=3.

  • النتائج الأخيرة (بناء كمل#7): chromium PROD 86/0 · LOCAL 81/0 · api 15/15 · الصحة 30/30 · تفاعل 32/32 · دخان 32/32 · LH 91/100/100/100 (firefox/webkit: 85/80 و85/80 على بناء 0d21c5c مع SKIP_EXPORT=1: MediaRecorder مفقود/معطّل في headless لهما — قيد بيئة موثّق) · api_test يشمل: الأوفلاين عبر Service Worker، صف سحابة إنتاجي، قسم S9 للحساب/الأتمتة/عقود API — رفض الزائر401، حارس زر جوجل: المزوّد غير المُفعّل يعطي تنبيهًا بدل صفحة خطأ، رابط «النشر التلقائي» في القائمة، وFAQ = 15 مطابقة للـJSON-LD.

  • PWA كامل للتثبيت: أيقونات icon-192.png/icon-512.png (+maskable) ومُشار إليها بـ?v=2 لكسر كاش CDN، وإصدار SW = qr-v3.

  • رؤوس أمنية لكل /api/*: nosniff + Referrer-Policy + Permissions-Policy (geo/self — كاميرا/ميكروفون ممنوعان).

  • محلل رموز الجلسة QRAuth.parseAuthHash: يتحمل #access_token= و#/…#access_token= المزدوج و?access_token= (مُختبَر بثلاثة أشكال).

  • مسار الرابط السحري: الإرسال مقبول للنطاقات الحقيقية (دُرّب بـ429 بعد قبوله)؛ صفحة التحقق token_hash تتطلب رمزًا واردًا من البريد فعلًا (جُرّبت بصلاحيات القاعدة ورُفضت بـotp_expired كما هو متوقع) — إعداد site_url صار على الإنتاج.

  • مستودع git محلي (80 ملفًا، .gitignore يحمي .env*/.vcfg/.vercel) — أول commit شامل كل شيء.

  • أداء معاينة الشبكات: صورة og-cover أعيد ضغطها 2167KB→95KB (1200×630 JPEG) ومُحدَّثة في og/twitter + JSON-LD مع ?v=2 — ومُتحقَّد أن كل مسارات SW (21) تعيد 200 وسجلات الإنتاج خالية من الأخطاء.

  • زر تثبيت التطبيق PWA: يظهر بحدوث beforeinstallprompt ويخفي بـappinstalled (فحصان جديدان في S9).

  • CSP صارم على HTML: script-src 'self' (لا سكربتات داخلية/معالجات onclick — أُعيد توجيه زر الإنشاء إلى JS)، connect/media pin للمصادر الحقيقية (Supabase/everyayah/overpass/jsdelivr/qurango)، frame-ancestors 'none' + X-Frame-Options: DENY + Referrer-Policy — والاثنان والثمانون فحصًا تمرّ دون أي انتهاك.

  • تكامل iOS: apple-touch-icon من PNG-192 + theme-color موجود.

  • sql/schema.sql: نسخة مخطط كاملة (5 جداول + RLS + 14 سياسة + 6 فهارس، من الكتالوج الحي) للاستعادة — بلا أي سر.

  • حارس توافق: رسالة عربية واضحة إن غاب MediaRecorder بدل خطأ تقني.

  • تدقيق أداء: SHELL ‏= 2.8MB فقط (الترجمات الـ12MB عند الطلب)، brotli مُفعّل، 21 مسار SW كلها 200.

  • اختبار متصفح مضاعف: PW_BROWSER=firefox node run.js (chromium افتراضي) — Firefox أخضر 85/80 بـSKIP_EXPORT=1 لأن MediaRecorder يعلّق في Firefox headless (سُجّل بملء قيد بيئة في run.js؛ تصدير MP4 مُختبَر على chromium).

    لربطه بـGitHub لاحقًا (بمُشتركك أنت — لا تُلصق التوكن هنا أبدًا):

    gh auth login            # أو استخدم PAT عبر GH_TOKEN
    gh repo create quran-reels --private --source=. --push
    # أو يدويًا:
    # git remote add origin https://github.com/<user>/quran-reels.git
    # git push -u origin main
    
  • فحص عقود الوحدات api_test.js: 15/15 (ACAO · كاش · Range206 · 405 · rate-limit429 · X-Cache HIT · ip · app-config).

  • جدولة Vercel مؤكَّدة: vercel crons ls → /api/cron/publish · 15 4 * * * (يوميًا).

  • E2E كامل بحساب حقيقي (يدوي، خارج المجموعة): منح جلسة → رفع فيزيو للتخزين (200 + رابط عام) → إدراج مهمة بـRLS → جدولة عبر API → نشر بلا ربط ⇒ failed برسالة عربية مُدارة → أتمتة upsert → واجهة بحساب مسجّل 8/8 (بطاقة المستخدم، قوائم، نافذة الجدولة، توليد البوست، خروج ينظّف الجلسة) — وكل البيانات نُظّفت بعدها (0 صف).

  • ملاحظة بيئة العمل: كل رد من المستخدم ينظّف node_modules وذاكرة المتصفح — أعد npm i playwright && npx playwright install chromium-headless-shell (+ install-deps إن لزم) قبل أي تشغيل جديد.

  • التحقق من بيانات الملفات: فحص مطابقة الـ44 ملفًا بين النشرة المحلية والإنتاج (HEAD 200 للكل)، وعقد دوال Vercel بـ13 فحص (api_test.js سابقًا)، وإثبات مزامنة السحابة بجهازين على الإنتاج.

📝 ملاحظات

  • التصدير يلتقط الصوت الحي من مشغّل WebAudio (MediaStreamDestination) — يجب مرور الصوت عبر نفس الأصل (/proxy) لتجاوز قيود CORS.

  • الموقع منشور على quran-reels-tau.vercel.app (كل وسوم SEO وrobots/sitemap عليه). عند ربط نطاق مخصّص لاحقًا: بدّل النطاق في index.html (canonical/og/JSON-LD) وrobots.txt/sitemap.xml ثم أعد النشر.

  • الاختبارات: tests/run.js (التشغيلان أعلاه خضراء: PROD 65/0 · LOCAL 64/0) — حزمة دائمة داخل المشروع بدل الملفات المؤقتة السابقة.

  • ملاحظات بيئة العمل: مجلدات التبعيات (node_modules، ذاكرة المتصفح، CLI) تُنظَّف مع كل رسالة — أعد تثبيتها بالأوامر أعلاه عند الحاجة؛ ملفات المشروع والبيانات تبقى كما هي.

  • 200 مقالًا + مكتبة إنجليزية + GEO + فيديوهات حقيقية (كمل#21 «كلهم»): (أ) التوسعة 100→200: posts/library_c.js أضاف 24 قسمًا (بنوك المحتوى6→9 لكل العناقيد الثمانية) · posts/index_c.js + posts/index_d.js = 100 مواصفة جديدة (video · reciters · prayer · hifz · azkar · seasons · family · publishing = 25 لكل عننقود) مع فحص CJK وروابط ميتة أغلق9 عيوب كتابة · (ب) المكتبة الإنجليزية: posts/en.js 15 مقالًا إنجليزيًا أصليًا (مواضيع متصلة بأقراها العربية) + scripts/build_posts_en.js → /en/articles/<slug>/ + hub /en/articles/ (Article+Breadcrumb+FAQ LD · hreflang متقابل ar↔en + x-default · صور hero مشتركة عند توفّرها) · فوترات الصفحات lang=en أُعيدت إلى /en/articles/ · (ج) GEO: Article LD حصل على timeRequired + keywords + isPartOf · الرئيسية +WebSite + Organization LD (4 كتل JSON-LD صالحة) · llms.txt: 200 دليلًا (25×8) + قسم المكتبة الإنجليزية + بند حقائق جديد (خريطة 371) · (د) فيديوهات MP4 حقيقية: scripts/export_videos.js يقود الموقع نفسه عبر Playwright (/?s=&from=&to=&r= → #btnCreate → انتظار #btnDownload → تنزيل) → 8 مقاطع عمودية 1080×1920 بلا علامة مائية (3.6–16.7MB) في deliverables/videos/ + README ببيانات يوتيوب جاهزة (عنوان ووصف ووسوم لكل مقطع · روابط لمقالاته · قواعد الرفع Shorts) · Sitemap 255→371 (+116 بلا تكرار) · pages12 ينتظر 371 · محلي: 371/371 كلها 200 + canonical متطابق · correctness 30 · blog 12 · smoke 32 · interact 32 · api 0 · W3C 372 ملفًا → أخطاء0 (إصلاح تدرّج عناوين /faq/) · خادم8787 أُعيد تشغيله من جذر المستودع (كان يعمل دون مسارات API محليًا).

  • 400 مقالًا + 40 إنجليزيًا + فيديوهات40 + APK (كمل#22 «كلهم» + «APK للجوال»): (أ) المكتبة200→400: posts/library_d.js (+24 بنك محتوى) + posts/index_e/f/g/h.js (52+52+52+44 = 200 مواصفة جديدة) → 8 عناقيد × 50 =400 فريدة، إغلاق29 رابطًا ميتًا عبر خرائط href عالمية (DEAD=0)، build_posts.js → 400 مقالًا + hub، خريطة الموقع 371→571 · (ب) فيديوهات40/40: مكتبة video_recipes_c.js (32 وصفة) + إصلاحات انتظار Playwright (60–150s، صيغة3 معاملات لـ waitForFunction) → 40 ملف MP4 عمودية1080×1920 =494MB + README 40 صفًا ببيانات يوتيوب · (ج) الإنجليزية15→40: posts/en_b.js (+25 دليلًا كاملًا) + معالجة 22 وقوع {t} حرفية في build_posts_en.js (تطبيع قبل العرض HTML+JSON-LD) + hub يعرض400 · 40 زوجًا ar↔en hreflang متبادلًا · صفحة /en/tools/ الجديدة زوجًا لـ/ar/islamic-tools/ (x-default→/) · تذييل k12 EN يوصّل الأدوات · خريطة الموقع 571→597 (+26) · pages12 ينتظر 597 · llms: 400 عربي +40 EN +597 رابطًا · W3C محليًا0 أخطاء على42 ملف EN · (د) backlinks docs/backlinks.md: أقسام §12–15 (حزمة روابط400 · أصول النشر والفيديو · خريطة مجتمعات8 عناقيد · قياس اقتباس GEO وتتبّع) + ورقة الحقائق §0 محدّثة للأرقام الحقيقية · (هـ) APK للجوال: Bubblewrap TWA → deliverables/app/quran-reels.apk (1.07MB) + quran-reels.aab — حزمة app.quranreels.twa · minSdk24 · التسمية «قرآن ريلز — صانع ريلز قرآني» · يفتح الموقع الحيّ · شهادة التوقيع مطابقة للـkeystore المحفوظ في deliverables/app/build/android.keystore (كلمة السر داخل .vcfg/apk_keystore_pw — لا تُشارك) · إعادة البناء: scripts/make_apk.py.

  • 500 مقالًا + 100 إنجليزي + فيديوهات80 + ختمة جماعية مُتحقَّق منها (كمل#23 «كلهم»): (أ) المكتبة400→500: posts/index_i.js (+58) + posts/index_j.js (+42) = 100 مواصفة جديدة (video15 · reciters16 · prayer14 · azkar13 · hifz11 · seasons10 · family10 · publishing11) → 500 فريدة، روابط ميتة0، contract0 · build_posts.js → 500 مقالًا + hub · (ب) الإنجليزية40→100: posts/en_c.js+en_d.js = 60 دليلًا جديدًا (slug==arTwin) → بناء 100 مقال EN + 100 زوج ar↔en hreflang · {t} صفر · (ج) فيديوهات40→80: scripts/video_recipes_d.js (+40 وصفة) + ربط BATCH=d → 80 MP4 (785MB) + README 80 صفًا (تشخيص مسار65:1 الممتد 160ث استُبدل بمطلع التغابن47ث) · (د) المزايا (تحقّق لا بناء): auth Google+magic link موجودان ومربوطان (QRAuth + #/account + login overlay)، الروابط السحرية حيّة إنتاجيًا، ختمة جماعية Supabase تعمل ببيانات حقيقية (khatma_plans/progress + RLS مُختبَرة200)، وGoogle provider بانتظار تفعيلهم في لوحة Supabase (الواجهة تُظهر تنبيهًا صريحًا عند التعطّل) · (هـ) تجهيز النشر: deliverables/youtube/ (upload-pack CSV+JSON لـ80 + CHECKLIST) + deliverables/app/store/ (PLAY-LISTING + 6 لقطات1080×1920) · أرقام: sitemap 597→757 · pages12 757 · llms 500/100/757 · backlinks §0 محدّث · W3C محليًا 0 أخطاء/160 · monitor 757/757 بحالة200 · IndexNow160@200 · محلي: run0/0 · correctness30 · blog12 · smoke32 · interact32 · api0 · إنتاج: run0/0 · pages12 30/30@757 · mcp28 · correctness30 · blog12 · smoke32 · interact32 · api0 · LH 89/98 (a11y94/100 · bp100 · seo100).

  • 10,000 مقال + 136 بوابة + IndexNow9,636 (كمل#24 «التسع آلاف»): (أ) التوليد: ‏8 ملفات posts/gen_data_*.js (video185 · reciters178 · prayer154 · hifz162 · azkar170 · seasons132 · family170 · publishing221 = 1,362 موضوعًا في136 مجموعة) بفحص scripts/scan_content.js v3 (CJK/سيليري/يوناني/لاتيني موسّع + نطاق مكمّل + فحص بعد كل كتابة أغلق عيوب «ƪ/ Frauen/过去» وملتصقات الأرقام20) + scripts/gen_engine.js المحرك المتدرّج: صيغ × مواضيع × صفات مؤهّلة (سياق12×جمهور5 · قائمة سماح خاصة بالنشر) مع بوابات تشابه: تفرّد slugs وعناوين وأوصاف عالميًّا · تنقية فتحات العميقة بتطابق الكلمات · منع صفات غير منطقية → 9,500 مقالة بالضبط (1,000 عميق + 8,500 منهجية) +500 قديمة = 10,000 · (ب) البناء: build_posts.js مُرقّى (تحميل القديم+الجديد · قسم ثالث للعميق · بطاقة SVG مضمّنة بديل الهيرو بلا ملفات إضافية · CSS خارجي خفّض279→200MB · ح1 بلا لاحقة · فترينة المجموعة في breadcrumb+LD+روابط) → 10,000 صفحة + hub رئيسي (8×17 شرائح) +136 بوابة محور · vnu 0 أخطاء على عيّنات الأنواع الستة · (ج) الفهرسة: build_sitemap.js → sitemap 757→10,393 بالضبط (kept257+articles10,000+hubs136 · EN101 محفوظة) · pages12 → سحب10,393 بحوض16 عيّنة + عدّاد10393 · llms.txt محدّث + llms-full.txt جديد (2.39MB · 10,136 بندًا وصفيًّا) · (د) النشر: حدّ CLI (100MB/15k ملف) يمنع الرفع المباشر → استُخدم ربط Git موجود (push → نشر تلقائي) → deploy quran-reels-npyd2cnjk جاهز · IndexNow 9,636 (9,500+136) @200 · (هـ) الصور هجين: SVG مضمّن للجميع + عامل gen_ai_images.js (pollinations · حدّ مجاني صورة/45ث → بوابة47ث · عميق أولًا · 500 مخطط) يعمل في الخلفية ويُعاد البناء بعد اكتماله · (و) روابط: docs/backlinks.md §16–18 (حزمة10k · حملة1,000 عميق بمصفوفة8 عناقيد · قياس وصيانة) + §0 محدّثة (10,000/10,393/136) · (ز) الأرقام: محلي run0/0 · correctness30 · blog12 · smoke32 · interact32 · api0 · إنتاج: run0/0 · pages12 30/30@10,393 · mcp28 · correctness30 · blog12 · smoke32 · interact32 · api0 · sitemap10,393 · pool16 كلها200+canonical.

  • تتمة كمل#24 (2026-10-29 «الحاوية الجديدة + كاشف البطاقات»): (أ) الاستعادة: الحاوية أُعيد تجهيزها (.git → a54a4b9 · ~2,969 مجلد مقالة و-out/*.json ضاعت بحدّ لقطة10,000 ملف) → جلب من GitHub و«reset --hard fc69b086» أعاد 10,137 مجلد + 9 ملفات خرج + 13 صورة سليمة · سجلّ العامل صار في ~/ai_images.log (يدوم عبر الرسائل) · JRE21+vnu.jar نُقلا إلى /home/user/tools/ · chromium deps ثُبّتت (sudo apt) · هوية git أُعيد ضبطها · (ب) كاشف بطاقات pollinations: حدّ «صورة/45ث» يُعيد بطاقة JPEG صفراء («Free limit reached») بحالة 400/402 — رُفضت 13 بطاقة تسلّلت كنجاح (فحص md5 مزدوج + حظر التكرارات + تصاعد نوم46→300ث + قراءة retry-after) · الصور الحقيقية14 (8 قديمة +5 أمس +1 بعدها) والباقي يُستكمل دفعةً عبر الرسائل · (ج) a11y: من90-93 إلى100: تسطير روابط .crumb و.foot-bottom (فحص link-in-text-block) → LH إنتاج: articles100/100/100/100 · عميق100/100/100/100 · بوابة97/100/100/100 · الرئيسية a11y100 (perf72-95 تذبذب قياس — المولّر98 كما كان) · (د) فحوص إضافية: vnu23 عيّنة=0 أخطاء (JRE21 دائم) · pages12 بعد الاستعادة30/30 · مراقبة10,393/10,393 سابقًا · IndexNow9,636@200.

Reviews

No reviews yet

Be the first to review this server!