एक्सटेंशन:दुरुपयोग फ़िल्टर

This page is a translated version of the page Extension:AbuseFilter and the translation is 100% complete.
यह एक्सटेंशन मीडियाविकि 1.38 और अधिक के साथ उपलब्ध होता है। यानी कि आपको इसे दोबारा डाउनलोड करने की ज़रूरत नहीं। हालाँकि, आपको दूसरी विधियों का पालन करना होगा।
मीडियाविकि एक्सटेंशन मैन्युअल
OOjs UI icon advanced-invert.svg
AbuseFilter
प्रकाशन की स्थिति: स्थिर
AbuseFilter-Management.png
कार्यान्वयन सदस्य की गतिविधि , विशेष पृष्ठ , API
विवरण विकि की गतिविधि पर कार्य के आधार पर सीमाएँ जोड़ सकता है
लेखक
संगतता नीति मीडियाविकि के साथ प्रकाशित स्नैपशॉट्स। Master में पीछे की तरफ से संगतता नहीं है।
MediaWiki >= 1.38.0
डेटाबेस बदलता है हाँ
Composer mediawiki/abuse-filter
टेबल abuse_filter
abuse_filter_action
abuse_filter_history
abuse_filter_log
लाइसेंस GNU साधारण सार्वजनिक लाइसेंस 2.0 या अधिक
डाउनलोड करें
  • $wgAbuseFilterConditionLimit
  • $wgAbuseFilterRangeBlockSize
  • $wgAbuseFilterAnonBlockDuration
  • $wgAbuseFilterLogIPMaxAge
  • $wgAbuseFilterCentralDB
  • $wgAbuseFilterDefaultWarningMessage
  • $wgAbuseFilterEmergencyDisableAge
  • $wgAbuseFilterActionRestrictions
  • $wgAbuseFilterActions
  • $wgAbuseFilterLogIP
  • $wgAbuseFilterPrivateDetailsForceReason
  • $wgAbuseFilterEmergencyDisableCount
  • $wgAbuseFilterLogPrivateDetailsAccess
  • $wgAbuseFilterSlowFilterRuntimeLimit
  • $wgAbuseFilterEmergencyDisableThreshold
  • $wgAbuseFilterLocallyDisabledGlobalActions
  • $wgAbuseFilterBlockDuration
  • $wgAbuseFilterDefaultDisallowMessage
  • $wgAbuseFilterValidGroups
  • $wgAbuseFilterNotificationsPrivate
  • $wgAbuseFilterBlockAutopromoteDuration
  • $wgAbuseFilterIsCentral
  • $wgAbuseFilterNotifications
Quarterly downloads 158 (Ranked 65th)
Public wikis using 3,252 (Ranked 29th)
AbuseFilter एक्सटेंशन को अनुवादित करें अगर यह translatewiki.net पर उपलब्ध है
मुद्दे अधूरे कार्य · बग की रिपोर्ट करें
Coolest Tool Award 2020 square logo.svg

AbuseFilter

2020 Coolest Tool
Award Winner

in the category
Quality


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

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

स्थापना

  • फाइलों को डाउनलोड करें और अपने extensions/ फोल्डर के AbuseFilter नामक डिरेक्ट्री में डालें।
  • सिर्फ गिट से डाउनलोड करते समय एक्सटेंशन डिरेक्ट्री से composer install --no-dev प्रकाशित करके PHP निर्भरताएँ स्थापित करने के लिए Composer चलाएँ। (संभावित जटिलताओं के लिए टास्क T173141 देखें।)
  • अपने LocalSettings.php फ़ाइल के नीचे निम्नलिखित कोड जोड़ें:
    wfLoadExtension( 'AbuseFilter' );
    
  • अद्यतन स्क्रिप्ट चलाएँ जो स्वचालित रूप से आवश्यक डेटाबेस टेबल्स का निर्माण करेगा जिसकी इस एक्सटेंशन को आवश्यकता है।
  • आवश्यकतानुसार कॉन्फ़िगर करें।
  •   पूर्ण – अपने विकि पर Special:Version पर जाकर देखें कि एक्सटेंशन को सफलतापूर्वक स्थापित किया गया है कि नहीं।


गिट से स्थापित करते समय, कृपया याद रखें कि इस एक्सटेंशन को Composer की ज़रूरत है।

तो गिट से स्थापित करने के बाद एक्सटेंशन वाली डिरेक्ट्री को बदलें, जैसे "../extensions/AbuseFilter/", और composer install --no-dev चलाएँ, या फिर अपडेट करते समय composer update --no-dev

वैकल्पिक रूप से, अपने विकि की मूल डिरेक्ट्री के "composer.local.json" फ़ाइल पर "extensions/AbuseFilter/composer.json" पंक्ति जोड़ें, जैसे:

{
	"extra": {
		"merge-plugin": {
			"include": [
				"extensions/AbuseFilter/composer.json"
			]
		}
	}
}

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

सदस्य अधिकार

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

अधिकार विवरण Notes User groups that have this right by default
abusefilter-modify दुरुपयोग फ़िल्टर बनाएँ अथवा संशोधित करें Requires the abusefilter-view right sysop
abusefilter-view दुरुपयोग फ़िल्टर देखें *
abusefilter-log दुरुपयोग लॉग देखें *
abusefilter-log-detail दुरुपयोग लॉग की प्रविष्टियाँ विस्तार में देखें Requires the abusefilter-log right sysop
abusefilter-privatedetails दुरुपयोग लॉग में निजी डेटा देखें Prior to 1.34 this right was named abusefilter-private - Requires the abusefilter-log-detail right
abusefilter-modify-restricted दुरुपयोग फ़िल्टर को प्रतिबन्धित कार्यों सहित सम्पादित करें Requires the abusefilter-modify right sysop
abusefilter-modify-global वैश्विक दुरुपयोग फ़िल्टर बनाएँ अथवा संशोधित करें Requires the abusefilter-view right
abusefilter-revert किसी एक दिए गए दुरुपयोग फ़िल्टर द्वारा किये सभी परिवर्तनों को वापिस लें sysop
abusefilter-view-private वो दुरुपयोग फ़िल्टर देखें जिन्हें निजी चिन्हित किया गया है Requires the abusefilter-view right (not needed if the group already has the abusefilter-modify right) sysop
abusefilter-log-private निजी फ़िल्टरों की लॉग प्रविष्टियाँ देखें Requires the abusefilter-log right (not needed if the group already has the abusefilter-modify or abusefilter-view-private rights) sysop
abusefilter-hide-log दुरुपयोग लॉग में प्रविष्टियाँ छिपाएँ Requires the abusefilter-log right suppress
abusefilter-hidden-log छुपी हुई दुरुपयोग लॉग प्रविष्टियाँ देखें Requires the abusefilter-log right suppress
abusefilter-privatedetails-log View the AbuseFilter private details access log Prior to 1.34 this right was named abusefilter-private-log

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

$wgGroupPermissions['sysop']['abusefilter-modify'] = true;
$wgGroupPermissions['*']['abusefilter-log-detail'] = true;
$wgGroupPermissions['*']['abusefilter-view'] = true;
$wgGroupPermissions['*']['abusefilter-log'] = true;
$wgGroupPermissions['sysop']['abusefilter-privatedetails'] = true;
$wgGroupPermissions['sysop']['abusefilter-modify-restricted'] = true;
$wgGroupPermissions['sysop']['abusefilter-revert'] = true;
व्यक्तिगत चिह्नित किए गए फ़िल्टरों को या तो abusefilter-modify या फिर abusefilter-view-private अधिकार वाले सदस्य देख सकते हैं।

पैरामीटर

वेरिएबल का नाम डिफ़ॉल्ट वैल्यू विवरण
$wgAbuseFilterActions
[
    'throttle' => true,
    'warn' => true,
    'disallow' => true,
    'blockautopromote' => true,
    'block' => true,
    'rangeblock' => false,
    'degroup' => false,
    'tag' => true
]
दुरुपयोग फिल्टरों द्वारा संभव प्रतिक्रियाएँ। नई प्रतिक्रिया जोड़ते समय जाँचें कि क्या यह $wgAbuseFilterActionRestrictions पर अवरोधित है कि नहीं, और अगर यह अवरोधित है, उचित सदस्य समूहों पर abusefilter-modify-restricted अधिकार जोड़ना न भूलें।
$wgAbuseFilterConditionLimit
1000
एक बार बदलाव के अवरोध से मेल खाने पर उपयुक्त 'शर्तों' की अधिकतम संख्या। (अधिक कठिन फ़िल्टरों में अधिक 'शर्तों' का इस्तेमाल होगा)।
$wgAbuseFilterValidGroups
[
    'default'
]
"समूह" फिल्टरों की सूची को दो हिस्सों में बाँटा जा सकता है। डिफ़ॉल्ट से सिर्फ एक समूह होता है। दूसरे एक्सटेंशन दूसरे समूह जोड़ सकते हैं।
$wgAbuseFilterEmergencyDisableThreshold
[
    'default' => 0.05
]
अगर फ़िल्टर की "जाँचित" अवधि (आम तौर पर एक दिन) में 2 संपादनों से ज़्यादा अवरोधित किया जाता है, जो कि कुल प्रतिक्रियाओं का 5 प्रतिशत है, तो फ़िल्टर को सक्षम करें, अगर इसे आखिरी 86400 सेकंड (एक दिन) में बदला नहीं गया है तो। आपातकालीन थ्रॉटलिंग देखें।
$wgAbuseFilterEmergencyDisableCount
[
    'default' => 2
]
$wgAbuseFilterEmergencyDisableAge
[
    'default' => 86400
]
$wgAbuseFilterParserClass
'AbuseFilterParser'
AbuseFilter के पार्सर क्लास का नाम।
$wgAbuseFilterActionRestrictions
[
	"throttle" => false,
	"warn" => false,
	"disallow" => false,
	"blockautopromote" => true,
	"block" => true,
	"rangeblock" => true,
	"degroup" => true,
	"tag" => false
]
इन प्रतिक्रियाओं को करने वाले फ़िल्टरों को बदलने के लिए सदस्यों के पास "abusefilter-modify-restricted" और "abusefilter-modify", दोनों सदस्य अधिकार होने होंगे।
$wgAbuseFilterNotifications
false
इससे एक्सटेंशन को इस तरह से कॉन्फ़िगर किया जा सकता है कि यह हिट सूचनाएँ Special:RecentChanges या UDP पर भेजे। उपलब्ध विकल्प: rc, udp, rcandudp
$wgAbuseFilterNotificationsPrivate
false
व्यक्तिगत फ़िल्टरों के लिए सूचनाएँ सक्षम करें।
$wgAbuseFilterCentralDB
null
एक डेटाबेस का नाम जहाँ ग्लोबल दुरुपयोग फिल्टरों को संग्रहीत किया जाएगा (सिर्फ नवीनतम, विकास संस्करण में समर्थित)। CentralAuth की ज़रूरत है, वरना ग्लोबल फ़िल्टर विकि फ़ार्म पर टूट जाएँगे।
$wgAbuseFilterIsCentral
false
इस वेरिएबल को उन विकियों पर true पर सेट करें जहाँ ग्लोबल AbuseFilter रखे जाते हैं (सिर्फ नवीनतम, विकास संस्करण में समर्थित)। CentralAuth की ज़रूरत है, वरना ग्लोबल फ़िल्टर विकि फ़ार्म पर टूट जाएँगे।
$wgAbuseFilterLocallyDisabledGlobalActions
[
	"throttle" => false,
	"warn" => false,
	"disallow" => false,
	"blockautopromote" => false,
	"block" => false,
	"rangeblock" => false,
	"degroup" => false,
	"tag" => false
]
केंद्रित फ़िल्टरों को इस वेरिएबल में true पर सेट किए गए कार्यों को अवरोधित करने से रोकें।
$wgAbuseFilterBlockDuration
'indefinite'
AbuseFilter द्वारा किए गए अवरोधों की अवधि।
1.31.0-wmf.25 तक अवरोधों की अवधियाँ हर दुरुपयोग फ़िल्टर के लिए निर्धारित की जा सकती हैं, और इस वेरिएबल को ओवर्राइड कर दिया जाएगा। इस वेरिएबल का उपयोग केवल तब किया जाता है जब किसी डिफ़ॉल्ट अवधि को हटाने के लिए अवरोध को सक्षम किया जाता है।
$wgAbuseFilterAnonBlockDuration
null
AbuseFilter द्वारा लॉग-इन न किए हुए सदस्यों को दिए गए अवरोधों की सूची। अगर इसे सेट नहीं किया जाता है, $wgAbuseFilterBlockDuration के वैल्यू का इस्तेमाल किया जाएगा।
1.31.0-wmf.25 तक अवरोधों की अवधियाँ हर दुरुपयोग फ़िल्टर के लिए निर्धारित की जा सकती हैं, और इस वेरिएबल को ओवर्राइड कर दिया जाएगा। इस वेरिएबल का उपयोग केवल तब किया जाता है जब किसी डिफ़ॉल्ट अवधि को हटाने के लिए अवरोध को सक्षम किया जाता है।
$wgAbuseFilterBlockAutopromoteDuration
5
दिनों के नाप पर अवधि जिसके अंदर सदस्यों को स्वचालित रूप से पदोन्नत किए जाने से फ़िल्टर रोकेगा।
$wgAbuseFilterCustomActionsHandlers
[]
अनुकूलित कार्यों के लिए कॉलबैक फ़ंक्शन। (deprecated in 1.36) इसके बजाय AbuseFilterCustomActions हुक का इस्तेमाल करें।
$wgAbuseFilterDefaultWarningMessage
[
    'default' => 'abusefilter-warning'
]
प्रति फ़िल्टर समूह के अनुसार डिफ़ॉल्ट चेतावनी संदेश
$wgAbuseFilterDefaultDisallowMessage
[
    'default' => 'abusefilter-disallowed'
]
प्रति फ़िल्टर समूह के अनुसार डिफ़ॉल्ट इनकार संदेश
$wgAbuseFilterLogIPMaxAge
3 * 30 * 24 * 3600
पुराने IP लॉग डेटा को साफ़ करते समय सबसे नए पते की उम्र। डिफ़ॉल्ट से 3 महीने पर होता है। इसका इस्तेमाल अनुरक्षण स्क्रिप्ट purgeOldLogIPData.php करता है।
$wgAbuseFilterProfileActionsCap
10000
क्रिया की संख्या जो निर्धारित करता है कि प्रोफ़ाइलिंग सांख्यिकी को कब रीसेट किया जाएगा।
$wgAbuseFilterLogPrivateDetailsAccess
false
क्या फ़िल्टर लॉग की एंट्री से निजी जानकारी देखने की क्रिया को लॉग किया जाता है या नहीं।
$wgAbuseFilterPrivateDetailsForceReason
false
क्या फ़िल्टर लॉग की एंट्री से निजी जानकारी देखने के लिए सदस्यों को एक कारण देने की ज़रूरत है या नहीं।
$wgAbuseFilterSlowFilterRuntimeLimit
500
फ़िल्टर के धीमे माने जाने के लिए मिलिसेकंड के नाप पर रनटाइम।
$wgAbuseFilterRangeBlockSize
[
    'IPv4' => '16',
    'IPv6' => '19',
]
'rangeblock' कार्य द्वारा अवरोधित रेंज का आकार।
$wgAbuseFilterLogIP
true
abuse_filter_log में IP दर्ज करना है कि नहीं

आपातकालीन थ्रॉटलिंग

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

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

फ़िल्टर को अवरोधित करने के लिए शर्तें इन वेरिएबलों पर निर्भर हैं:

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

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

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

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

फ़िल्टर बनाना और प्रबंधित करना

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

API

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

list = abusefilters

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

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

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

उदाहरण

गैर-व्यक्तिगत दुरुपयोग फ़िल्टरों को सूचीबद्ध करें

Result
{
    "batchcomplete": "",
    "continue": {
        "abfstartid": 18,
        "continue": "-||"
    },
    "query": {
        "abusefilters": [
            {
                "id": 1,
                "hits": 41430
            },
            {
                "id": 3,
                "hits": 957485
            },
            {
                "id": 5,
                "hits": 5931
            },
            {
                "id": 6,
                "hits": 19
            },
            {
                "id": 8,
                "hits": 7
            },
            {
                "id": 9,
                "hits": 41354
            },
            {
                "id": 11,
                "hits": 132971
            },
            {
                "id": 12,
                "hits": 139693
            },
            {
                "id": 14,
                "hits": 63
            },
            {
                "id": 15,
                "hits": 15
            }
        ]
    }
}

list = abuselog

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

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

उन उदाहरणों को सूचीबद्ध करें जहाँ सदस्य "SineBot" के कार्यों की वजह से दुरुपयोग फ़िल्टर ट्रिगर हुआ था

Result
{
    "batchcomplete": "",
    "continue": {
        "aflstart": "2018-03-06T02:34:18Z",
        "continue": "-||"
    },
    "query": {
        "abuselog": [
            {
                "id": 27219261,
                "filter_id": "1073"
            },
            {
                "id": 26938051,
                "filter_id": ""
            },
            {
                "id": 23388942,
                "filter_id": "1"
            },
            {
                "id": 22044912,
                "filter_id": ""
            },
            {
                "id": 22032235,
                "filter_id": ""
            },
            {
                "id": 22032196,
                "filter_id": ""
            },
            {
                "id": 21983882,
                "filter_id": ""
            },
            {
                "id": 20594818,
                "filter_id": "904"
            },
            {
                "id": 20593489,
                "filter_id": "904"
            },
            {
                "id": 20590442,
                "filter_id": "904"
            }
        ]
    }
}

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

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

एक्सटेंशनों के साथ एकीकरण

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

छानने के लिए वेरिएबल्स जोड़ना

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

  • AbuseFilter-builder हुक के लिए एक हैंडलर जोड़ना होगा। वेरिएबल जोड़ने के लिए आपको $builder['vars']['variable_name'] = 'i18n-key'; का इस्तेमाल करना चाहिए, जहाँ variable_name वेरिएबल की कुँजी का नाम है, और i18n-key किसी i18n कुँजी का हिस्सा है। पूरी कुँजी होगी abusefilter-edit-builder-vars-{$your_key}
  • पिछले स्थान पर आपके चुने i18n संदेश जोड़ दें।
  • एक हुक हैंडलर चुनें जहाँ वेरिएबल का हिसाब किया जाएगा। आपके उपयोग के मामले के अनुसार, आप:
    • AbuseFilter-generateTitleVars हुक को लागू कर सकते हैं; इसे विशिष्ट रूप से पृष्ठ-संबंधित वेरिएबलों के लिए बनाया गया है;
    • AbuseFilter-generateUserVars हुक को लागू कर सकते हैं; इसे विशिष्ट रूप से सदस्य-संबंधित वेरिएबलों के लिए बनाया गया है;
    • AbuseFilter-generateGenericVars हुक को लागू कर सकते हैं; इसे उन वेरिएबलों के लिए बनाया गया है जो किसी विशिष्ट पृष्ठ या सदस्य से जुड़े नहीं हैं;
    • AbuseFilterAlterVariables हुक को लागू कर सकते हैं; यह दूसरे हुक्स से ज़रा-सा ज़्यादा लचीला है, मगर इसकी एक कमी है: आपका वेरिएबल RecentChanges एंट्रियों को जाँचते समय उपलब्ध नहीं होगा। अगर आप उस सुविधा को लागू करना चाहते हैं (और ऐसा करना सुझाया जाता है), आपको ऊपर सूचीबद्ध हुक्स में से किसी एक का इस्तेमाल करना चाहिए, और उस सुविधा के तीसरे पैरामीटर ($RCRow) का इस्तेमाल करना चाहिए।
  • हुक के हैंडलर के अंदर वेरिएबल जोड़ने के दो तरीके हैं:
    • "सीधा" तरीका है $vars->setVar( 'var_name', var_value ); को कॉल करना। यह सिर्फ तभी सही है जब वैल्यू का हिसाब करना त्वरित और आसान हो: वैल्यू का हिसाब तब भी किया जाएगा जब कोई सक्रिय फ़िल्टर उसका उपयोग न कर रहा हो।
    • "आलसी" तरीका है $vars->setLazyLoadVar( 'var_name', 'method_name', $params ); को कॉल करना। यहाँ 'method_name' एक (अनूठी) पहचानकर्ता है जिसकी मदद से वेरिएबल का हिसाब किया जाएगा (इससे पहले अपने एक्सटेंशन के नाम को जोड़ने की अनुशंसा दी जाती है)। इस तरीके को पंजीकृत करने के लिए आपको AbuseFilter-computeVariable हुक के लिए एक हैंडलर जोड़ना चाहिए; फिर जाँचें कि $method तरीका आपके 'method_name' से मेल खाता है या नहीं, और अगर खाता है, वेरिएबल का हिसाब लगाएँ। आखिर में, $params पैरामीटर्स का एक ऐरे है जिसकी मदद से आप वैल्यू का हिसाब लगा पाएँगे; इन्हें computeVariable हुक हैंडलर पर पास किया जाता है। इसके एक उदाहरण के लिए आप CentralAuth का global_user_groups देख सकते हैं।

अनुकूलित कार्य जोड़ना

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

  • उदाहरणस्वरूप, MyAction नामक एक क्लास बनाएँ, जो \MediaWiki\Extension\AbuseFilter\Consequence को विस्तृत करेगा, और जो HookAborterConsequence या ConsequencesDisablerConsequence को भी लागू कर पाएगा
  • AbuseFilterCustomActions हुक पर एक सदस्य जोड़ें; सदस्य को हुक के प्रलेख में प्रलेखित विधि से एक कॉलबैक प्रदान करना होगा, जो ऊपर बनाए गए क्लास का एक उदाहरण लौटाता है, उदाहरणस्वरूप:
class MyAction extends \MediaWiki\Extension\AbuseFilter\Consequence {
    public function run() {
        throw new \Exception( 'Write me' );
    }
}
public function onAbuseFilterCustomActions( &$actions ) {
    $actions[] = function ( \MediaWiki\Extension\AbuseFilter\Consequence\Parameters $params, array $rawParams ) : MyConsequence {
        return new MyAction( $params, $rawParams );
    };
}

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

  • 'abusefilter-edit-action-${my_action}'
  • 'abusefilter-action-${my_action}'

नियम समूह जोड़ना

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

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

ये भी देखें