mediawiki-extensions-AbuseF.../extension.json
Victor Vasiliev aa399da279 Implement a tree-caching abuse filter parser
This filter is fully functional.  The old filter is still enabled by
default for a transitional period in case the new one suddenly has
issues.

Change-Id: I4aea5f00c62420108030e60e79d5bf34e913e95d
2016-09-24 02:53:26 +00:00

260 lines
8.1 KiB
JSON

{
"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.25.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/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",
"AbuseFilterCachingParser": "AbuseFilter.parser.new.php",
"AbuseFilterTokenizer": "AbuseFilterTokenizer.php",
"AbuseFilterHooks": "AbuseFilter.hooks.php",
"AbuseFilterPreAuthenticationProvider": "AbuseFilterPreAuthenticationProvider.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",
"AFPToken": "AbuseFilter.parser.php",
"AFPTreeNode": "AbuseFilter.parser.new.php",
"AFPTreeParser": "AbuseFilter.parser.new.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"
},
"callback": "AbuseFilterHooks::onRegistration",
"GrantPermissions": {
"basic": {
"abusefilter-view": true,
"abusefilter-log-detail": true,
"abusefilter-log": true
}
},
"Hooks": {
"EditFilterMergedContent": "AbuseFilterHooks::onEditFilterMergedContent",
"GetAutoPromoteGroups": "AbuseFilterHooks::onGetAutoPromoteGroups",
"AbortMove": "AbuseFilterHooks::onAbortMove",
"MovePageCheckPermissions": "AbuseFilterHooks::onMovePageCheckPermissions",
"ArticleDelete": "AbuseFilterHooks::onArticleDelete",
"RecentChange_save": "AbuseFilterHooks::onRecentChangeSave",
"ListDefinedTags": "AbuseFilterHooks::onListDefinedTags",
"ChangeTagsListActive": "AbuseFilterHooks::onChangeTagsListActive",
"LoadExtensionSchemaUpdates": "AbuseFilterHooks::onLoadExtensionSchemaUpdates",
"ContributionsToolLinks": "AbuseFilterHooks::onContributionsToolLinks",
"UploadVerifyFile": "AbuseFilterHooks::onUploadVerifyFile",
"UploadVerifyUpload": "AbuseFilterHooks::onUploadVerifyUpload",
"UploadStashFile": "AbuseFilterHooks::onUploadStashFile",
"MakeGlobalVariablesScript": "AbuseFilterHooks::onMakeGlobalVariablesScript",
"ArticleSaveComplete": "AbuseFilterHooks::onArticleSaveComplete",
"UserMergeAccountFields": "AbuseFilterHooks::onUserMergeAccountFields",
"ParserOutputStashForEdit": "AbuseFilterHooks::onParserOutputStashForEdit"
},
"config": {
"@doc": "see AbuseFilter.php",
"AbuseFilterActions": {
"flag": true,
"throttle": true,
"warn": true,
"disallow": true,
"blockautopromote": true,
"block": true,
"rangeblock": false,
"degroup": true,
"tag": true,
"_merge_strategy": "array_plus"
},
"AbuseFilterConditionLimit": 1000,
"AbuseFilterEmergencyDisableThreshold": {
"default": 0.05,
"_merge_strategy": "array_plus"
},
"AbuseFilterEmergencyDisableCount": {
"default": 2,
"_merge_strategy": "array_plus"
},
"AbuseFilterEmergencyDisableAge": {
"default": 86400,
"_merge_strategy": "array_plus"
},
"AbuseFilterParserClass": "AbuseFilterParser",
"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
},
"load_composer_autoloader": true,
"manifest_version": 1
}