Extension:AbuseFilter/hi

AbuseFilter (दुरुपयोग फ़िल्टर) एक्सटेंशन की मदद से अधिकारों वाले सदस्य, सदस्यों द्वारा किए गए संपादन जैसे कार्यों के विशिष्ट मानदंडों को पूरा करने पर कुछ प्रतिक्रियाओं को सेट कर सकते हैं।

उदाहरणस्वरूप, अपंजीकृत सदस्यों को बाहरी कड़ियाँ जोड़ने से रोकने के लिए, या फिर 2000 अक्षरों से ज़्यादा जोड़ने वाले सदस्यों को अवरोधित करने के लिए, एक फ़िल्टर जोड़ा जा सकता है।

कॉन्फ़िगरेशन


सदस्य अधिकार
एक्सटेंशन को स्थापित कर लेने के बाद आपको "LocalSettings.php" में सदस्य अधिकार सेट करने होंगे।

उदाहरणस्वरूप, इस उदाहरण कॉन्फ़िगरेशन में सिसॉप्स AbuseFilter के साथ जो चाहे वो कर सकते हैं, और सभी सदस्य लॉग के साथ सार्वजनिक फ़िल्टर सेटिंग्स देख सकते हैं:

पैरामीटर


आपातकालीन थ्रॉटलिंग
AbuseFilter में एक सुविधा है जो अपने आप उन फ़िल्टरों को थ्रॉटल (अक्षम) करता है जिन्हें हाल ही में संपादित किया गया है और जो नवीनतम कार्यों के विशिष्ट मानदंडों से मेल खाते हों।

ऐसा इसलिए किया जाता है ताकि विकि पर किसी कार्य को करने वाले हर सदस्य को अवरोधित करने के लिए बनाए गए फ़िल्टर पर कोई हानिकारक संपादन न की जाए।

फ़िल्टर को अवरोधित करने के लिए शर्तें इन वेरिएबलों पर निर्भर हैं:
 * - जाँचित अवधि में कुल कार्यों की संख्या की तुलना में मेल खाने वाले कार्यों की संख्या।
 * - जाँचित अवधि में फ़िल्टर द्वारा मेल खाए गए कार्य।
 * - थ्रॉटल करने के लिए फ़िल्टर की उम्र। अगर फ़िल्टर पर आखिरी संपादन सेंकड के इस संख्या से ज़्यादा है, फ़िल्टर को थ्रॉटल नहीं किया जाएगा, और इसे पहले से थ्रॉटल न किया गया हो तो।
 * - मानदंड के साथ जाँचने के लिए कार्यों की अधिकतम संख्या। याद रखें कि हर कार्य से एक काउंटर में गिनती की जाती है, और जब काउंटर इस कॉन्फ़िगर किए गए वैल्यू पर पहुँच जाता है, इस काउंटर के साथ हाल ही के मेल खाने वाले सभी कार्यों की संख्या को 0 पर सेट कर दिया जाता है।

थ्रॉटल किए गए फ़िल्टरों को फ़िल्टरों की सूची (Special:AbuseFilter) में से, स्थिति के साथ पहचाना जा सकता है। थ्रॉटलिंग पीठ-पीछे होता है, और यह बताने का कोई तरीका नहीं है कि फ़िल्टर कब थ्रॉटल हो जाता है।

जब किसी फ़िल्टर को थ्रॉटल किया जाता है, इससे कोई ख़तरनाक कार्य नहीं होती (कार्य जो आम तौर पर विशेष अधिकार वाले सदस्य कर सकते हैं, जैसे अवरोध करना, या इसे समूहों से हटाना, जो $wgAbuseFilterActionRestrictions द्वारा नियंत्रित किया जाता है), और सिर्फ "सुरक्षित" कार्यों की अनुमति है (वे जिनसे सदस्य को वर्तमान कार्य के बारे में सूचना भेजी जा सकती है)। थ्रॉटल किए गए फ़िल्टरों को अपने आप दोबारा सक्षम नहीं किया जाता है। थ्रॉटल को अक्षम करने के लिए आपको फ़िल्टर को संपादित करना होगा। ध्यान रखें कि आपको फ़िल्टर पर कोई बदलाव करना होगा: फ़िल्टर के नोट में बदलाव करेंगे तब भी काम हो जाएगा।

ध्यान रखें कि फ़िल्टर को संपादित करने पर इसकी उम्र घट जाती है, यानी कि पिछले संपादन के बाद छोटी अवधि में अगर यह फिर मानदंडों से मेल खाने लगता है तो इसे दोबारा थ्रॉटल कर दिया जाएगा, तो किसी ऐसे विकि पर फ़िल्टर किसी काम का नहीं होगा जिसपर अच्छे संपादनों से ज़्यादा दुरुपयोगी संपादन हैं।



फ़िल्टर बनाना और प्रबंधित करना
एक बार एक्सटेंशन स्थापित हो जाने के बाद, फ़िल्टर बनाए जा सकते हैं/परीक्षित किए जा सकते हैं/बदले जा सकते हैं/हटा दिए जा सकते हैं, और लॉग दुरुपयोग फ़िल्टर प्रबंधन पृष्ठ Special:AbuseFilter पर पाया जा सकता है।


 * नियमों का प्रारूप - फ़िल्टर लिखने के बुनियाद
 * कार्य
 * ग्लोबल नीतियाँ
 * शर्तों के उपयोग को सीमित करने की गाइड
 * विकिपीडिया से फ़िल्टर आयात करने के लिए: जब आपने एक्सटेंशन को स्थापित कर लिया हो, w:Special:AbuseFilter पर जाएँ, एक फ़िल्टर चुनें (जैसे w:Special:AbuseFilter/3), और फिर "इस फ़िल्टर को दूसरे विकि पर निर्यात करें" पर क्लिक करें, टेक्स्ट की प्रतिलिपि बनाएँ, अपने विकि पर "Special:AbuseFilter/import" पर जाएँ, टेक्स्ट को चिपकाएँ।
 * m:Small wiki toolkits/Starter kit/AbuseFilter - छोटे विकि समुदायों के लिए Metawiki पर एक गाइड

API
AbuseFilter दो API सूची मोडल जोड़ता है, एक दुरुपयोग फ़िल्टरों की जानकारी के लिए ("abusefilters") और एक दुरुपयोग लॉग के लिए, क्योंकि यह दूसरे मीडियाविकि लॉग्स से अलग है ("abuselog")। API की मदद से दुरुपयोग फ़िल्टर बनाए या संपादित किए नहीं जा सकते।

list = abusefilters
फ़िल्टरों के बारे में जानकारी सूचीबद्ध करें


 * पैरामीटर:
 * - पहला फ़िल्टर ID
 * - आखिरी फ़िल्टर ID
 * - सूचीबद्ध करने का क्रम (older, newer)
 * - सिर्फ वही फ़िल्टर दिखाएँ जो इन मानदंडों को पूरा करे (enabled|!enabled|deleted|!deleted|private|!private)
 * - सूचीबद्ध करने के लिए फ़िल्टरों की अधिकतम संख्या
 * - प्राप्त करने के लिए गुणधर्म (id|description|pattern|actions|hits|comments|lasteditor|lastedittime|status|private)

जब फ़िल्टर व्यक्तिगत हो,  से निर्धारित कुछ गुणधर्म गायब होंगे अगर आपके पास उचित सदस्य अधिकार न हो तो।


 * उदाहरण:

list = abuselog
उदाहरणों को सूचीबद्ध करें जहाँ कार्यों ने एक दुरुपयोग फ़िल्टर को ट्रिगर किया।


 * पैरामीटर:
 * - सूचीबद्ध करना शुरू करने के लिए टाइमस्टैम्प
 * - सूचीबद्ध करना बंद करने के लिए टाइमस्टैम्प
 * - सूचीबद्ध करने का क्रम (older, newer)
 * - सिर्फ वही एंट्रियाँ दिखाएँ जहाँ कार्य करने का प्रयास किसी विशिष्ट सदस्य या IP पते द्वारा किया गया था।
 * - सिर्फ वही एंट्रियाँ दिखाएँ जहाँ कार्य किसी विशिष्ट पृष्ठ पर हुआ था।
 * - सिर्फ वही एंट्रियाँ दिखाएँ जिन्होंने किसी विशिष्ट फ़िल्टर ID को ट्रिगर किया
 * - सूचीबद्ध करने के लिए एंट्रियों की अधिकतम संख्या
 * - प्राप्त करने के लिए गुणधर्म: (ids|filter|user|ip|title|action|details|result|timestamp|hidden|revid|wiki)


 * उदाहरण:



संभव त्रुटियाँ

 * कुछ सदस्यों को नए फ़िल्टर बनाने या पुराने फ़िल्टर सम्पादित करने में समस्याएँ आ सकती हैं, और सदस्य को मूल पृष्ठ पर अनुप्रेषित कर दिया जाता है। अगर विकि पर SSL प्रमाणपत्रों का इस्तेमाल किया जा रहा है, यह त्रुटि वैल्यू की वजह से हो सकती है, जिसमें शायद "https://" की जगह "http://" का इस्तेमाल किया जा रहा हो। इस त्रुटि का एक संकेत है Special:AbuseFilter पृष्ठों के लिए ब्राउज़र द्वारा https चेतावनी दिखाना। (Topic:T23dyyih0ofjada5)



एक्सटेंशनों के साथ एकीकरण
आप दूसरे एक्सटेंशनों के साथ दुरुपयोग फ़िल्टर को कोई तरीकों से एकीकृत कर सकते हैं।



छानने के लिए वेरिएबल्स जोड़ना
दुरुपयोग फ़िल्टरों पर उपयोग के लिए नए वेरिएबल्स जोड़े जा सकते हैं। उदाहरणों की एक सूची । ऐसा करने के लिए आपको:


 * हुक के लिए एक हैंडलर जोड़ना होगा। वेरिएबल जोड़ने के लिए आपको  का इस्तेमाल करना चाहिए, जहाँ   वेरिएबल की कुँजी का नाम है, और   किसी i18n कुँजी का हिस्सा है। पूरी कुँजी होगी  ।
 * पिछले स्थान पर आपके चुने i18n संदेश जोड़ दें।
 * एक हुक हैंडलर चुनें जहाँ वेरिएबल का हिसाब किया जाएगा। आपके उपयोग के मामले के अनुसार, आप:
 * हुक को लागू कर सकते हैं; इसे विशिष्ट रूप से पृष्ठ-संबंधित वेरिएबलों के लिए बनाया गया है;
 * हुक को लागू कर सकते हैं; इसे विशिष्ट रूप से सदस्य-संबंधित वेरिएबलों के लिए बनाया गया है;
 * हुक को लागू कर सकते हैं; इसे उन वेरिएबलों के लिए बनाया गया है जो किसी विशिष्ट पृष्ठ या सदस्य से जुड़े नहीं हैं;
 * हुक को लागू कर सकते हैं; यह दूसरे हुक्स से ज़रा-सा ज़्यादा लचीला है, मगर इसकी एक कमी है: आपका वेरिएबल RecentChanges एंट्रियों को जाँचते समय उपलब्ध नहीं होगा। अगर आप उस सुविधा को लागू करना चाहते हैं (और ऐसा करना सुझाया जाता है), आपको ऊपर सूचीबद्ध हुक्स में से किसी एक का इस्तेमाल करना चाहिए, और उस सुविधा के तीसरे पैरामीटर का इस्तेमाल करना चाहिए।
 * हुक के हैंडलर के अंदर वेरिएबल जोड़ने के दो तरीके हैं:
 * "सीधा" तरीका है को कॉल करना। यह सिर्फ तभी सही है जब वैल्यू का हिसाब करना त्वरित और आसान हो: वैल्यू का हिसाब तब भी किया जाएगा जब कोई सक्रिय फ़िल्टर उसका उपयोग न कर रहा हो।
 * "आलसी" तरीका है को कॉल करना। यहाँ 'method_name' एक (अनूठी) पहचानकर्ता है जिसकी मदद से वेरिएबल का हिसाब किया जाएगा (इससे पहले अपने एक्सटेंशन के नाम को जोड़ने की अनुशंसा दी जाती है)। इस तरीके को पंजीकृत करने के लिए आपको  हुक के लिए एक हैंडलर जोड़ना चाहिए;  फिर जाँचें कि $method तरीका आपके 'method_name' से मेल खाता है या नहीं, और अगर खाता है, वेरिएबल का हिसाब लगाएँ। आखिर में, $params पैरामीटर्स का एक ऐरे है जिसकी मदद से आप वैल्यू का हिसाब लगा पाएँगे; इन्हें computeVariable हुक हैंडलर पर पास किया जाता है। इसके एक उदाहरण के लिए आप CentralAuth का   देख सकते हैं।



अनुकूलित कार्य जोड़ना
आप अनुकूलित कार्य हैंडलर्स जोड़ सकते हैं, ताकि हर फ़िल्टर अतिरिक्त कार्य करे। ऐसा करने के लिए आपको कार्य के लिए एक नाम चुनना होगा (यहाँ से 'my-action'), और फिर:


 * उदाहरणस्वरूप, MyAction नामक एक क्लास बनाएँ, जो \MediaWiki\Extension\AbuseFilter\Consequence को विस्तृत करेगा, और जो HookAborterConsequence या ConsequencesDisablerConsequence को भी लागू कर पाएगा
 * AbuseFilterCustomActions हुक पर एक सदस्य जोड़ें; सदस्य को हुक के प्रलेख में प्रलेखित विधि से एक कॉलबैक प्रदान करना होगा, जो ऊपर बनाए गए क्लास का एक उदाहरण लौटाता है, उदाहरणस्वरूप:

फिर आपको निम्न i18n संदेश जोड़ने चाहिए; आप 'my_action' को, मान लीजिए, 'block' से बदलकर देख सकते हैं कि संदेश किसलिए हैं:





नियम समूह जोड़ना
आप अतिरिक्त नियम समूह भी जोड़ सकते हैं, जिनकी मदद से मौजूदा दुरुपयोग फ़िल्टरों को समूहीकृत किया जा सकता है। मगर ध्यान रखें कि इस समय एक फ़िल्टर सिर्फ एक ही समूह में हो सकता है (T116642)। वर्तमान में सिर्फ द्वारा ही इस सुविधा का इस्तेमाल किया जाता है। ऐसा करने के लिए आपको:


 * समूह का नाम  के शुरुआत में जोड़ना होगा
 * अपने समूह के साथ फ़िल्टर को चलाने के लिए कुछ कोड जोड़ना होगा। ध्यान रखें कि दुरुपयोग फ़िल्टर यह काम खुद नहीं करेगा। ऐसा करने के लिए आपको एक वस्तु  बनाना होगा, जिसमें आपको अपने समूह का नाम पास करना होगा।



ये भी देखें

 * कई WMF विकियाँ जहाँ पर यह सक्षम है (और किस कॉन्फ़िगरेशन के साथ)