CodexDrake هو محرك بحث مفتوح المصدر، يسمح لك بتصفح الإنترنت بشكل آمن ومجهول، والعثور على مجموعة متنوعة من النتائج بناءً على فئات مختلفة مثل: الصور، والأخبار، ومواقع الإنترنت، والكتب، وغيرها...
تتم كتابة البرنامج في الغالب بلغة JavaScript، باستخدام NodeJS كواجهة خلفية وVite + React في الواجهة الأمامية. داخل الواجهة الخلفية، يتم استخدام مكتبة "cdrake-se" التي نشرتها NPM، والتي تسمح لك بعبارات بسيطة بتضمين محرك البحث الذي يجعل هذا البرنامج ممكنًا في أي تطبيق لديك.
انتقل إلى حزمة "cdrake-se" في NPM.
يتم استخدام داخل المكتبة مجموعة واسعة من محركات البحث لتتمكن من حل الطلبات المقدمة، من بينها: Google، Bing، Yahoo، Ask، Qwant، Youtube، وغيرها... بالإضافة إلى أنها تتيح لك العثور على اقتراحات وفقًا لمصطلح تم تسليمه وإجراء عمليات بحث على ويكيبيديا.
ضع في اعتبارك أن "cdrake-se" ليس معفى من خطأ HTTP 429 (طلبات كثيرة جدًا)، والذي يمكن أن يحدث إذا تم تقديم عدد كبير من الطلبات في فترة زمنية قصيرة نسبيًا. ومع ذلك، عند استخدام البحث التلقائي (يمكنك معرفة المزيد حول هذا الأمر في وثائق المكتبة)، يتم استخدام "Promise.any"، والذي يترجم إلى شيء مثل "من بين جميع الطلبات المقدمة إلى محركات البحث لحل الاستعلام، واحد الذي ينتهي أولاً هو الذي سيتم إرجاعه." أي أنه مع الأخذ في الاعتبار تنوع محركات البحث التي تدمج المكتبة، في حالة حدوث أي خطأ من أي نوع، بما في ذلك HTTP 429، فلن تكون هناك مشكلة لأنه ستكون هناك محركات أخرى تقوم بإرجاع الاستجابة. المفهوم المذكور أعلاه هو ما يجعل محرك البحث سريعًا وفعالًا إلى حد كبير.
أما اسم "CodexDrake" فهو معناه من الخلف، وتفسير الاسم هو "جشع النتائج"، و Codex من اللاتينية هو الجشع ودريك يفسره علماً أنها معادلة تسمح بإيجاد عدد الحضارات في مجرة معينة. (أعتقد أنني لست مجنونا).
تم تصميم البرنامج بحيث يمكن استضافته ذاتيًا على أي خادم تقوم بإعداده له، فهو يتمتع بدعم للنشر باستخدام Docker أو إجراء التثبيت اليدوي، أعني تثبيت وحدات npm لكل من العميل والخادم و ثم قم ببدء تشغيل npm... كما تعلم.
كما هو مذكور في المكتبة التي تسمح بتشغيل هذا البرنامج "cdrake-se"، فإن نتائج البحث ستعتمد على المنطقة الجغرافية التي يوجد بها الخادم. اعتبارًا من وقت كتابة هذا، تم نشر المثيل على خادم في ألمانيا. ضع في اعتبارك أنه إذا قمت بنشر البرنامج محليًا على جهاز الكمبيوتر الخاص بك، وكنت، على سبيل المثال، في بلد مختلف مثل تشيلي، فستكون النتائج مختلفة. أعتقد أن هذا مرتبط بمحركات البحث المقابلة والطريقة التي تعمل بها الخدمة الخلفية، وأعتقد أنهم يأخذون عنوان IP ويستخرجون البلد ويعيدون الاستجابة وفقًا لسياق البلد.
آمنة وودية مع البيانات الخاصة بك
واجهة مستخدم الويب سريعة الاستجابة
لا توجد رسوم أو اشتراكات (لا توجد واجهات برمجة التطبيقات المدفوعة)
تجربة مستخدم غنية
بنية سهلة الاستخدام
سريع يبعث على السخرية
الوضع المظلم ووضع الضوء
دعم عامل الميناء
هناك طريقتان لنشر المثيل الخاص بك، يدويًا أو من خلال Docker. كلاهما بسيط نسبيًا، وفيما يلي سنقوم بالنشر يدويًا، ويكفي بضعة أوامر فقط في الجهاز.
# استنساخ نسخة repositorygit https://github.com/codewithrodi/CodexDrake/# الوصول إلى المجلد الذي تم إنشاؤهcd CodexDrake# تهيئة إعداد الخادم والعميل باستخدام ملف "Setup.py" الذي سيتم شرحه لاحقًاpython3 Setup.py# الآن يجب عليك انتظر حتى يقوم "Setup.py" بعمله، وحاول قبول كل ما يقترحه. # Start Web UIcd Client && npm run dev# Start يبدأ تشغيل Backend Servercd Server && npm
# استنساخ نسخة repositorygit https://github.com/codewithrodi/CodexDrake/# الوصول إلى المجلد الذي تم إنشاؤهcd CodexDrake# تشغيل dockerdocker compose up -d
ملفات البيئة ".env" ليس لها الكثير من العلم وراءها، داخل مجلد "Server/" يوجد ملف ".env" الذي يحتوي على التعريفات المستخدمة عند تنفيذه، بعضها مثل شهادات SSL أو العنوان في شبكة الخادم تم الإعلان عنهم هناك. سأركز في هذا القسم على توضيح ما يهمك حقًا، وهو ربط تطبيق العميل بالخادم. يعد ملف بيئة الخادم وصفيًا تمامًا من حيث التسميات المتغيرة، بالإضافة إلى وجود تعليقات، على الرغم من أنه لا ينبغي اعتبار أي شيء أمرًا مسلمًا به، ليست هناك حاجة لشرح هذا الملف لك، ستفهمه بنفسك.
داخل المجلد "Client/"، حيث يوجد تطبيق Vite + React، يوجد ملف يسمى ".env"، حيث يجب عليك الانتباه إلى المتغير "VITE_CDRAKE_SERVER_ENDPOINT" الذي يجب أن تكون قيمته هي نقطة النهاية للخادم الخلفي لجهازك على سبيل المثال، هذا هو http://0.0.0.0:8000 بشكل افتراضي، ولكن يمكن أن يكون على سبيل المثال http://backend.mycodexdrakeinstance.com.
# <Client/.env> VITE_CDRAKE_REPOSITORY = https://github.com/codewithrodi/CodexDrake/VITE_CDRAKE_VERSION = الإصدار الثابت v1.0.3VITE_CDRAKE_SERVER_ENDPOINT = http://0.0.0.0:8000/api/v1
فكر في إضافة /api/v1 إلى نقطة النهاية الخاصة بك.
يوجد داخل المجلد الذي تم إنشاؤه عند استنساخ المستودع ملف يسمى "Setup.py"، والذي يسمح لك بتنفيذ عدة تعليمات ستوفر عليك القليل من الوقت، ثم سيتم شرح الوسائط التي يمكن أن يستقبلها هذا الملف لك.
# داخل المجلد الذي تم إنشاؤه عند استنساخ المستودع.# (( /CodexDrake/ )# تثبيت "node_modules" تلقائيًا لتطبيقات الخادم والعميل.python3 Setup.py# إزالة "node_modules" لتطبيق العميل والخادم.python3 Setup .pyDeleteModules# قم بإزالة "node_modules" فقط من تطبيق العميل.python3 Setup.pyDeleteClientModules# قم بإزالة فقط "node_modules" من تطبيق الخادم.python3 Setup.pyDeleteServerModules# إزالة كافة التعليمات البرمجية المصدر من تطبيق الخادم.python3 Setup.pyDeleteServerSource# إزالة كافة التعليمات البرمجية المصدر من تطبيق العميل.python3 Setup.pyDeleteClientSource
ترخيص MIT (ترخيص معهد ماساتشوستس للتكنولوجيا) هو ترخيص برمجيات مفتوحة المصدر متساهل. فهو يسمح للمطورين باستخدام البرنامج وتعديله وتوزيعه وترخيصه من الباطن دون قيود مادية. يتميز ترخيص MIT ببساطته ولا يفرض الكثير من القيود القانونية على المستخدمين.
اكسر البرنامج وتعلم منه، واستخرج أجزاء منه وقم ببناء أشياء أفضل. حظ سعيد!
موقع إلكتروني
الآلية الوقائية الوطنية
كودبن
جيثب