راستش من تو نسخه ی قبلی (تحت بش) بهش فکر کردم و یک کارهایی هم کردم ولی وسطش ولش کردم.
من از سیستم های رایج پلاگین نویسی چیزی نمی دونم.
ایده ای که اون زمان برای بش داشتم این بود:
اول اینکه فعالیت هر نرم افزاری رو می شه به چند مرحله اساسی تقسیم کرد که هرکدوم از این مراحل باتوجه به کد برنامه به قسمت های کوچکتری تقسیم می شه. که برای پرسپولیس می شه مرحله ی آماده سازی - مرحله پیش از دانلود - مرحله دانلود و مرحله پس از دانلود.
دوم اینکه هر مرحله توسط دسته ای از متغیر ها کنترل می شه.
خب چیزی که توی ذهنم بود این بود که ما یک فایل درست کنیم که ساختارش به صورت زیر باشه:
هر خط مربوط به یک پلاگین باشه. و هر خطی که با # شروع بشه رو نادیده بگیره - این راهی برای غیر فعال کردن پلاگین هست.
هر خط چند قسمت داره و اولین قسمت مسیر پلاگین (یک فایل اجرایی) رو مشخص می کنه
دومین قسمت و قسمت های بعدی از دو جزء تشکیل می شوند یکی مرحله(مثلا ۱.۲ - یعنی مرحله اصلی ۱ و زیرمرحله ۲) و دیگری لیست متغیرهای مورد نیاز پلاگین.
خب برنامه زمانی که اجرا می شه همه ی متغیرهای هر مرحله رو با مقادیر پیش فرض پر می کنه بعد اون فایل (بالا) رو چک می کنه و پلاگین مربوط به اون مرحله رو با متغیرهای مورد نیازش رو فراخوانی می کنه (با دستور source) و پلاگین هم متغیرها رو دستکاری می کنه.
موضوع/اشکال مهم توی این روش این هست که باید به صورت افراطی از متغیرها استفاده کنیم تا قدرت پلاگین ها محدود نشه. توی اون نسخه قدیمی من داشتم برنامه رو دوباره بازنویسی می کردم که تقریبا هرچیزی رو متغیر کنم. که خب راستش حوصله ام سر رفت ولش کردم. الان هم که کلا پایتون نمی دونم
پلاگین هایی که من دوست دارم اینها هستند: دانلود کل یک صفحه وب(مثل .war) - عوض کردن دانلود منجر (axel) - اجرا کردن یک اسکریپت پس از دانلود - ارسال روند کار به تلگرام - بایند شدن و کنترل برنامه توسط tor و i2p - حذف tracker های udp و یکسری چیزهای دیگه.