Paladox has uploaded a new change for review.
https://gerrit.wikimedia.org/r/222566
Change subject: Add extension.json, empty php entry point
......................................................................
Add extension.json, empty php entry point
Bug: T87876
Change-Id: Icff39f3f79f7ffe86214cfa216b53f3d882e1968
---
M AbuseFilter.hooks.php
M AbuseFilter.php
A extension.json
M i18n/as.json
M i18n/de.json
5 files changed, 289 insertions(+), 218 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/AbuseFilter
refs/changes/66/222566/1
diff --git a/AbuseFilter.hooks.php b/AbuseFilter.hooks.php
index 892d901..2bfa61c 100644
--- a/AbuseFilter.hooks.php
+++ b/AbuseFilter.hooks.php
@@ -7,6 +7,17 @@
// So far, all of the error message out-params for these hooks accept
HTML.
// Hooray!
+ public static function registerExtension() {
+ global $wgHooks;
+
+ if ( defined( 'MW_SUPPORTS_CONTENTHANDLER' ) ) {
+ $GLOBALS['wgHooks']['EditFilterMergedContent'][] =
'AbuseFilterHooks::onEditFilterMergedContent';
+ } else {
+ $GLOBALS['wgHooks']['EditFilterMerged'][] =
'AbuseFilterHooks::onEditFilterMerged';
+ }
+ }
+
+
/**
* Entry point for the APIEditBeforeSave hook.
* This is needed to give a useful error for API edits (Bug 32216)
diff --git a/AbuseFilter.php b/AbuseFilter.php
index 38cbab8..2640e1b 100644
--- a/AbuseFilter.php
+++ b/AbuseFilter.php
@@ -1,7 +1,4 @@
<?php
-if ( !defined( 'MEDIAWIKI' ) ) {
- die();
-}
/**
* Automatically applies heuristics to edits.
@@ -15,219 +12,16 @@
* @link http://www.mediawiki.org/wiki/Extension:AbuseFilter Documentation
*/
-$wgExtensionCredits['antispam'][] = array(
- 'path' => __FILE__,
- 'name' => 'Abuse Filter',
- 'author' => array( 'Andrew Garrett', 'River Tarnell', 'Victor
Vasiliev', 'Marius Hoch' ),
- 'descriptionmsg' => 'abusefilter-desc',
- 'url' => 'https://www.mediawiki.org/wiki/Extension:AbuseFilter',
- 'license-name' => 'GPL-2.0+',
-);
-
-$dir = __DIR__;
-$wgMessagesDirs['AbuseFilter'] = "$dir/i18n";
-$wgExtensionMessagesFiles['AbuseFilter'] = "$dir/AbuseFilter.i18n.php";
-$wgExtensionMessagesFiles['AbuseFilterAliases'] = "$dir/AbuseFilter.alias.php";
-
-$wgAutoloadClasses['AbuseFilter'] = "$dir/AbuseFilter.class.php";
-$wgAutoloadClasses['AbuseFilterParser'] = "$dir/AbuseFilter.parser.php";
-$wgAutoloadClasses['AbuseFilterHooks'] = "$dir/AbuseFilter.hooks.php";
-$wgAutoloadClasses['SpecialAbuseLog'] = "$dir/special/SpecialAbuseLog.php";
-$wgAutoloadClasses['AbuseLogPager'] = "$dir/special/SpecialAbuseLog.php";
-$wgAutoloadClasses['SpecialAbuseFilter'] =
"$dir/special/SpecialAbuseFilter.php";
-$wgAutoloadClasses['AbuseLogHitFormatter'] = "$dir/AbuseLogHitFormatter.php";
-
-$wgAutoloadClasses['AbuseFilterViewList'] =
"$dir/Views/AbuseFilterViewList.php";
-$wgAutoloadClasses['AbuseFilterPager'] = "$dir/Views/AbuseFilterViewList.php";
-$wgAutoloadClasses['GlobalAbuseFilterPager'] =
"$dir/Views/AbuseFilterViewList.php";
-$wgAutoloadClasses['AbuseFilterView'] = "$dir/Views/AbuseFilterView.php";
-$wgAutoloadClasses['AbuseFilterViewEdit'] =
"$dir/Views/AbuseFilterViewEdit.php";
-$wgAutoloadClasses['AbuseFilterViewTools'] =
"$dir/Views/AbuseFilterViewTools.php";
-$wgAutoloadClasses['AbuseFilterViewHistory'] =
"$dir/Views/AbuseFilterViewHistory.php";
-$wgAutoloadClasses['AbuseFilterHistoryPager'] =
"$dir/Views/AbuseFilterViewHistory.php";
-$wgAutoloadClasses['AbuseFilterViewRevert'] =
"$dir/Views/AbuseFilterViewRevert.php";
-$wgAutoloadClasses['AbuseFilterViewTestBatch'] =
"$dir/Views/AbuseFilterViewTestBatch.php";
-$wgAutoloadClasses['AbuseFilterViewExamine'] =
"$dir/Views/AbuseFilterViewExamine.php";
-$wgAutoloadClasses['AbuseFilterExaminePager'] =
"$dir/Views/AbuseFilterViewExamine.php";
-$wgAutoloadClasses['AbuseFilterChangesList'] =
"$dir/Views/AbuseFilterView.php";
-$wgAutoloadClasses['AbuseFilterViewDiff'] =
"$dir/Views/AbuseFilterViewDiff.php";
-$wgAutoloadClasses['TableDiffFormatterFullContext'] =
"$dir/Views/AbuseFilterViewDiff.php";
-$wgAutoloadClasses['AbuseFilterViewImport'] =
"$dir/Views/AbuseFilterViewImport.php";
-
-$wgAutoloadClasses['AbuseFilterVariableHolder'] =
"$dir/AbuseFilterVariableHolder.php";
-$wgAutoloadClasses['AFComputedVariable'] =
"$dir/AbuseFilterVariableHolder.php";
-$wgAutoloadClasses['AFPData'] = "$dir/AbuseFilter.parser.php";
-$wgAutoloadClasses['AFPException'] = "$dir/AbuseFilter.parser.php";
-$wgAutoloadClasses['AFPParserState'] = "$dir/AbuseFilter.parser.php";
-$wgAutoloadClasses['AFPRegexErrorHandler'] = "$dir/AbuseFilter.parser.php";
-$wgAutoloadClasses['AFPToken'] = "$dir/AbuseFilter.parser.php";
-$wgAutoloadClasses['AFPUserVisibleException'] = "$dir/AbuseFilter.parser.php";
-
-$wgSpecialPages['AbuseLog'] = 'SpecialAbuseLog';
-$wgSpecialPages['AbuseFilter'] = 'SpecialAbuseFilter';
-
-$wgAutoloadClasses['ApiQueryAbuseLog'] = "$dir/api/ApiQueryAbuseLog.php";
-$wgAPIListModules['abuselog'] = 'ApiQueryAbuseLog';
-$wgAutoloadClasses['ApiQueryAbuseFilters'] =
"$dir/api/ApiQueryAbuseFilters.php";
-$wgAPIListModules['abusefilters'] = 'ApiQueryAbuseFilters';
-$wgAutoloadClasses['ApiAbuseFilterCheckSyntax'] =
"$dir/api/ApiAbuseFilterCheckSyntax.php";
-$wgAPIModules['abusefilterchecksyntax'] = 'ApiAbuseFilterCheckSyntax';
-$wgAutoloadClasses['ApiAbuseFilterEvalExpression'] =
"$dir/api/ApiAbuseFilterEvalExpression.php";
-$wgAPIModules['abusefilterevalexpression'] = 'ApiAbuseFilterEvalExpression';
-$wgAutoloadClasses['ApiAbuseFilterUnblockAutopromote'] =
"$dir/api/ApiAbuseFilterUnblockAutopromote.php";
-$wgAPIModules['abusefilterunblockautopromote'] =
'ApiAbuseFilterUnblockAutopromote';
-$wgAutoloadClasses['ApiAbuseFilterCheckMatch'] =
"$dir/api/ApiAbuseFilterCheckMatch.php";
-$wgAPIModules['abusefiltercheckmatch'] = 'ApiAbuseFilterCheckMatch';
-
-
-if ( defined( 'MW_SUPPORTS_CONTENTHANDLER' ) ) {
- $wgHooks['EditFilterMergedContent'][] =
'AbuseFilterHooks::onEditFilterMergedContent';
+if ( function_exists( 'wfLoadExtension' ) ) {
+ wfLoadExtension( 'AbuseFilter' );
+ // Keep i18n globals so mergeMessageFileList.php doesn't break
+ $wgMessagesDirs['AbuseFilter'] = __DIR__ . '/i18n';
+ $wgExtensionMessagesFiles['AbuseFilterAliases'] = __DIR__ .
'/AbuseFilter.alias.php';
+ /* wfWarn(
+ 'Deprecated PHP entry point used for AbuseFilter extension.
Please use wfLoadExtension instead, ' .
+ 'see https://www.mediawiki.org/wiki/Extension_registration for
more details.'
+ ); */
+ return;
} else {
- $wgHooks['EditFilterMerged'][] = 'AbuseFilterHooks::onEditFilterMerged';
+ die( 'This version of the AbuseFilter extension requires MediaWiki
1.25+' );
}
-
-$wgHooks['GetAutoPromoteGroups'][] =
'AbuseFilterHooks::onGetAutoPromoteGroups';
-$wgHooks['AbortMove'][] = 'AbuseFilterHooks::onAbortMove';
-$wgHooks['MovePageCheckPermissions'][] =
'AbuseFilterHooks::onMovePageCheckPermissions';
-$wgHooks['AbortNewAccount'][] = 'AbuseFilterHooks::onAbortNewAccount';
-$wgHooks['AbortAutoAccount'][] = 'AbuseFilterHooks::onAbortAutoAccount';
-$wgHooks['ArticleDelete'][] = 'AbuseFilterHooks::onArticleDelete';
-$wgHooks['RecentChange_save'][] = 'AbuseFilterHooks::onRecentChangeSave';
-$wgHooks['ListDefinedTags'][] = 'AbuseFilterHooks::onListDefinedTags';
-$wgHooks['ChangeTagsListActive'][] =
'AbuseFilterHooks::onChangeTagsListActive';
-$wgHooks['LoadExtensionSchemaUpdates'][] =
'AbuseFilterHooks::onLoadExtensionSchemaUpdates';
-$wgHooks['ContributionsToolLinks'][] =
'AbuseFilterHooks::onContributionsToolLinks';
-$wgHooks['UploadVerifyFile'][] = 'AbuseFilterHooks::onUploadVerifyFile';
-$wgHooks['MakeGlobalVariablesScript'][] =
'AbuseFilterHooks::onMakeGlobalVariablesScript';
-$wgHooks['ArticleSaveComplete'][] = 'AbuseFilterHooks::onArticleSaveComplete';
-$wgHooks['APIEditBeforeSave'][] = 'AbuseFilterHooks::onAPIEditBeforeSave';
-$wgHooks['UserMergeAccountFields'][] =
'AbuseFilterHooks::onUserMergeAccountFields';
-$wgHooks['UnitTestsList'][] = 'AbuseFilterHooks::onUnitTestsList';
-
-$wgAvailableRights[] = 'abusefilter-modify';
-$wgAvailableRights[] = 'abusefilter-log-detail';
-$wgAvailableRights[] = 'abusefilter-view';
-$wgAvailableRights[] = 'abusefilter-log';
-$wgAvailableRights[] = 'abusefilter-private';
-$wgAvailableRights[] = 'abusefilter-modify-restricted';
-$wgAvailableRights[] = 'abusefilter-revert';
-$wgAvailableRights[] = 'abusefilter-view-private';
-$wgAvailableRights[] = 'abusefilter-log-private';
-$wgAvailableRights[] = 'abusefilter-hidden-log';
-$wgAvailableRights[] = 'abusefilter-hide-log';
-$wgAvailableRights[] = 'abusefilter-modify-global';
-
-$wgLogTypes[] = 'abusefilter';
-$wgLogNames['abusefilter'] = 'abusefilter-log-name';
-$wgLogHeaders['abusefilter'] = 'abusefilter-log-header';
-$wgLogActionsHandlers['abusefilter/modify'] = array( 'AbuseFilter',
'modifyActionText' );
-$wgLogActionsHandlers['abusefilter/hit'] = 'AbuseLogHitFormatter';
-$wgLogActions['suppress/hide-afl'] = 'abusefilter-logentry-suppress';
-$wgLogActions['suppress/unhide-afl'] = 'abusefilter-logentry-unsuppress';
-
-$commonModuleInfo = array(
- 'localBasePath' => __DIR__ . '/modules',
- 'remoteExtPath' => 'AbuseFilter/modules',
-);
-
-$wgResourceModules['ext.abuseFilter'] = array(
- 'position' => 'top',
- 'styles' => 'ext.abuseFilter.css',
-) + $commonModuleInfo;
-
-$wgResourceModules['ext.abuseFilter.edit'] = array(
- 'scripts' => 'ext.abuseFilter.edit.js',
- 'messages' => array(
- 'abusefilter-edit-syntaxok',
- 'abusefilter-edit-syntaxerr',
- 'abusefilter-http-error',
- 'unknown-error',
- ),
- 'dependencies' => array(
- 'mediawiki.util',
- 'mediawiki.api',
- 'jquery.textSelection',
- 'jquery.spinner',
- ),
-) + $commonModuleInfo;
-
-$wgResourceModules['ext.abuseFilter.tools'] = array(
- 'scripts' => 'ext.abuseFilter.tools.js',
- 'messages' => array(
- 'abusefilter-reautoconfirm-notallowed',
- 'abusefilter-reautoconfirm-none',
- 'abusefilter-reautoconfirm-done',
- 'abusefilter-http-error',
- 'unknown-error',
- ),
- 'dependencies' => array(
- 'mediawiki.api',
- 'mediawiki.notify',
- 'user.tokens',
- 'jquery.spinner'
- ),
-) + $commonModuleInfo;
-
-$wgResourceModules['ext.abuseFilter.examine'] = array(
- 'scripts' => 'ext.abuseFilter.examine.js',
- 'messages' => array(
- 'abusefilter-examine-match',
- 'abusefilter-examine-nomatch',
- 'abusefilter-examine-syntaxerror',
- 'abusefilter-examine-notfound',
- 'abusefilter-mustbeeditor',
- 'abusefilter-http-error',
- 'unknown-error',
- ),
- 'dependencies' => array(
- 'jquery.spinner',
- 'mediawiki.api'
- ),
-) + $commonModuleInfo;
-
-$wgAbuseFilterAvailableActions = array( 'flag', 'throttle', 'warn',
'disallow', 'blockautopromote', 'block', 'degroup', 'tag' );
-
-$wgAbuseFilterConditionLimit = 1000;
-
-// Disable filters if they match more than X edits, constituting more than Y%
of the last Z edits, if they have been changed in the last S seconds
-$wgAbuseFilterEmergencyDisableThreshold['default'] = 0.05;
-$wgAbuseFilterEmergencyDisableCount['default'] = 2;
-$wgAbuseFilterEmergencyDisableAge['default'] = 86400; // One day.
-
-// Abuse filter parser class
-$wgAbuseFilterParserClass = 'AbuseFilterParser';
-
-$wgAbuseFilterRestrictedActions = array( 'block', 'degroup',
'blockautopromote', 'rangeblock' );
-
-// Abuse filter hit notification (available options: rc, udp, rcandudp)
-$wgAbuseFilterNotifications = false;
-// Enable notifications for private filters
-$wgAbuseFilterNotificationsPrivate = false;
-
-// Centralised filters
-$wgAbuseFilterCentralDB = null;
-$wgAbuseFilterIsCentral = false;
-
-// Disallow Centralised filters from taking actions that locally
-// block, remove from groups, or revoke permissions
-$wgAbuseFilterDisallowGlobalLocalBlocks = false;
-
-// Block duration for logged in users
-$wgAbuseFilterBlockDuration = 'indefinite';
-// Block duration for anonymous users ($wgAbuseFilterBlockDuration will be
used if null)
-$wgAbuseFilterAnonBlockDuration = null;
-
-// Callback functions for custom actions
-$wgAbuseFilterCustomActionsHandlers = array();
-
-// Valid "filter groups" – used for applying edit filters to certain types of
actions
-$wgAbuseFilterValidGroups = array('default');
-
-// Default warning messages, per filter group
-$wgAbuseFilterDefaultWarningMessage = array(
- 'default' => 'abusefilter-warning',
-);
-
-// Age used as cutoff when purging old IP log data.
-// Used by maintenance script purgeOldLogIPData.php
-$wgAbuseFilterLogIPMaxAge = 3 * 30 * 24 * 3600; // 3 months
diff --git a/extension.json b/extension.json
new file mode 100644
index 0000000..8d7da21
--- /dev/null
+++ b/extension.json
@@ -0,0 +1,264 @@
+{
+ "name": "Abuse Filter",
+ "author": [
+ "Andrew Garrett",
+ "River Tarnell",
+ "Victor Vasiliev",
+ "Marius Hoch"
+ ],
+ "url": "https://www.mediawiki.org/wiki/Extension:AbuseFilter",
+ "descriptionmsg": "abusefilter-desc",
+ "license-name": "GPL-2.0+",
+ "type": "antispam",
+ "callback": "AbuseFilterHooks::registerExtension",
+ "AvailableRights": [
+ "abusefilter-modify",
+ "abusefilter-log-detail",
+ "abusefilter-view",
+ "abusefilter-log",
+ "abusefilter-private",
+ "abusefilter-modify-restricted",
+ "abusefilter-revert",
+ "abusefilter-view-private",
+ "abusefilter-log-private",
+ "abusefilter-hidden-log",
+ "abusefilter-hide-log",
+ "abusefilter-modify-global"
+ ],
+ "SpecialPages": {
+ "AbuseLog": "SpecialAbuseLog",
+ "AbuseFilter": "SpecialAbuseFilter"
+ },
+ "LogTypes": [
+ "abusefilter"
+ ],
+ "LogNames": {
+ "abusefilter": "abusefilter-log-name"
+ },
+ "LogHeaders": {
+ "abusefilter": "abusefilter-log-header"
+ },
+ "LogActions": {
+ "suppress/hide-afl": "abusefilter-logentry-suppress",
+ "suppress/unhide-afl": "abusefilter-logentry-unsuppress"
+ },
+ "LogActionsHandlers": {
+ "abusefilter/modify": [
+ "AbuseFilter",
+ "modifyActionText"
+ ],
+ "abusefilter/hit": "AbuseLogHitFormatter"
+ },
+ "APIModules": {
+ "abusefilterchecksyntax": "ApiAbuseFilterCheckSyntax",
+ "abusefilterevalexpression": "ApiAbuseFilterEvalExpression",
+ "abusefilterunblockautopromote":
"ApiAbuseFilterUnblockAutopromote",
+ "abusefiltercheckmatch": "ApiAbuseFilterCheckMatch"
+ },
+ "APIListModules": {
+ "abuselog": "ApiQueryAbuseLog",
+ "abusefilters": "ApiQueryAbuseFilters"
+ },
+ "MessagesDirs": {
+ "AbuseFilter": [
+ "i18n"
+ ]
+ },
+ "ExtensionMessagesFiles": {
+ "AbuseFilterAliases": "AbuseFilter.alias.php"
+ },
+ "AutoloadClasses": {
+ "AbuseFilter": "AbuseFilter.class.php",
+ "AbuseFilterParser": "AbuseFilter.parser.php",
+ "AbuseFilterHooks": "AbuseFilter.hooks.php",
+ "SpecialAbuseLog": "special/SpecialAbuseLog.php",
+ "AbuseLogPager": "special/SpecialAbuseLog.php",
+ "SpecialAbuseFilter": "special/SpecialAbuseFilter.php",
+ "AbuseLogHitFormatter": "AbuseLogHitFormatter.php",
+ "AbuseFilterViewList": "Views/AbuseFilterViewList.php",
+ "AbuseFilterPager": "Views/AbuseFilterViewList.php",
+ "GlobalAbuseFilterPager": "Views/AbuseFilterViewList.php",
+ "AbuseFilterView": "Views/AbuseFilterView.php",
+ "AbuseFilterViewEdit": "Views/AbuseFilterViewEdit.php",
+ "AbuseFilterViewTools": "Views/AbuseFilterViewTools.php",
+ "AbuseFilterViewHistory": "Views/AbuseFilterViewHistory.php",
+ "AbuseFilterHistoryPager": "Views/AbuseFilterViewHistory.php",
+ "AbuseFilterViewRevert": "Views/AbuseFilterViewRevert.php",
+ "AbuseFilterViewTestBatch":
"Views/AbuseFilterViewTestBatch.php",
+ "AbuseFilterViewExamine": "Views/AbuseFilterViewExamine.php",
+ "AbuseFilterExaminePager": "Views/AbuseFilterViewExamine.php",
+ "AbuseFilterChangesList": "Views/AbuseFilterView.php",
+ "AbuseFilterViewDiff": "Views/AbuseFilterViewDiff.php",
+ "TableDiffFormatterFullContext":
"Views/AbuseFilterViewDiff.php",
+ "AbuseFilterViewImport": "Views/AbuseFilterViewImport.php",
+ "AbuseFilterVariableHolder": "AbuseFilterVariableHolder.php",
+ "AFComputedVariable": "AbuseFilterVariableHolder.php",
+ "AFPData": "AbuseFilter.parser.php",
+ "AFPException": "AbuseFilter.parser.php",
+ "AFPParserState": "AbuseFilter.parser.php",
+ "AFPRegexErrorHandler": "AbuseFilter.parser.php",
+ "AFPToken": "AbuseFilter.parser.php",
+ "AFPUserVisibleException": "AbuseFilter.parser.php",
+ "ApiQueryAbuseLog": "api/ApiQueryAbuseLog.php",
+ "ApiQueryAbuseFilters": "api/ApiQueryAbuseFilters.php",
+ "ApiAbuseFilterCheckSyntax":
"api/ApiAbuseFilterCheckSyntax.php",
+ "ApiAbuseFilterEvalExpression":
"api/ApiAbuseFilterEvalExpression.php",
+ "ApiAbuseFilterUnblockAutopromote":
"api/ApiAbuseFilterUnblockAutopromote.php",
+ "ApiAbuseFilterCheckMatch": "api/ApiAbuseFilterCheckMatch.php"
+ },
+ "ResourceModules": {
+ "ext.abuseFilter": {
+ "position": "top",
+ "styles": "ext.abuseFilter.css"
+ },
+ "ext.abuseFilter.edit": {
+ "scripts": "ext.abuseFilter.edit.js",
+ "messages": [
+ "abusefilter-edit-syntaxok",
+ "abusefilter-edit-syntaxerr",
+ "abusefilter-http-error",
+ "unknown-error"
+ ],
+ "dependencies": [
+ "mediawiki.util",
+ "mediawiki.api",
+ "jquery.textSelection",
+ "jquery.spinner"
+ ]
+ },
+ "ext.abuseFilter.tools": {
+ "scripts": "ext.abuseFilter.tools.js",
+ "messages": [
+ "abusefilter-reautoconfirm-notallowed",
+ "abusefilter-reautoconfirm-none",
+ "abusefilter-reautoconfirm-done",
+ "abusefilter-http-error",
+ "unknown-error"
+ ],
+ "dependencies": [
+ "mediawiki.api",
+ "mediawiki.notify",
+ "user.tokens",
+ "jquery.spinner"
+ ]
+ },
+ "ext.abuseFilter.examine": {
+ "scripts": "ext.abuseFilter.examine.js",
+ "messages": [
+ "abusefilter-examine-match",
+ "abusefilter-examine-nomatch",
+ "abusefilter-examine-syntaxerror",
+ "abusefilter-examine-notfound",
+ "abusefilter-mustbeeditor",
+ "abusefilter-http-error",
+ "unknown-error"
+ ],
+ "dependencies": [
+ "jquery.spinner",
+ "mediawiki.api"
+ ]
+ }
+ },
+ "ResourceFileModulePaths": {
+ "localBasePath": "modules",
+ "remoteExtPath": "AbuseFilter/modules"
+ },
+ "Hooks": {
+ "GetAutoPromoteGroups": [
+ "AbuseFilterHooks::onGetAutoPromoteGroups"
+ ],
+ "AbortMove": [
+ "AbuseFilterHooks::onAbortMove"
+ ],
+ "MovePageCheckPermissions": [
+ "AbuseFilterHooks::onMovePageCheckPermissions"
+ ],
+ "AbortNewAccount": [
+ "AbuseFilterHooks::onAbortNewAccount"
+ ],
+ "AbortAutoAccount": [
+ "AbuseFilterHooks::onAbortAutoAccount"
+ ],
+ "ArticleDelete": [
+ "AbuseFilterHooks::onArticleDelete"
+ ],
+ "RecentChange_save": [
+ "AbuseFilterHooks::onRecentChangeSave"
+ ],
+ "ListDefinedTags": [
+ "AbuseFilterHooks::onListDefinedTags"
+ ],
+ "ChangeTagsListActive": [
+ "AbuseFilterHooks::onChangeTagsListActive"
+ ],
+ "LoadExtensionSchemaUpdates": [
+ "AbuseFilterHooks::onLoadExtensionSchemaUpdates"
+ ],
+ "ContributionsToolLinks": [
+ "AbuseFilterHooks::onContributionsToolLinks"
+ ],
+ "UploadVerifyFile": [
+ "AbuseFilterHooks::onUploadVerifyFile"
+ ],
+ "MakeGlobalVariablesScript": [
+ "AbuseFilterHooks::onMakeGlobalVariablesScript"
+ ],
+ "ArticleSaveComplete": [
+ "AbuseFilterHooks::onArticleSaveComplete"
+ ],
+ "APIEditBeforeSave": [
+ "AbuseFilterHooks::onAPIEditBeforeSave"
+ ],
+ "UserMergeAccountFields": [
+ "AbuseFilterHooks::onUserMergeAccountFields"
+ ],
+ "UnitTestsList": [
+ "AbuseFilterHooks::onUnitTestsList"
+ ]
+ },
+ "config": {
+ "AbuseFilterAvailableActions": [
+ "flag",
+ "throttle",
+ "warn",
+ "disallow",
+ "blockautopromote",
+ "block",
+ "degroup",
+ "tag"
+ ],
+ "AbuseFilterConditionLimit": 1000,
+ "AbuseFilterEmergencyDisableThreshold": {
+ "default": 0.05
+ },
+ "AbuseFilterEmergencyDisableCount": {
+ "default": 2
+ },
+ "AbuseFilterEmergencyDisableAge": {
+ "default": 86400
+ },
+ "AbuseFilterParserClass": "AbuseFilterParser",
+ "AbuseFilterRestrictedActions": [
+ "block",
+ "degroup",
+ "blockautopromote",
+ "rangeblock"
+ ],
+ "AbuseFilterNotifications": false,
+ "AbuseFilterNotificationsPrivate": false,
+ "AbuseFilterCentralDB": null,
+ "AbuseFilterIsCentral": false,
+ "AbuseFilterDisallowGlobalLocalBlocks": false,
+ "AbuseFilterBlockDuration": "indefinite",
+ "AbuseFilterAnonBlockDuration": null,
+ "AbuseFilterCustomActionsHandlers": [],
+ "AbuseFilterValidGroups": [
+ "default"
+ ],
+ "AbuseFilterDefaultWarningMessage": {
+ "default": "abusefilter-warning"
+ },
+ "AbuseFilterLogIPMaxAge": 7776000
+ },
+ "manifest_version": 1
+}
diff --git a/i18n/as.json b/i18n/as.json
index 41dca0d..9ec87ca 100644
--- a/i18n/as.json
+++ b/i18n/as.json
@@ -15,7 +15,7 @@
"right-abusefilter-view": "অপব্যৱহাৰ চেকনী চাওক",
"action-abusefilter-modify": "অপব্যৱহাৰ ফিল্টাৰ সালসলনি কৰক ।",
"action-abusefilter-view": "অপব্যৱহাৰ ছেকনী চাওক ।",
- "abusefilter-log": "অপব্যৱহা্ৰ পৰিশ্ৰাৱক অভিলেখ",
+ "abusefilter-log": "অপব্যৱহাৰ পৰিশ্ৰাৱক অভিলেখ",
"abusefilter-log-search-user": "সদস্য:",
"abusefilter-log-search-filter": "পৰিশ্ৰাৱক আইডি:",
"abusefilter-log-search-title": "শিৰোনামা",
diff --git a/i18n/de.json b/i18n/de.json
index e5f928c..535c669 100644
--- a/i18n/de.json
+++ b/i18n/de.json
@@ -423,6 +423,8 @@
"apihelp-abusefilterevalexpression-example-1": "Evaluiert einen
einfachen Ausdruck",
"apihelp-abusefilterunblockautopromote-param-user": "Benutzername des
Benutzers, den du freigeben möchtest.",
"apihelp-query+abusefilters-description": "Einzelheiten über die
Missbrauchsfilter anzeigen.",
+ "apihelp-query+abusefilters-param-startid": "Die Filterkennung, bei der
die Aufzählung beginnen soll.",
+ "apihelp-query+abusefilters-param-endid": "Die Filterkennung, bei der
die Aufzählung enden soll.",
"apihelp-query+abusefilters-param-show": "Nur Filter anzeigen, die
diese Kriterien erfüllen.",
"apihelp-query+abusefilters-param-limit": "Die maximale Anzahl
aufzulistender Filter.",
"apihelp-query+abusefilters-example-1": "Aktivierte öffentliche Filter
auflisten",
--
To view, visit https://gerrit.wikimedia.org/r/222566
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Icff39f3f79f7ffe86214cfa216b53f3d882e1968
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/AbuseFilter
Gerrit-Branch: master
Gerrit-Owner: Paladox <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits