नए प्लगइन मॉड्यूल बनाना

हमारा ढांचा नियम मॉड्यूल को लोड करने के लिए एक शक्तिशाली ऑटो-डिस्कवरी सिस्टम का उपयोग करता है। यह हर नए घटक को मैन्युअल रूप से पंजीकृत करने की आवश्यकता के बिना, कमांड के नए सेट जोड़ना सरल और साफ बनाता है। यह मार्गदर्शिका बताती है कि अपने स्वयं के कस्टम मॉड्यूल कैसे बनाएं, संरचना करें और प्रबंधित करें।

मूल अवधारणा: फ़ोल्डर-आधारित मॉड्यूल

एक मॉड्यूल बस config/maps/ निर्देशिका के भीतर एक फ़ोल्डर है। सिस्टम स्वचालित रूप से इस निर्देशिका को स्कैन करता है और प्रत्येक सबफ़ोल्डर को लोड करने योग्य मॉड्यूल के रूप में मानता है।

मॉड्यूल बनाने के लिए चरण-दर-चरण मार्गदर्शिका

नया मॉड्यूल बनाने के लिए इन चरणों का पालन करें, उदाहरण के लिए, किसी विशिष्ट गेम के लिए मैक्रोज़ को होल्ड करने के लिए।

1. मानचित्र निर्देशिका पर नेविगेट करें सभी नियम मॉड्यूल प्रोजेक्ट के config/maps/ फ़ोल्डर में रहते हैं।

2. अपना मॉड्यूल फ़ोल्डर बनाएं एक नया फ़ोल्डर बनाएँ. नाम वर्णनात्मक होना चाहिए और रिक्त स्थान के बजाय अंडरस्कोर का उपयोग करना चाहिए (उदाहरण के लिए, my_game_macros, custom_home_automation)।

3. भाषा सबफ़ोल्डर जोड़ें (महत्वपूर्ण चरण) अपने नए मॉड्यूल फ़ोल्डर के अंदर, आपको उस प्रत्येक भाषा के लिए सबफ़ोल्डर बनाना होगा जिसका आप समर्थन करना चाहते हैं।

  • नामकरण परंपरा: इन सबफ़ोल्डरों के नाम मान्य भाषा-स्थान कोड होने चाहिए। सक्रिय भाषा के लिए सही नियम लोड करने के लिए सिस्टम इन नामों का उपयोग करता है।

  • सही उदाहरण: डी-डीई, एन-यूएस, एन-जीबी, पीटी-बीआर

  • चेतावनी: यदि आप जर्मन या english_rules जैसे गैर-मानक नाम का उपयोग करते हैं, तो सिस्टम या तो फ़ोल्डर को अनदेखा कर देगा या इसे एक अलग, गैर-भाषा-विशिष्ट मॉड्यूल के रूप में मानेगा।

4. अपनी नियम फ़ाइलें जोड़ें अपनी नियम फ़ाइलें (उदाहरण के लिए, FUZZY_MAP_pre.py) को उपयुक्त भाषा सबफ़ोल्डर के अंदर रखें। शुरू करने का सबसे आसान तरीका टेम्पलेट के रूप में उपयोग करने के लिए मौजूदा भाषा मॉड्यूल फ़ोल्डर की सामग्री की प्रतिलिपि बनाना है।

उदाहरण निर्देशिका संरचना

CODE_ब्लॉक_0

कॉन्फ़िगरेशन में मॉड्यूल प्रबंधित करना

सिस्टम को न्यूनतम कॉन्फ़िगरेशन की आवश्यकता के लिए डिज़ाइन किया गया है।

मॉड्यूल सक्षम करना (डिफ़ॉल्ट)

मॉड्यूल डिफ़ॉल्ट रूप से सक्षम हैं। जब तक एक मॉड्यूल फ़ोल्डर config/maps/ में मौजूद है, सिस्टम इसे ढूंढेगा और इसके नियमों को लोड करेगा। नए मॉड्यूल को सक्षम करने के लिए आपको अपनी सेटिंग्स फ़ाइल में कोई प्रविष्टि जोड़ने की आवश्यकता नहीं है।

मॉड्यूल अक्षम करना

किसी मॉड्यूल को अक्षम करने के लिए, आपको अपनी सेटिंग्स फ़ाइल के भीतर PLUGINS_ENABLED शब्दकोश में इसके लिए एक प्रविष्टि जोड़नी होगी और इसका मान गलत पर सेट करना होगा।

उदाहरण (config/settings.py): CODE_ब्लॉक_1

महत्वपूर्ण डिज़ाइन नोट्स

  • डिफ़ॉल्ट व्यवहार: कोई प्रविष्टि ‘सत्य’ के बराबर नहीं है यदि कोई मॉड्यूल PLUGINS_ENABLED शब्दकोश में सूचीबद्ध नहीं है, तो इसे डिफ़ॉल्ट रूप से सक्रिय माना जाता है। यह डिज़ाइन कॉन्फ़िगरेशन फ़ाइल को साफ़ रखता है, क्योंकि आपको केवल अपवादों को सूचीबद्ध करने की आवश्यकता है।

  • सक्षम करने के लिए आशुलिपि आपका कॉन्फ़िगरेशन सिस्टम यह भी समझता है कि मॉड्यूल कुंजी को बिना मूल्य के सूचीबद्ध करने का अर्थ है कि यह सक्षम है। उदाहरण के लिए, शब्दकोश में "wannweil" जोड़ना "wannweil": True जोड़ने जैसा ही है। यह मॉड्यूल को सक्षम करने के लिए एक सुविधाजनक शॉर्टहैंड प्रदान करता है।

  • पैरेंट मॉड्यूल को अक्षम करना: इच्छित व्यवहार यह है कि पैरेंट मॉड्यूल को अक्षम करना होना चाहिए इसके सभी चाइल्ड मॉड्यूल और भाषा सबफ़ोल्डर स्वचालित रूप से अक्षम हो जाते हैं। उदाहरण के लिए, ``standard_actions’’: Falseसेट करने सेde-DEऔरen-US` दोनों को लोड होने से रोका जाना चाहिए। (27.10.’25 सोम) Xस्पेसब्रेकX

  • लक्ष्य लक्ष्य इस प्रणाली को और अधिक बढ़ाना है। उदाहरण के लिए, माता-पिता के अक्षम होने पर भी चाइल्ड मॉड्यूल सेटिंग्स का सम्मान करने का एक तरीका प्रदान करना, या अधिक जटिल विरासत नियमों को पेश करना। (27.10.’25 सोम)