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

Reply via email to