Extension:दुरुपयोग फ़िल्टर
AbuseFilter प्रकाशन की स्थिति: स्थिर |
|
---|---|
कार्यान्वयन | सदस्य की गतिविधि , विशेष पृष्ठ , API |
विवरण | विकि की गतिविधि पर कार्य के आधार पर सीमाएँ जोड़ सकता है |
लेखक |
|
संगतता नीति | मीडियाविकि के साथ प्रकाशित स्नैपशॉट्स। Master में पीछे की तरफ से संगतता नहीं है। |
MediaWiki | >= 1.43.0 |
डेटाबेस बदलता है | हाँ |
Composer | mediawiki/abuse-filter |
टेबल | abuse_filter abuse_filter_action abuse_filter_history abuse_filter_log |
लाइसेंस | GNU साधारण सार्वजनिक लाइसेंस 2.0 या अधिक |
डाउनलोड करें | |
|
|
|
|
|
|
|
|
Quarterly downloads | 139 (Ranked 42nd) |
Public wikis using | 2,939 (Ranked 186th) |
AbuseFilter एक्सटेंशन को अनुवादित करें अगर यह translatewiki.net पर उपलब्ध है | |
मुद्दे | अधूरे कार्य · बग की रिपोर्ट करें |
AbuseFilter (दुरुपयोग फ़िल्टर) एक्सटेंशन की मदद से अधिकारों वाले सदस्य, सदस्यों द्वारा किए गए संपादन जैसे कार्यों के विशिष्ट मानदंडों को पूरा करने पर कुछ प्रतिक्रियाओं को सेट कर सकते हैं।
उदाहरणस्वरूप, अपंजीकृत सदस्यों को बाहरी कड़ियाँ जोड़ने से रोकने के लिए, या फिर 2000 अक्षरों से ज़्यादा जोड़ने वाले सदस्यों को अवरोधित करने के लिए, एक फ़िल्टर जोड़ा जा सकता है।
स्थापना
- फ़ाइलों को डाउनलोड करें और अपने
extensions/
फ़ोल्डर केAbuseFilter
नामक डिरेक्ट्री में डालें।
Developers and code contributors should install the extension from Git instead, using:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/AbuseFilter - सिर्फ गिट से डाउनलोड करते समय एक्सटेंशन डिरेक्ट्री से
composer install --no-dev
प्रकाशित करके PHP निर्भरताएँ स्थापित करने के लिए Composer चलाएँ। (संभावित जटिलताओं के लिए टास्क T173141 देखें।) - अपने LocalSettings.php फ़ाइल के अंत में निम्न कोड जोड़ें:
wfLoadExtension( 'AbuseFilter' );
- अपडेट स्क्रिप्ट चलाएँ जो स्वचालित रूप से आवश्यक डेटाबेस टेबल्स का निर्माण करेगा जिसकी इस एक्सटेंशन को आवश्यकता है।
- आवश्यकतानुसार कॉन्फ़िगर करें।
- पूर्ण – अपने विकि पर Special:Version पर जाकर देखें कि एक्सटेंशन को सफलतापूर्वक स्थापित किया गया है कि नहीं।
तो गिट से स्थापित करने के बाद एक्सटेंशन वाली डिरेक्ट्री को बदलें, जैसे "../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-modify 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-modify-blocked-external-domains | Create or modify what external domains are blocked from being linked | sysop | |
abusefilter-bypass-blocked-external-domains | Bypass blocked external domains | Requires the edit right
|
bot |
abusefilter-access-protected-vars | View and create filters that use protected variables | sysop | |
abusefilter-protected-vars-log | View logs related to accessing protected variable values | sysop |
उदाहरणस्वरूप, इस उदाहरण कॉन्फ़िगरेशन में सिसॉप्स 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;
$wgGroupPermissions['sysop']['abusefilter-access-protected-vars'] = true;
$wgGroupPermissions['sysop']['abusefilter-protected-vars-log'] = true;
abusefilter-access-protected-vars
permission. Logs pertaining to these filters can only be viewed by users with the abusefilter-protected-vars-log
permission. For more information, see Rules format .
पैरामीटर
वेरिएबल का नाम | डिफ़ॉल्ट वैल्यू | विवरण |
---|---|---|
$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
]
| |
$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
दुरुपयोग फ़िल्टर पर बदलावों को Special:RecentChanges पर भेजने के लिए
unset($wgLogRestrictions['abusefilter']); का इस्तेमाल करें। |
$wgAbuseFilterNotificationsPrivate
|
false
|
व्यक्तिगत फ़िल्टरों के लिए सूचनाएँ सक्षम करें। |
$wgAbuseFilterCentralDB
|
null
|
MW 1.41+ एक डेटाबेस का नाम जहाँ ग्लोबल दुरुपयोग फिल्टरों को संग्रहीत किया जाएगा (सिर्फ नवीनतम, विकास संस्करण में समर्थित)। CentralAuth की ज़रूरत है, वरना ग्लोबल फ़िल्टर विकि फ़ार्म पर टूट जाएँगे। |
$wgAbuseFilterIsCentral
|
false
|
MW 1.41+ इस वेरिएबल को उन विकियों पर 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
|
दिनों के नाप पर अवधि जिसके अंदर सदस्यों को स्वचालित रूप से पदोन्नत किए जाने से फ़िल्टर रोकेगा। |
$wgAbuseFilterDefaultWarningMessage
|
[
'default' => 'abusefilter-warning'
]
|
प्रति फ़िल्टर समूह के अनुसार डिफ़ॉल्ट चेतावनी संदेश |
$wgAbuseFilterDefaultDisallowMessage
|
[
'default' => 'abusefilter-disallowed'
]
|
प्रति फ़िल्टर समूह के अनुसार डिफ़ॉल्ट इनकार संदेश |
$wgAbuseFilterLogIP
|
true
|
abuse_filter_log में IP दर्ज करना है कि नहीं |
$wgAbuseFilterLogIPMaxAge
|
3 * 30 * 24 * 3600
|
पुराने IP लॉग डेटा को साफ़ करते समय सबसे नए पते की उम्र। डिफ़ॉल्ट से 3 महीने पर होता है। इसका इस्तेमाल अनुरक्षण स्क्रिप्ट purgeOldLogIPData.php करता है। |
$wgAbuseFilterProfileActionsCap
|
10000
|
क्रिया की संख्या जो निर्धारित करता है कि प्रोफ़ाइलिंग सांख्यिकी को कब रीसेट किया जाएगा। |
$wgAbuseFilterLogPrivateDetailsAccess
|
false
|
क्या फ़िल्टर लॉग की एंट्री से निजी जानकारी देखने की क्रिया को लॉग किया जाता है या नहीं। |
$wgAbuseFilterPrivateDetailsForceReason
|
false
|
क्या फ़िल्टर लॉग की एंट्री से निजी जानकारी देखने के लिए सदस्यों को एक कारण देने की ज़रूरत है या नहीं। |
$wgAbuseFilterSlowFilterRuntimeLimit
|
500
|
फ़िल्टर के धीमे माने जाने के लिए मिलिसेकंड के नाप पर रनटाइम। |
$wgAbuseFilterRangeBlockSize
|
[
'IPv4' => '16',
'IPv6' => '19',
]
|
'rangeblock' कार्य द्वारा अवरोधित रेंज का आकार। |
$wgAbuseFilterProtectedVariables
|
[ "user_unnamed_ip" ]
|
Array of variables that are be considered protected (limited access) and require the abusefilter-access-protected-vars right to use/view.
|
आपातकालीन थ्रॉटलिंग
AbuseFilter में एक सुविधा है जो अपने आप उन फ़िल्टरों को थ्रॉटल (अक्षम) करता है जिन्हें हाल ही में संपादित किया गया है और जो नवीनतम कार्यों के विशिष्ट मानदंडों से मेल खाते हों।
ऐसा इसलिए किया जाता है ताकि विकि पर किसी कार्य को करने वाले हर सदस्य को अवरोधित करने के लिए बनाए गए फ़िल्टर पर कोई हानिकारक संपादन न की जाए।
फ़िल्टर को अवरोधित करने के लिए शर्तें इन वेरिएबलों पर निर्भर हैं:
$wgAbuseFilterEmergencyDisableThreshold
- जाँचित अवधि में कुल कार्यों की संख्या की तुलना में मेल खाने वाले कार्यों की संख्या।$wgAbuseFilterEmergencyDisableCount
- जाँचित अवधि में फ़िल्टर द्वारा मेल खाए गए कार्य।$wgAbuseFilterEmergencyDisableAge
- थ्रॉटल करने के लिए फ़िल्टर की उम्र। अगर फ़िल्टर पर आखिरी संपादन सेंकड के इस संख्या से ज़्यादा है, फ़िल्टर को थ्रॉटल नहीं किया जाएगा, और इसे पहले से थ्रॉटल न किया गया हो तो।
थ्रॉटल किए गए फ़िल्टरों को फ़िल्टरों की सूची (Special:AbuseFilter) में से सक्षम, High rate of matches स्थिति के साथ पहचाना जा सकता है। थ्रॉटलिंग पीठ-पीछे होता है, और यह बताने का कोई तरीका नहीं है कि फ़िल्टर कब थ्रॉटल हो जाता है।
जब किसी फ़िल्टर को थ्रॉटल किया जाता है, इससे कोई ख़तरनाक कार्य नहीं होती (कार्य जो आम तौर पर विशेष अधिकार वाले सदस्य कर सकते हैं, जैसे अवरोध करना, या इसे समूहों से हटाना, जो $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
फ़िल्टरों के बारे में जानकारी सूचीबद्ध करें
- पैरामीटर
abfstartid
- पहला फ़िल्टर IDabfendid
- आखिरी फ़िल्टर IDabfdir
- सूचीबद्ध करने का क्रम (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)
- उदाहरण
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
बनाना होगा, जिसमें आपको अपने समूह का नाम पास करना होगा।
ये भी देखें
- कई WMF विकियाँ जहाँ पर यह सक्षम है (और किस कॉन्फ़िगरेशन के साथ)
इस एक्सटेंशन का इस्तेमाल एक या अधिक विकिमीडिया परियोजनाओं पर किया जा रहा है। इसका शायद मतलब है कि एक्सटेंशन स्थिर है और इस तरह के अधिक दर्शकों वाले वेबसाइटों द्वारा उपयोग किए जाने के लिए पर्याप्त रूप से काम करता है। विकिमीडिया की CommonSettings.php और InitialiseSettings.php कॉन्फ़िगरेशन फ़ाइलों में इस एक्सटेंशन का नाम खोजें, और यह वहीं स्थापित होगा। किसी विशिष्ट विकि पर स्थापित एक्सटेंशन्स की पूरी सूची को विकि के Special:Version पृष्ठ पर देखा जा सकता है। |
इस एक्सटेंशन को निम्न विकि फ़ार्म्स/होस्ट्स और/या पैकेजिस में शामिल किया गया है: यह कोई आधिकारिक सूची नहीं है। कुछ विकि फ़ॉर्म्स/होस्ट्स और/या पैकेजिस में यह एक्सटेंशन शामिल हो सकता है हालाँकि वो शायद यहाँ सूचीबद्ध न हों। सुनिश्चित करने के लिए हमेशा अपने विकि फ़ार्म/होस्ट से संपर्क करें या बंडल जाँचें। |