{"id":41328529,"url":"https://github.com/AhmedElTabarani/dorar-hadith-api","last_synced_at":"2026-02-24T23:00:36.734Z","repository":{"id":152509030,"uuid":"479187755","full_name":"AhmedElTabarani/dorar-hadith-api","owner":"AhmedElTabarani","description":"API وسيط للـدرر السنية","archived":false,"fork":false,"pushed_at":"2026-02-08T09:42:46.000Z","size":670,"stargazers_count":102,"open_issues_count":2,"forks_count":29,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-02-08T16:12:11.419Z","etag":null,"topics":["api","hadith","islamic","search"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AhmedElTabarani.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-04-08T00:12:29.000Z","updated_at":"2026-02-08T09:42:49.000Z","dependencies_parsed_at":"2025-06-06T20:02:12.198Z","dependency_job_id":null,"html_url":"https://github.com/AhmedElTabarani/dorar-hadith-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AhmedElTabarani/dorar-hadith-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AhmedElTabarani%2Fdorar-hadith-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AhmedElTabarani%2Fdorar-hadith-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AhmedElTabarani%2Fdorar-hadith-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AhmedElTabarani%2Fdorar-hadith-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AhmedElTabarani","download_url":"https://codeload.github.com/AhmedElTabarani/dorar-hadith-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AhmedElTabarani%2Fdorar-hadith-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29804138,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T22:43:48.403Z","status":"ssl_error","status_checked_at":"2026-02-24T22:43:18.536Z","response_time":75,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","hadith","islamic","search"],"created_at":"2026-01-23T06:11:49.933Z","updated_at":"2026-02-24T23:00:36.721Z","avatar_url":"https://github.com/AhmedElTabarani.png","language":"JavaScript","funding_links":[],"categories":["Hadith Collection and Study (21 projects)"],"sub_categories":["JavaScript"],"readme":"# Dorar.net Hadith API\n\nالسلام عليكم ورحمة الله وبركاته\n\nمنذ مدة حاولت استعمال الـ `API` الخاص [بالدرر السنية](https://dorar.net/article/389/%D8%AE%D8%AF%D9%85%D8%A9-%D9%88%D8%A7%D8%AC%D9%87%D8%A9-%D8%A7%D9%84%D9%85%D9%88%D8%B3%D9%88%D8%B9%D8%A9-%D8%A7%D9%84%D8%AD%D8%AF%D9%8A%D8%AB%D9%8A%D8%A9-API)  \nلكنني واجهت بعض الصعوبات منها أن الـ `API` يتعامل مع [JSONP](https://en.wikipedia.org/wiki/JSONP) فقط وأيضًا لن تستطيع التعامل معه بالطرق العادية بسبب الـ [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing)\n\nوإن نجحت بتجنب الـ `CORS` باستعمال `JSONP` فتحصل على الناتج بهيئة `HTML`\nوأيضًا لا يوجد `documentation` أو مستند ما يشرح تفاصيل هذا الـ `API` وكيفية التعامل معه\n\nفأنا قررت عمل `API` وسيط يتجنب مشكلة `CORS` ويعطيك البيانات كهيئة `JSON`\nبجانب شرح مفصل للـ `API` وكيفية استخدامه  \nبالاضافة إلى احتواءه على بعض الخصائص الإضافية التي لا توجد في الـ `API` الرسمي\n\n## تنبيه\n\n- يتم عمل `cache` لكل عملية بحث لمدة `5` ثواني\n- هناك حد للاستخدام: `100` عملية بحث في اليوم لكل `IP`\n\n\u003e يمكنك تعديلهم من ملف [config.js](./config/config.js)\n\n## تشغيل الـ API\n\n1. عمل `fork` أو `clone` لهذا المشروع\n2. تثبيت الـ `dependencies`\n\n```bash\nnpm install\n```\n\n3. أنشئ ملف `.env` (يمكنك نسخه من `.env.example`) وعدّل المتغيرات مثل `PORT` حسب الحاجة  \n   ملاحظة: يتم تحميل `.env` تلقائيًا عند تشغيل السيرفر عبر `dotenv`\n4. تفقد ملف [config.js](./config/config.js) وقم بتعديل ما تريده\n5. تشغيل الـ `API`\n\n```bash\nnpm start\n```\n\n6. الـ `API` سيكون متوفر على الرابط التالي (افتراضيًا إن لم تغيّر `PORT`):\n\n```bash\nhttp://localhost:5000\n```\n\n7. استخدمه على `localhost` كما تريد أو ارفعه على استضافة أو سيرفر خاص بك\n\n## Documentation\n\n### Postman\n\nالرابط: [Postman](https://www.postman.com/crimson-robot-408440/workspace/hadith-api/collection/14391446-6a1c5404-cc59-4d59-933d-c07547ee75ca?action=share\u0026creator=14391446)\n\n- استعمل `Postman` لتعرف كيف تتعامل مع الـ `API` وترى أمثلة عليه\n- قم بعمل `fork` للـ `collection` لتستخدمه كما تريد\n- لا تنس تغير الـ `environment` إلى `dev` ويمكنك تغير الرابط الخاص بالمتغير `{{url}}` ان كنت قد غيرته أو غيرت الـ `port`\n\n### OpenAPI v3 (Swagger)\n\n## وثائق API\n\nلعرض وثائق `API` التفاعلية:\n\n1. قم بتشغيل الـ `Server`:\n\n   ```bash\n   npm run dev\n   ```\n\n2. افتح المتصفح وانتقل إلى:\n   ```\n   http://localhost:5000/api-docs\n   ```\n\nستجد هنا واجهة `Swagger UI` التي تتيح لك استكشاف جميع نقاط النهاية المتاحة واختبار الـ `API` مباشرة من المتصفح\n\n### Endpoints\n\nيحتوي الـ `API` على مجموعة من الـ `endpoint`\n\n- عندما يبدأ الـ `endpoint` بـ `/api` فهو هكذا يبحث عن طريق الـ `API` الرسمي الخاص بالدرر السنية\n- عندما يبدأ الـ `endpoint` بـ `/site` فهو هكذا يبحث عن طريق صفحة البحث الخاص بالدرر السنية\n- ردود الـ `site` تحتوي على حقل **`categories`** (التصنيف الموضوعي) لكل حديث: مصفوفة من `{ id, name }` من موقع الدرر\n\n#### /v1/api/hadith/search?value={text}\n\nللبحث عن الأحاديث يعطي `15` نتيجة\n\nشكل الرد كـ `JSON`\n\n```json\n{\n  \"metadata\": {\n    \"length\": \"عدد نتائج البحث\",\n    \"page\": \"رقم الصفحة\",\n    \"removeHTML\": \"هل عناصر الـ HTML ممسوحة أم لا\",\n    \"isCached\": \"هل هذه النتائج من الـ cache أم لا\"\n  },\n  \"data\": [\n    {\n      \"hadith\": \"الحديث\",\n      \"rawi\": \"الراوي\",\n      \"mohdith\": \"المحدث\",\n      \"book\": \"الكتاب\",\n      \"numberOrPage\": \"رقم الحديث او الصفحة\",\n      \"grade\": \"درجة الصحة\"\n    }\n  ]\n}\n```\n\n#### /v1/site/hadith/search?value={text}\n\nللبحث عن الأحاديث يعطي `30` نتيجة\n\nشكل الرد كـ `JSON`\n\n```json\n{\n  \"metadata\": {\n    \"length\": \"عدد نتائج البحث\",\n    \"page\": \"رقم الصفحة\",\n    \"removeHTML\": \"هل عناصر الـ HTML ممسوحة أم لا\",\n    \"specialist\": \"نوع الاحاديث هل هي للمتخصصين أم لا\",\n    \"numberOfNonSpecialist\": \"عدد الأحاديث لغير المتخصصين\",\n    \"numberOfSpecialist\": \"عدد الأحاديث للمتخصصين\",\n    \"isCached\": \"هل هذه النتائج من الـ cache أم لا\"\n  },\n  \"data\": [\n    {\n      \"hadith\": \"الحديث\",\n      \"rawi\": \"الراوي\",\n      \"mohdith\": \"المحدث\",\n      \"mohdithId\": \"رقم المحدث\",\n      \"book\": \"الكتاب\",\n      \"bookId\": \"رقم الكتاب\",\n      \"numberOrPage\": \"رقم الحديث او الصفحة\",\n      \"grade\": \"درجة الصحة\",\n      \"explainGrade\": \"توضيح درجة الصحة\",\n      \"takhrij\": \"تخريج الحديث في كتب أخرى\",\n      \"hadithId\": \"رقم الحديث لاستخدامه في البحث عن الأحاديث البديلة أو الحديث البديل الصحيح\",\n      \"categories\": [\n        {\n          \"id\": \"رقم التصنيف\",\n          \"name\": \"اسم التصنيف\"\n        }\n      ],\n      \"hasSimilarHadith\": \"هل الحديث له أحاديث مشابهة أم لا\",\n      \"hasAlternateHadithSahih\": \"هل الحديث له حديث صحيح بديل أم لا\",\n      \"hasUsulHadith\": \"هل الحديث له أصول أم لا\",\n      \"similarHadithDorar\": \"رابط الأحاديث المشابهة في موقع الدرر\",\n      \"alternateHadithSahihDorar\": \"رابط الحديث الصحيح في موقع الدرر\",\n      \"usulHadithDorar\": \"رابط أصول الحديث في موقع الدرر\",\n      \"urlToGetSimilarHadith\": \"رابط لكي تبحث عن الأحاديث المشابهة\",\n      \"urlToGetAlternateHadithSahih\": \"رابط لكي تبحث عن الحديث الصحيح\",\n      \"urlToGetUsulHadith\": \"رابط لكي تبحث عن أصول الحديث\",\n      \"hasSharhMetadata\": \"هل الحديث له شرح أم لا\",\n      \"sharhMetadata\": {\n        \"id\": \"رقم الشرح\",\n        \"isContainSharh\": \"هل يحتوى هذا الرد على شرح الحديث أم لا؟\",\n        \"urlToGetSharh\": \"رابط لكي تبحث عن شرح الحديث\"\n      }\n    }\n  ]\n}\n```\n\n#### /v1/site/hadith/similar/:id\n\nيحضر لك أحاديث مشابهة المقابلة للـ `id`\n\nشكل الرد كـ `JSON`\n\n```json\n{\n  \"metadata\": {\n    \"length\": \"عدد نتائج البحث\",\n    \"isCached\": \"هل هذه النتائج من الـ cache أم لا\"\n  },\n  \"data\": [\n    {\n      \"hadith\": \"الحديث\",\n      \"rawi\": \"الراوي\",\n      \"mohdith\": \"المحدث\",\n      \"mohdithId\": \"رقم المحدث\",\n      \"book\": \"الكتاب\",\n      \"bookId\": \"رقم الكتاب\",\n      \"numberOrPage\": \"رقم الحديث او الصفحة\",\n      \"grade\": \"درجة الصحة\",\n      \"explainGrade\": \"توضيح درجة الصحة\",\n      \"hadithId\": \"رقم الحديث لاستخدامه في البحث عن الأحاديث البديلة أو الحديث البديل الصحيح\",\n      \"categories\": [\n        {\n          \"id\": \"رقم التصنيف\",\n          \"name\": \"اسم التصنيف\"\n        }\n      ],\n      \"hasSimilarHadith\": \"هل الحديث له أحاديث مشابهة أم لا\",\n      \"hasAlternateHadithSahih\": \"هل الحديث له حديث صحيح بديل أم لا\",\n      \"hasUsulHadith\": \"هل الحديث له أصول أم لا\",\n      \"similarHadithDorar\": \"رابط الأحاديث المشابهة في موقع الدرر\",\n      \"alternateHadithSahihDorar\": \"رابط الحديث الصحيح في موقع الدرر\",\n      \"usulHadithDorar\": \"رابط أصول الحديث في موقع الدرر\",\n      \"urlToGetSimilarHadith\": \"رابط لكي تبحث عن الأحاديث المشابهة\",\n      \"urlToGetAlternateHadithSahih\": \"رابط لكي تبحث عن الحديث الصحيح\",\n      \"urlToGetUsulHadith\": \"رابط لكي تبحث عن أصول الحديث\",\n      \"hasSharhMetadata\": \"هل الحديث له شرح أم لا\",\n      \"sharhMetadata\": {\n        \"id\": \"رقم الشرح\",\n        \"isContainSharh\": \"هل يحتوى هذا الرد على شرح الحديث أم لا؟\",\n        \"urlToGetSharh\": \"رابط لكي تبحث عن شرح الحديث\"\n      }\n    }\n  ]\n}\n```\n\n#### /v1/site/hadith/:id\n\nيحضر لك الحديث المقابل للـ `id`\n\nشكل الرد كـ `JSON`\n\n```json\n{\n  \"metadata\": {\n    \"isCached\": \"هل هذه النتائج من الـ cache أم لا\"\n  },\n  \"data\": {\n    \"hadith\": \"الحديث\",\n    \"rawi\": \"الراوي\",\n    \"mohdith\": \"المحدث\",\n    \"mohdithId\": \"رقم المحدث\",\n    \"book\": \"الكتاب\",\n    \"bookId\": \"رقم الكتاب\",\n    \"numberOrPage\": \"رقم الحديث او الصفحة\",\n    \"grade\": \"درجة الصحة\",\n    \"explainGrade\": \"توضيح درجة الصحة\",\n    \"hadithId\": \"رقم الحديث لاستخدامه في البحث عن الأحاديث البديلة أو الحديث البديل الصحيح\",\n    \"categories\": [\n      {\n        \"id\": \"رقم التصنيف\",\n        \"name\": \"اسم التصنيف\"\n      }\n    ],\n    \"hasSimilarHadith\": \"هل الحديث له أحاديث مشابهة أم لا\",\n    \"hasAlternateHadithSahih\": \"هل الحديث له حديث صحيح بديل أم لا\",\n    \"hasUsulHadith\": \"هل الحديث له أصول أم لا\",\n    \"similarHadithDorar\": \"رابط الأحاديث المشابهة في موقع الدرر\",\n    \"alternateHadithSahihDorar\": \"رابط الحديث الصحيح في موقع الدرر\",\n    \"usulHadithDorar\": \"رابط أصول الحديث في موقع الدرر\",\n    \"urlToGetSimilarHadith\": \"رابط لكي تبحث عن الأحاديث المشابهة\",\n    \"urlToGetAlternateHadithSahih\": \"رابط لكي تبحث عن الحديث الصحيح\",\n    \"urlToGetUsulHadith\": \"رابط لكي تبحث عن أصول الحديث\",\n    \"hasSharhMetadata\": \"هل الحديث له شرح أم لا\",\n    \"sharhMetadata\": {\n      \"id\": \"رقم الشرح\",\n      \"isContainSharh\": \"هل يحتوى هذا الرد على شرح الحديث أم لا؟\",\n      \"urlToGetSharh\": \"رابط لكي تبحث عن شرح الحديث\"\n    }\n  }\n}\n```\n\n#### /v1/site/hadith/alternate/:id\n\nيحضر لك الحديث الصحيح المقابل للـ `id`\n\nشكل الرد كـ `JSON`\n\n```json\n{\n  \"metadata\": {\n    \"isCached\": \"هل هذه النتائج من الـ cache أم لا\"\n  },\n  \"data\": {\n    \"hadith\": \"الحديث\",\n    \"rawi\": \"الراوي\",\n    \"mohdith\": \"المحدث\",\n    \"mohdithId\": \"رقم المحدث\",\n    \"book\": \"الكتاب\",\n    \"bookId\": \"رقم الكتاب\",\n    \"numberOrPage\": \"رقم الحديث او الصفحة\",\n    \"grade\": \"درجة الصحة\",\n    \"hadithId\": \"رقم الحديث لاستخدامه في البحث عن الأحاديث البديلة أو الحديث البديل الصحيح\",\n    \"categories\": [\n      {\n        \"id\": \"رقم التصنيف\",\n        \"name\": \"اسم التصنيف\"\n      }\n    ],\n    \"hasSimilarHadith\": \"هل الحديث له أحاديث مشابهة أم لا\",\n    \"hasAlternateHadithSahih\": \"هل الحديث له حديث صحيح بديل أم لا\",\n    \"similarHadithDorar\": \"رابط الأحاديث المشابهة في موقع الدرر\",\n    \"urlToGetSimilarHadith\": \"رابط لكي تبحث عن الأحاديث المشابهة\",\n    \"hasSharhMetadata\": \"هل الحديث له شرح أم لا\",\n    \"sharhMetadata\": {\n      \"id\": \"رقم الشرح\",\n      \"isContainSharh\": \"هل يحتوى هذا الرد على شرح الحديث أم لا؟\",\n      \"urlToGetSharh\": \"رابط لكي تبحث عن شرح الحديث\"\n    }\n  }\n}\n```\n\n#### /v1/site/hadith/usul/:id\n\nيحضر لك أصول الحديث وطرق إخراجه للـ `id` المعطى\n\nشكل الرد كـ `JSON`\n\n```json\n{\n  \"metadata\": {\n    \"isCached\": \"هل هذه النتائج من الـ cache أم لا\"\n  },\n  \"data\": {\n    \"hadith\": \"الحديث الأساسي\",\n    \"rawi\": \"الراوي\",\n    \"mohdith\": \"المحدث\",\n    \"mohdithId\": \"رقم المحدث\",\n    \"book\": \"الكتاب\",\n    \"bookId\": \"رقم الكتاب\",\n    \"numberOrPage\": \"رقم الحديث او الصفحة\",\n    \"grade\": \"درجة الصحة\",\n    \"explainGrade\": \"توضيح درجة الصحة\",\n    \"hadithId\": \"رقم الحديث\",\n    \"categories\": [\n      {\n        \"id\": \"رقم التصنيف\",\n        \"name\": \"اسم التصنيف\"\n      }\n    ],\n    \"hasSimilarHadith\": \"هل الحديث له أحاديث مشابهة أم لا\",\n    \"hasAlternateHadithSahih\": \"هل الحديث له حديث صحيح بديل أم لا\",\n    \"hasUsulHadith\": \"هل الحديث له أصول أم لا\",\n    \"usulHadith\": {\n      \"sources\": [\n        {\n          \"source\": \"مصدر الحديث مع الصفحة\",\n          \"chain\": \"سلسلة الرواة\",\n          \"hadithText\": \"نص الحديث\"\n        }\n      ],\n      \"count\": \"عدد المصادر\"\n    }\n  }\n}\n```\n\n#### /v1/site/sharh/:id\n\nللبحث عن شرح لحديث واحد عن طريق الـ `id`\n\nشكل الرد كـ `JSON`\n\n```json\n{\n  \"metadata\": {\n    \"isCached\": \"هل هذه النتائج من الـ cache أم لا\"\n  },\n  \"data\": {\n    \"hadith\": \"الحديث\",\n    \"rawi\": \"الراوي\",\n    \"mohdith\": \"المحدث\",\n    \"book\": \"الكتاب\",\n    \"numberOrPage\": \"رقم الحديث او الصفحة\",\n    \"grade\": \"درجة الصحة\",\n    \"takhrij\": \"تخريج الحديث في كتب أخرى\",\n    \"hasSharhMetadata\": \"هل الحديث له شرح أم لا\",\n    \"sharhMetadata\": {\n      \"id\": \"رقم الشرح\",\n      \"isContainSharh\": \"هل يحتوى هذا الرد على شرح الحديث أم لا؟\",\n      \"urlToGetSharh\": \"رابط لكي تبحث عن شرح الحديث\",\n      \"sharh\": \"شرح الحديث\"\n    }\n  }\n}\n```\n\n#### /v1/site/sharh/text/:text\n\nللبحث عن شرح لحديث واحد عن طريقة النص المعطى\n\nشكل الرد كـ `JSON`\n\n```json\n{\n  \"metadata\": {\n    \"specialist\": \"نوع الاحاديث هل هي للمتخصصين أم لا\",\n    \"isCached\": \"هل هذه النتائج من الـ cache أم لا\"\n  },\n  \"data\": {\n    \"hadith\": \"الحديث\",\n    \"rawi\": \"الراوي\",\n    \"mohdith\": \"المحدث\",\n    \"book\": \"الكتاب\",\n    \"numberOrPage\": \"رقم الحديث او الصفحة\",\n    \"grade\": \"درجة الصحة\",\n    \"takhrij\": \"تخريج الحديث في كتب أخرى\",\n    \"hasSharhMetadata\": \"هل الحديث له شرح أم لا\",\n    \"sharhMetadata\": {\n      \"id\": \"رقم الشرح\",\n      \"isContainSharh\": \"هل يحتوى هذا الرد على شرح الحديث أم لا؟\",\n      \"urlToGetSharh\": \"رابط لكي تبحث عن شرح الحديث\",\n      \"sharh\": \"شرح الحديث\"\n    }\n  }\n}\n```\n\n#### /v1/site/sharh/search?value={text}\n\nللبحث عن شرح للأحاديث يعطي `30` نتيجة\n\nشكل الرد كـ `JSON`\n\n```json\n{\n  \"metadata\": {\n    \"length\": \"عدد نتائج البحث\",\n    \"page\": \"رقم الصفحة\",\n    \"removeHTML\": \"هل عناصر الـ HTML ممسوحة أم لا\",\n    \"specialist\": \"نوع الاحاديث هل هي للمتخصصين أم لا\",\n    \"isCached\": \"هل هذه النتائج من الـ cache أم لا\"\n  },\n  \"data\": [\n    {\n      \"hadith\": \"الحديث\",\n      \"rawi\": \"الراوي\",\n      \"mohdith\": \"المحدث\",\n      \"book\": \"الكتاب\",\n      \"numberOrPage\": \"رقم الحديث او الصفحة\",\n      \"grade\": \"درجة الصحة\",\n      \"takhrij\": \"تخريج الحديث في كتب أخرى\",\n      \"hasSharhMetadata\": \"هل الحديث له شرح أم لا\",\n      \"sharhMetadata\": {\n        \"id\": \"رقم الشرح\",\n        \"isContainSharh\": \"هل يحتوى هذا الرد على شرح الحديث أم لا؟\",\n        \"urlToGetSharh\": \"رابط لكي تبحث عن شرح الحديث\",\n        \"sharh\": \"شرح الحديث\"\n      }\n    }\n  ]\n}\n```\n\n#### /v1/site/mohdith/:id\n\nللبحث عن معلومات عن المحدث عن طريق الـ `id`\n\nشكل الرد كـ `JSON`\n\n```json\n{\n  \"metadata\": {\n    \"isCached\": \"هل هذه النتائج من الـ cache أم لا\"\n  },\n  \"data\": {\n    \"name\": \"المحدث\",\n    \"mohdithId\": \"رقم المحدث\",\n    \"info\": \"معلومات عن المحدث\"\n  }\n}\n```\n\n#### /v1/site/book/:id\n\nللبحث عن معلومات عن الكتاب عن طريق الـ `id`\n\nشكل الرد كـ `JSON`\n\n```json\n{\n  \"metadata\": {\n    \"isCached\": \"هل هذه النتائج من الـ cache أم لا\"\n  },\n  \"data\": {\n    \"name\": \"الكتاب\",\n    \"bookId\": \"رقم الكتاب\",\n    \"author\": \"المؤلف\",\n    \"reviewer\": \"المراجع\",\n    \"publisher\": \"دار النشر\",\n    \"edition\": \"رقم الطبعة\",\n    \"editionYear\": \"سنة الطبعة\"\n  }\n}\n```\n\n### Query\n\nعناصر الـ `query` التي يمكنك استخدامها  \nمع شرح تفصيلي أسفل الجدول\n\n\u003cdiv dir=rtl\u003e\n\n|              key               |                      الوصف                      |\n| :----------------------------: | :---------------------------------------------: |\n|            `value`             |      وهي محتوى نص الحديث المراد البحث عنه       |\n|             `page`             |            لتحديد الصفحة التي تريدها            |\n|          `removehtml`          |         حذف عناصر الـ `HTML` في الحديث          |\n|          `specialist`          | تستخدم لتحدد نوع الاحاديث هل هي للمتخصصين أم لا |\n|            `xclude`            |      كلمة أو جملة تريد استبعادها من البحث       |\n|              `st`              |                تحدد طريقة البحث                 |\n|              `t`               |                تحديد نطاق البحث                 |\n|  \u003cspan dir=ltr \u003e`d[]`\u003c/span\u003e   |       تحديد درجة الحديث سواء صحيح ام ضعيف       |\n|  \u003cspan dir=ltr \u003e`m[]`\u003c/span\u003e   |        تحديد اسماء المحدثين التي تريدهم         |\n|  \u003cspan dir=ltr \u003e`s[]`\u003c/span\u003e   |        تحديد الكتب التي تريد البحث فيها         |\n| \u003cspan dir=ltr \u003e`rawi[]`\u003c/span\u003e |         تحديد اسماء الرواة التي تريدهم          |\n\n \u003c/div\u003e\n\n- هذه الاقواس `[]` تفيد ان هذا العنصر يقبل اكثر من اختيار\n\n#### value\n\n- محتوى نص الحديث المراد البحث عنه\n- مثال: `/v1/api/hadith/search?value=جملة البحث`  \n   هكذا سيبحث بناءًا على جملة البحث\n\n#### page\n\n- لتحديد الصفحة التي تريدها\n- مثال: `/v1/api/hadith/search?value=جملة البحث\u0026page=1`  \n  هكذا سيبحث في نتائج البحث للصفحة الثالثة أي المجموعة الثالثة لنتائج البحث\n- القيمة الافتراضية ستكون الصفحة رقم واحد `page=1`\n\n#### removehtml\n\n- حذف عناصر الـ `HTML` في الحديث  \n  مثل `\u003cspan class=\"search-keys\"\u003e...\u003c/span\u003e`\n- مثال: `/v1/api/hadith/search?value=جملة البحث\u0026removehtml=true`  \n  هكذا سيمسح عناصر الـ `HTML` من نتائج البحث\n- القيمة الافتراضي هي `true`\n\n#### specialist\n\n- تستخدم لتحدد نوع الاحاديث هل هي للمتخصصين أم لا\n- قيمها هي `true` للمتخصصين و `false` لغير المتخصصين\n- مثال: `/v1/api/hadith/search?value=جملة البحث\u0026specialist=true`  \n  سيعطيك أحاديث أكثر ومختلفة خاصة للمتخصصين  \n  وتكون بها معلومة اضافية مثل تخريج الأحاديث في الكتب الأخرى\n- القيمة الافتراضية هي `false`\n\n#### xclude\n\n- كلمة أو جملة تريد استبعادها من البحث مثال\n- مثال: `/v1/api/hadith/search?value=جملة البحث\u0026xclude=اليهود`  \n  هكذا سيستبعد كلمة `اليهود` من البحث\n\n#### st\n\n- تحدد طريقة البحث بثلاثة خيارات فقط\n- هذه الطرق هي: `جميع الكلمات`، `أي كلمة`، `بحث مطابق`\n- قيمها هي: `w`, `a`, `p`  \n  للبحث بـ `جميع الكلمات` فستكون `st=w`  \n  للبحث بـ `أي كلمة` فستكون `st=a`  \n  للبحث بـ `بحث مطابق` فستكون `st=p`\n- مثال: `/v1/api/hadith/search?value=جملة البحث\u0026st=p`  \n   هكذا سيبحث بشكل مطابق لجملة البحث\n\n[كل القيم وطرق البحث التي تمثلها](./data/method-search.txt)  \nأو يمكنك الحصول عليها كملف `JSON` من [هنا](./data/method-search.json)\n\n#### t\n\n- تحديد نطاق البحث\n- هذه النطاقات هي: `جميع الأحاديث`، `الأحاديث المرفوعة`، `الأحاديث القدسية`، `آثار الصحابة`، `شروح الأحاديث`\n- قيمها هي: `*`, `0`, `1`, `2`, `3`  \n  للبحث عن `جميع الأحاديث` فستكون `t=*`  \n  للبحث عن `الأحاديث المرفوعة` فستكون `t=0`  \n  للبحث عن `الأحاديث القدسية` فستكون `t=1`  \n  للبحث عن `آثار الصحابة` فستكون `t=2`  \n  للبحث عن `شروح الأحاديث` فستكون `t=3`\n- مثال: `/v1/api/hadith/search?value=جملة البحث\u0026t=1`  \n  هكذا سيبحث فقط عن الأحاديث القدسية المطابق لجملة البحث\n\n[كل القيم ونطاقات البحث التي تمثلها](./data/zone-search.txt)  \nأو يمكنك الحصول عليها كملف `JSON` من [هنا](./data/zone-search.json)\n\n#### d[]\n\n- تحديد درجة الحديث سواء صحيح ام ضعيف\n- قيمها هي: `0`، `1`، `2`، `3`، `4`  \n  للبحث عن `جميع الدرجات` فستكون `d[]=0`  \n  للبحث عن `أحاديث حكم المحدثون عليها بالصحة` فستكون `d[]=1`  \n  للبحث عن `أحاديث حكم المحدثون على أسانيدها بالصحة` فستكون `d[]=2`  \n  للبحث عن `أحاديث حكم المحدثون عليها بالضعف` فستكون `d[]=3`  \n  للبحث عن `أحاديث حكم المحدثون على أسانيدها بالضعف` فستكون `d[]=4`\n- مثال: `/v1/api/hadith/search?value=جملة البحث\u0026d[]=3`  \n  هكذا سيبحث فقط عن الأحاديث المحكوم عليها بالضعف\n- يمكنك تحديد اكثر من اختيار  \n  مثال: `/v1/api/hadith/search?value=جملة البحث\u0026d[]=1\u0026d[]=2`  \n  هكذا سيبحث فقط عن الأحاديث المحكوم عليها بالصحة من ناحية المتن و الاسناد\n\n[كل القيم والدرجات التي تمثلها](./data/degree.txt)  \nأو يمكنك الحصول عليها كملف `JSON` من [هنا](./data/degree.json)\n\n#### m[]\n\n- تحديد اسماء المحدثين التي تريدهم\n- قيمها متعددة ومنها: `0`، `179`، `204`، `256`، `261` ... إلخ  \n  حيث `0` تمثل `جميع المحدثين`  \n  و`179` تمثل `الإمام المالك`  \n  و`204` تمثل `الإمام الشافعي`  \n  و`256` تمثل `البخاري`  \n  و`261` تمثل `مسلم`\n- مثال: `/v1/api/hadith/search?value=جملة البحث\u0026m[]=179`  \n  هكذا سيبحث فقط عن الأحاديث التي حدث بها الإمام مالك\n- يمكنك تحديد اكثر من اختيار  \n  مثال: `/v1/api/hadith/search?value=جملة البحث\u0026m[]=256\u0026m[]=261`  \n  هكذا سيبحث فقط عن الأحاديث التي حدثا بها بخاري ومسلم\n\n[كل القيم وأسماء المحدثين التي تمثلها](./data/mohdith.txt)  \nأو يمكنك الحصول عليها كملف `JSON` من [هنا](./data/mohdith.json)\n\n#### s[]\n\n- تحديد الكتب التي تريد البحث فيها\n- قيمها متعددة ومنها: `0`، `13457`، `6216`، `3088`، `96` ... إلخ  \n  حيث `0` تمثل `جميع المحدثين`\n  و`13457` تمثل `الأربعون النووية`  \n  و`6216` تمثل `صحيح البخاري`  \n  و`3088` تمثل `صحيح مسلم`  \n  و`96` تمثل `الصحيح المسند`\n- مثال: `/v1/api/hadith/search?value=جملة البحث\u0026s[]=96`  \n  هكذا سيبحث فقط عن الأحاديث الواردة في كتاب الصحيح المسند\n- يمكنك تحديد اكثر من اختيار  \n  مثال: `/v1/api/hadith/search?value=جملة البحث\u0026s[]=6216\u0026s[]=13457`  \n  هكذا سيبحث فقط عن الأحاديث التي وردت في كتابي الأربعون النووية وكتاب صحيح البخاري\n\n[كل القيم وأسماء الكتب التي تمثلها](./data/book.txt)  \nأو يمكنك الحصول عليها كملف `JSON` من [هنا](./data/book.json)\n\n#### rawi[]\n\n- تحديد اسماء الرواة التي تريدهم\n- قيمها متعددة ومنها: `0`،`1819`، `8918`، `2664` ... إلخ  \n  حيث `0` تمثل `جميع الرواة`  \n  حيث `1819` تمثل `أسماء بنت أبي بكر`  \n  و`8918` تمثل `عمر بن الخطاب`  \n  و`2664` تمثل `ابن عباس`\n- مثال: `/v1/api/hadith/search?value=جملة البحث\u0026rawi[]=1819`  \n  هكذا سيبحث فقط عن الأحاديث التي رواتها أسماء بنت أبي بكر\n- يمكنك تحديد اكثر من اختيار  \n  مثال: `/v1/api/hadith/search?value=جملة البحث\u0026rawi[]=8918\u0026rawi[]=2664`  \n  هكذا سيبحث فقط عن الأحاديث التي رواها عمر بن الخطاب وابن عباس\n- هنا قيم ترمز لأكثر من شخص في آن واحد  \n  مثل `2665` ترمز لـ `ابن عباس أو أبو هريرة`  \n  و`8924` ترمز لـ `عمر بن الخطاب وأبو هريرة`  \n  و`264` ترمز لـ `أبو الدرداء وأبو أمامة وعبدالله بن عمر وابن عباس وجابر بن عبدالله`\n\n[كل القيم وأسماء الرواة التي تمثلها](./data/rawi.txt)  \nأو يمكنك الحصول عليها كملف `JSON` من [هنا](./data/rawi.json)\n\n### Data\n\nكل البيانات المتاحة والقيم التي تمثلها يمكنكم الحصول عليه من هذه الـ `endpoints`\n\n```json\n[\n  {\n    \"endpoint\": \"/v1/data/book\",\n    \"description\": \"احضار كل الكتب المتاحة\",\n    \"abstractResponse\": [\n      {\n        \"key\": \"الكلمة  المفتاحية\",\n        \"value\": \"القيمة\"\n      }\n    ]\n  },\n  {\n    \"endpoint\": \"/v1/data/degree\",\n    \"description\": \"احضار كل درجات الحديث المتاحة\",\n    \"abstractResponse\": [\n      {\n        \"key\": \"الكلمة  المفتاحية\",\n        \"value\": \"القيمة\"\n      }\n    ]\n  },\n  {\n    \"endpoint\": \"/v1/data/methodSearch\",\n    \"description\": \"احضار كل طرق البحث المتاحة\",\n    \"abstractResponse\": [\n      {\n        \"key\": \"الكلمة  المفتاحية\",\n        \"value\": \"القيمة\"\n      }\n    ]\n  },\n  {\n    \"endpoint\": \"/v1/data/mohdith\",\n    \"description\": \"احضار كل المحدثين المتاحين\",\n    \"abstractResponse\": [\n      {\n        \"key\": \"الكلمة  المفتاحية\",\n        \"value\": \"القيمة\"\n      }\n    ]\n  },\n  {\n    \"endpoint\": \"/v1/data/rawi\",\n    \"description\": \"احضار كل الرواة المتاحين\",\n    \"abstractResponse\": [\n      {\n        \"key\": \"الكلمة  المفتاحية\",\n        \"value\": \"القيمة\"\n      }\n    ]\n  },\n  {\n    \"endpoint\": \"/v1/data/zoneSearch\",\n    \"description\": \"احضار كل نطاقات البحث المتاحة\",\n    \"abstractResponse\": [\n      {\n        \"key\": \"الكلمة  المفتاحية\",\n        \"value\": \"القيمة\"\n      }\n    ]\n  }\n]\n```\n\n## توجد مشكلة أو لديك اقتراح؟\n\nافتح issue إذا قابلت مشكلة ما او لديك اقتراح\n\n## المساهمة\n\nبالطبع نرحب بأي مساهمة لدينا ❤\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAhmedElTabarani%2Fdorar-hadith-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAhmedElTabarani%2Fdorar-hadith-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAhmedElTabarani%2Fdorar-hadith-api/lists"}