{ "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", "requires": { "MediaWiki": ">= 1.29.0" }, "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/hit": "AbuseLogHitFormatter", "abusefilter/modify": "AbuseFilterModifyLogFormatter" }, "APIModules": { "abusefilterchecksyntax": "ApiAbuseFilterCheckSyntax", "abusefilterevalexpression": "ApiAbuseFilterEvalExpression", "abusefilterunblockautopromote": "ApiAbuseFilterUnblockAutopromote", "abusefiltercheckmatch": "ApiAbuseFilterCheckMatch" }, "APIListModules": { "abuselog": "ApiQueryAbuseLog", "abusefilters": "ApiQueryAbuseFilters" }, "MessagesDirs": { "AbuseFilter": [ "i18n" ] }, "ExtensionMessagesFiles": { "AbuseFilterAliases": "AbuseFilter.alias.php" }, "AutoloadClasses": { "AbuseFilter": "includes/AbuseFilter.class.php", "AbuseFilterCachingParser" : "includes/parser/AbuseFilterCachingParser.php", "AbuseFilterParser": "includes/parser/AbuseFilterParser.php", "AbuseFilterTokenizer": "includes/parser/AbuseFilterTokenizer.php", "AbuseFilterHooks": "includes/AbuseFilter.hooks.php", "AbuseFilterPreAuthenticationProvider": "includes/AbuseFilterPreAuthenticationProvider.php", "SpecialAbuseLog": "includes/special/SpecialAbuseLog.php", "AbuseLogPager": "includes/special/SpecialAbuseLog.php", "SpecialAbuseFilter": "includes/special/SpecialAbuseFilter.php", "AbuseLogHitFormatter": "includes/AbuseLogHitFormatter.php", "AbuseFilterModifyLogFormatter": "includes/AbuseFilterModifyLogFormatter.php", "AbuseFilterViewList": "includes/Views/AbuseFilterViewList.php", "AbuseFilterPager": "includes/Views/AbuseFilterViewList.php", "GlobalAbuseFilterPager": "includes/Views/AbuseFilterViewList.php", "AbuseFilterView": "includes/Views/AbuseFilterView.php", "AbuseFilterViewEdit": "includes/Views/AbuseFilterViewEdit.php", "AbuseFilterViewTools": "includes/Views/AbuseFilterViewTools.php", "AbuseFilterViewHistory": "includes/Views/AbuseFilterViewHistory.php", "AbuseFilterHistoryPager": "includes/Views/AbuseFilterViewHistory.php", "AbuseFilterViewRevert": "includes/Views/AbuseFilterViewRevert.php", "AbuseFilterViewTestBatch": "includes/Views/AbuseFilterViewTestBatch.php", "AbuseFilterViewExamine": "includes/Views/AbuseFilterViewExamine.php", "AbuseFilterExaminePager": "includes/Views/AbuseFilterViewExamine.php", "AbuseFilterChangesList": "includes/Views/AbuseFilterView.php", "AbuseFilterViewDiff": "includes/Views/AbuseFilterViewDiff.php", "TableDiffFormatterFullContext": "includes/Views/AbuseFilterViewDiff.php", "AbuseFilterViewImport": "includes/Views/AbuseFilterViewImport.php", "AbuseFilterVariableHolder": "includes/AbuseFilterVariableHolder.php", "AFComputedVariable": "includes/AFComputedVariable.php", "AFPData": "includes/parser/AFPData.php", "AFPException": "includes/parser/AFPException.php", "AFPParserState": "includes/parser/AFPParserState.php", "AFPToken": "includes/parser/AFPToken.php", "AFPTreeNode": "includes/parser/AFPTreeNode.php", "AFPTreeParser": "includes/parser/AFPTreeParser.php", "AFPUserVisibleException": "includes/parser/AFPUserVisibleException.php", "ApiQueryAbuseLog": "includes/api/ApiQueryAbuseLog.php", "ApiQueryAbuseFilters": "includes/api/ApiQueryAbuseFilters.php", "ApiAbuseFilterCheckSyntax": "includes/api/ApiAbuseFilterCheckSyntax.php", "ApiAbuseFilterEvalExpression": "includes/api/ApiAbuseFilterEvalExpression.php", "ApiAbuseFilterUnblockAutopromote": "includes/api/ApiAbuseFilterUnblockAutopromote.php", "ApiAbuseFilterCheckMatch": "includes/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", "mediawiki.api.parse", "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" }, "callback": "AbuseFilterHooks::onRegistration", "GrantPermissions": { "basic": { "abusefilter-view": true, "abusefilter-log-detail": true, "abusefilter-log": true } }, "Hooks": { "EditFilterMergedContent": "AbuseFilterHooks::onEditFilterMergedContent", "GetAutoPromoteGroups": "AbuseFilterHooks::onGetAutoPromoteGroups", "MovePageCheckPermissions": "AbuseFilterHooks::onMovePageCheckPermissions", "ArticleDelete": "AbuseFilterHooks::onArticleDelete", "RecentChange_save": "AbuseFilterHooks::onRecentChangeSave", "ListDefinedTags": "AbuseFilterHooks::onListDefinedTags", "ChangeTagsListActive": "AbuseFilterHooks::onChangeTagsListActive", "LoadExtensionSchemaUpdates": "AbuseFilterHooks::onLoadExtensionSchemaUpdates", "ContributionsToolLinks": "AbuseFilterHooks::onContributionsToolLinks", "UploadVerifyUpload": "AbuseFilterHooks::onUploadVerifyUpload", "UploadStashFile": "AbuseFilterHooks::onUploadStashFile", "MakeGlobalVariablesScript": "AbuseFilterHooks::onMakeGlobalVariablesScript", "PageContentSaveComplete": "AbuseFilterHooks::onPageContentSaveComplete", "UserMergeAccountFields": "AbuseFilterHooks::onUserMergeAccountFields", "ParserOutputStashForEdit": "AbuseFilterHooks::onParserOutputStashForEdit" }, "config": { "@doc": "see AbuseFilter.php", "AbuseFilterActions": { "throttle": true, "warn": true, "disallow": true, "blockautopromote": true, "block": true, "rangeblock": false, "degroup": true, "tag": true, "_merge_strategy": "array_plus" }, "AbuseFilterConditionLimit": 1000, "AbuseFilterParserClass": "AbuseFilterParser", "AbuseFilterEmergencyDisableThreshold": { "default": 0.05, "_merge_strategy": "array_plus" }, "AbuseFilterEmergencyDisableCount": { "default": 2, "_merge_strategy": "array_plus" }, "AbuseFilterEmergencyDisableAge": { "default": 86400, "_merge_strategy": "array_plus" }, "AbuseFilterRestrictions": { "flag": false, "throttle": false, "warn": false, "disallow": false, "blockautopromote": true, "block": true, "rangeblock": true, "degroup": true, "tag": false, "_merge_strategy": "array_plus" }, "AbuseFilterNotifications": false, "AbuseFilterNotificationsPrivate": false, "AbuseFilterCentralDB": null, "AbuseFilterIsCentral": false, "AbuseFilterDisallowGlobalLocalBlocks": false, "AbuseFilterBlockDuration": "indefinite", "AbuseFilterAnonBlockDuration": null, "AbuseFilterCustomActionsHandlers": [], "AbuseFilterValidGroups": [ "default" ], "AbuseFilterDefaultWarningMessage": { "default": "abusefilter-warning", "_merge_strategy": "array_plus" }, "AbuseFilterLogIPMaxAge": 7776000, "AbuseFilterProfile": false, "AbuseFilterRuntimeProfile": false }, "load_composer_autoloader": true, "manifest_version": 1 }