واجهة برمجة التطبيقات ( الواجهة الخلفية ) غير الرسمية لبرامج تعقب التورنت RuTracker وKinozal وRuTor وNoNameClub. يستخدم للبحث السريع والمركزي عن التوزيع، وتلقي ملفات التورنت، والروابط المغناطيسية والمعلومات التفصيلية حول التوزيع حسب عنوان الفيلم أو المسلسل أو معرف التوزيع، كما يوفر أيضًا موجز RSS للأخبار لجميع مقدمي الخدمة مع التصفية حسب الفئات.
يمكنك استخدام الإصدار العام والمجاني المنشور على Vercel بالإضافة إلى نشره بنفسك على أي نظام أساسي سحابي باستخدام Docker بدون خادم أو محلي.
مواصفات OpenAPI متاحة على موقع Swagger Hub الرسمي.
تم إصداره بموجب ترخيص MIT.
لا تحتاج إلى استخدام VPN عند استخدام الإصدار العام، حيث أن هذه الخدمة تقع في دور البوابة، مما يسمح لك بدمج API
في أي مشروع دون قيود الشبكة وكذلك استخدام موجز الأخبار على الأجهزة المحمولة، على سبيل المثال من خلال ReadYou أو المغذية. لا يلزم وجود رمز وصول وتفويض في أجهزة التتبع حتى تعمل واجهة برمجة التطبيقات.
المشروع مستوحى من Torrent-Api-py (المعروف سابقًا باسم Torrents-Api) لموفري خدمات التورنت الناطقين باللغة الروسية.
XML
، بالإضافة إلى JSON
.يتوفر تنفيذ واجهة مستخدم بسيطة (مثل Jackett) من خلال ملحق Google Chrome؟ Libre Kinopoisk للبحث في الوقت نفسه عن التوزيعات في جميع أدوات تعقب التورنت المتاحة وتنزيل المحتوى عبر روابط مغناطيسية أو ملفات تورنت مباشرة من أجهزة التتبع.
البرنامج المساعد Torrent Search للبحث السريع عن التوزيعات في جميع متتبعات التورنت المتاحة من خلال واجهة Wox، المتوفرة للتثبيت من مستودع المكونات الإضافية.
اسم المزود | مرايا | تسجيل | تصفية للبحث و RSS | البحث عن طريق الهوية | آر إس إس |
---|---|---|---|---|---|
RuTracker | 3 | نعم* | فئة | نعم | محلي |
كينوزال | 3 | نعم* | الفئة، سنة الإصدار، الشكل | نعم | مخصص |
RuTor | 2 | لا | فئة | نعم | مخصص |
NoNameClub | 1 | لا | فئة | نعم | محلي |
* التسجيل مطلوب فقط عند تنزيل ملف تورنت عبر رابط مباشر. تحتوي جميع التوزيعات عند البحث عن طريق المعرف (المعرف) على مجموع تجزئة المعلومات ورابط المغناطيس (تحتوي بالفعل على القائمة الحالية لخوادم تعقب التورنت)، مما يسمح بالبدء فورًا في تحميل توزيع المحتوى أو إنشاء ملف تورنت بعد تنزيل البيانات الوصفية باستخدام أي عميل تورنت، على سبيل المثال qBittorrent (يدعم RSS والمكونات الإضافية للبحث)، أو الإرسال أو Webtorrent Desktop.
يتم الوصول إلى خلاصات RSS لـ RuTracker و NoNameClub عن طريق إعادة توجيه القناة الأصلية. بالنسبة لمقدمي خدمة Kinozal و RuTor ، تم تنفيذ موجز إخباري من الصفحة الرئيسية يدعم التصفية حسب الفئات.
يمكنك نشر واجهة برمجة التطبيقات العامة الخاصة بك إلى Vercel من هذا المستودع، فقط انقر فوق الزر أدناه واتبع التعليمات:
يستخدم المشروع إجراءات GitHub لإنشاء حاوية Docker واختبار وظائف جميع نقاط النهاية تلقائيًا.
قم بتحميل الصورة وتشغيل الحاوية من Docker Hub:
docker run -d --name TorAPI -p 8443:8443 --restart=unless-stopped lifailon/torapi:latest
إذا كنت تستخدم خادمًا وكيلاً:
docker run -d --name TorAPI -p 8443:8443 --restart=unless-stopped
-e PROXY_ADDRESS= " 192.168.3.100 "
-e PROXY_PORT= " 9090 "
-e USERNAME= " TorAPI "
-e PASSWORD= " TorAPI "
lifailon/torapi:latest
استبدل محتويات المتغيرات الخاصة بالاتصال بالخادم الوكيل بمتغيراتك الخاصة. إذا كنت لا تستخدم التفويض على الخادم الوكيل، فما عليك سوى عدم تحديد هذه المعلمات عند بدء الحاوية.
يمكنك تنزيل ملف docker-compose واستخدامه لإنشاء الحاوية من Docker Hub:
curl -sO https://raw.githubusercontent.com/Lifailon/TorAPI/main/docker-compose.yml
curl -sO https://raw.githubusercontent.com/Lifailon/TorAPI/main/.env.yml
قم بتحرير متغيرات البيئة في ملف .env (مطلوب في حالة استخدام خادم وكيل) وابدأ الحاوية:
docker-compose up -d
يمكنك حفظ صورة تم تنزيلها من Docker Hub لنقلها إلى جهاز لا يتمتع بإمكانية الوصول إلى Docker Hub:
docker save -o TorAPI-Docker-Image.tar lifailon/torapi
في ملفات الإصدار، يمكنك تنزيل الصورة المعدة وتشغيلها على جهازك:
docker load -i TorAPI-Docker-Image.tar
قم بتشغيل الحاوية من الصورة المحلية التي تم تنزيلها:
docker run -d --name TorAPI -p 8443:8443 --restart=unless-stopped lifailon/torapi:latest
يمكنك إنشاء الصورة بنفسك من الملفات المصدر للمشروع باستخدام ملف dockerfile.
استنساخ هذا المستودع:
git clone https://github.com/Lifailon/TorAPI
cd TorAPI
قم بتحرير المتغيرات أو الإعدادات الأخرى في dockerfile
إذا لزم الأمر:
ENV PROXY_ADDRESS= " 192.168.3.100 "
ENV PROXY_PORT= " 9090 "
ENV USERNAME= " TorAPI "
ENV PASSWORD= " TorAPI "
قم ببناء الصورة وتشغيل الحاوية:
docker build -t torapi .
docker run -d --name TorAPI -p 8443:8443 --restart=unless-stopped torapi
لتثبيت المشروع وجميع التبعيات، يمكنك استخدام مدير الحزم npm:
npm install -g torapi
قم باستنساخ المستودع وتثبيت التبعيات وبدء تشغيل الخادم:
git clone https://github.com/Lifailon/TorAPI
cd TorAPI
npm install
npm start
افتراضيًا، سيتم تشغيل الخادم على المنفذ 8443
.
يمكنك تحديد منفذ مختلف:
npm start -- -- port 2024
للتطوير، استخدم وضع Nodemon (إعادة تشغيل الخادم عند تغيير محتويات الملفات):
npm run dev
استخدم وكيلاً لجميع الطلبات:
npm start -- -- port 2024 -- proxyAddress 192.168 .3 .100 -- proxyPort 9090
إذا كان التفويض على خادم وكيل مطلوبًا:
npm start -- -- port 2024 -- proxyAddress 192.168 .3 .100 -- proxyPort 9090 -- username TorAPI -- password TorAPI
الوثائق متاحة في Swagger UI على: http://localhost:8443/docs
عبر الوحدة النمطية swagger-ui-express. يتم وصف الوثائق من خلال مكتبة swagger-jsdoc.
لإنشاء ملفات وثائق Swagger محدثة أو محدثة بتنسيق JSON
و YAML
، استخدم الأمر:
npm run docs
يمكنك إجراء الاختبار للتحقق سريعًا من صحة جميع نقاط النهاية في وحدة التحكم:
npm start -- --test
أثناء الاختبار، يتم تشغيل الخادم المحلي، ويتم تقديم طلب إلى نقطة النهاية /api/provider/test
، ويتم تسجيل الإخراج بتنسيق JSON ويخرج الخادم.
تغيير معلمة الرأس في الطلب:
npm start -- --test --q " The Rookie "
تتوفر أيضًا اختبارات ذات معلمات من خلال GitHub Actions باستخدام Postman عبر newman بتنسيق JUnit
:
لإجراء الاختبارات محليًا:
npm install -g newman
newman run postman-tests.json
--iteration-count 1
--env-var " baseUrl=http://localhost:8443 "
--env-var " query=The Rookie "
--env-var " queryAllPage=test "
--env-var " categoryRuTracker=1605 "
--env-var " categoryKinozal=20 "
--env-var " categoryRuTor=10 "
--env-var " categoryNoNameClub=1318 "
...
┌─────────────────────────┬────────────────────┬───────────────────┐
│ │ executed │ failed │
├─────────────────────────┼────────────────────┼───────────────────┤
│ iterations │ 1 │ 0 │
├─────────────────────────┼────────────────────┼───────────────────┤
│ requests │ 45 │ 0 │
├─────────────────────────┼────────────────────┼───────────────────┤
│ test-scripts │ 167 │ 0 │
├─────────────────────────┼────────────────────┼───────────────────┤
│ prerequest-scripts │ 154 │ 0 │
├─────────────────────────┼────────────────────┼───────────────────┤
│ assertions │ 169 │ 0 │
├─────────────────────────┴────────────────────┴───────────────────┤
│ total run duration: 32s │
├──────────────────────────────────────────────────────────────────┤
│ total data received: 1.95MB (approx) │
├──────────────────────────────────────────────────────────────────┤
│ average response time: 663ms [min: 2ms, max: 6.1s, s.d.: 1216ms] │
└──────────────────────────────────────────────────────────────────┘
؟ LibreKinopoisk - ملحق Google Chrome الذي يضيف أزرارًا إلى موقع Kinopoisk ويوفر واجهة TorAPI بأسلوب Jackett (دون الحاجة إلى تثبيت جزء خادم واستخدام VPN) للبحث السريع عن الأفلام والمسلسلات في المصادر المفتوحة.
؟ Kinozal bot - روبوت Telegram الذي يسمح لك بأتمتة عملية توصيل المحتوى إلى التلفزيون الخاص بك باستخدام هاتفك فقط. يوفر واجهة ملائمة للتفاعل مع متتبع التورنت Kinozal وقاعدة البيانات TMDB لتتبع تاريخ إصدار الحلقات والمواسم والبحث عن الممثلين لكل حلقة، بالإضافة إلى إمكانية إدارة عميل التورنت qBittorrent أو الإرسال على جهاز الكمبيوتر الخاص بك، كونه بعيد عن المنزل ومن واجهة واحدة.
❤️ WebTorrent Desktop api - شوكة من عميل WebTorrent Desktop، والتي أضافت آلية التحكم عن بعد عبر REST API
استنادًا إلى Express Framework.
؟ Reverse Proxy .NET - أداة مساعدة لسطر الأوامر عبر الأنظمة الأساسية لتنفيذ خادم وكيل عكسي قائم على .NET . يتم استخدامه لتوفير الوصول إلى المضيفين على الشبكة من واجهة شبكة واحدة إلى التطبيقات البعيدة عبر بروتوكولات TCP أو UDP أو HTTP/HTTPS (يتم دعم طلبات GET
و POST
للوصول إلى الموارد الخارجية عبر الإنترنت) المتاحة عبر واجهة شبكة أخرى (على سبيل المثال عبر VPN ) على مضيفك دون تكوين غير ضروري ومع دعم الترخيص.