دليل تطوير النصوص البرمجية

لإنشاء نص برمجي مخصص لـ Seer، يجب عليك تعريف البيانات الوصفية وتنفيذ المنطق الوظيفي المقابل.

1. تعريف البيانات الوصفية للنص البرمجي

تقوم Seer بتهيئة النصوص البرمجية بالبحث عن قاموس SCRIPT_INFO أو دالة script_info() داخل النص البرمجي الخاص بك.

الحقول المطلوبة

  • name: اسم العرض للنص البرمجي.
  • type: الفئة الوظيفية:
    • 0: معاينة
    • 1: عناصر تحكم
    • 2: الخصائص
  • extensions: قائمة بامتدادات الملفات (نصوص). استخدم ${type_folder} لمطابقة المجلدات.
  • arguments: قائمة بوسائط CLI (استبعد python.exe واسم ملف النص البرمجي).

مثال على التعريف

SCRIPT_INFO = {
    "name": "unzip",
    "type": 1,
    "extensions": ["zip", "rar", "7z"],
    "arguments": ["-e", "${7z}", "-i", "${input_file}", "-o", __save_path, "-w"],
    # بيانات وصفية اختيارية
    "author": "اسمك",
    "version": "1.0.1",
    "description": "وصف مختصر للنص البرمجي",
    "icon_path": "icon.png", # لنوع عناصر التحكم فقط
}

2. تنفيذ الميزة

  • معاينة (النوع 0): يقوم بتحميل/تحليل ملف الإدخال وتحويله إلى صيغة مدعومة أصلاً بواسطة Seer (مثل PDF، صورة، أو HTML).
  • مثال: تحويل ملف .epub إلى .html.

  • عناصر تحكم (النوع 1): يضيف زرًا إلى الجانب الأيسر من شريط التحكم. النقر عليه ينفذ النص البرمجي المحدد.

  • مثال: ضغط المجلد الذي تتم معاينته حاليًا إلى ملف .zip.

  • الخصائص (النوع 2): تقوم Seer تلقائيًا بتنفيذ النص البرمجي عند تحميل الملف بنجاح. يجب على النص البرمجي كتابة البيانات الوصفية إلى ملف JSON في الموقع المحدد بواسطة ${output_file}. ثم تقرأ Seer هذا المحتوى JSON وتعرضه.

  • مثال: حساب قيمة تجزئة SHA512 لملف.

3. المتغيرات المتاحة

يتم استبدال هذه الرموز ديناميكيًا بواسطة Seer وتمريرها كوسائط لسطر الأوامر:

المتغير الوصف
${7z} المسار المطلق لـ 7z.exe المضمن مع Seer.
${seer_exe} المسار المطلق لـ Seer.exe.
${seer_dir} الدليل الذي يحتوي على Seer.exe.
${input_file} المسار إلى الملف/المجلد المستهدف الذي يتم معاينته حاليًا.
${output_file} المسار إلى ملف الإخراج المؤقت (مطلوب لنصوص الخصائص وبعض نصوص المعاينة).
${no_cache} المعاينة فقط: علامة لتوجيه Seer بحذف الملف المؤقت بعد إغلاق المعاينة (لا يتم تمريره إلى النص البرمجي كوسيطة).
${type_folder} عناصر التحكم فقط: يُستخدم لمطابقة أنواع المجلدات.
${use_backslash} استخدام \ بدلاً من / لفاصلات المسار.

ملاحظة: ${no_cache} هو علامة داخلية لـ Seer ولا يتم تمريره إلى النص البرمجي الخاص بك كوسيطة لسطر الأوامر.