Skip to content

Commit

Permalink
Cleanup and add support for chunking (#90)
Browse files Browse the repository at this point in the history
  • Loading branch information
Universal-Omega authored Nov 20, 2024
1 parent fda403e commit 2af27a1
Show file tree
Hide file tree
Showing 27 changed files with 1,901 additions and 1,401 deletions.
4 changes: 4 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,7 @@ updates:
directory: "/"
schedule:
interval: "daily"
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
2 changes: 2 additions & 0 deletions .phan/config.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

$cfg = require __DIR__ . '/../vendor/mediawiki/mediawiki-phan-config/src/config.php';

$cfg['minimum_target_php_version'] = '8.0';

$cfg['suppress_issue_types'] = [
'PhanAccessMethodInternal',
'SecurityCheck-LikelyFalsePositive',
Expand Down
26 changes: 20 additions & 6 deletions .phpcs.xml
Original file line number Diff line number Diff line change
@@ -1,11 +1,25 @@
<?xml version="1.0"?>
<ruleset>
<file>.</file>
<rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
<exclude name="Generic.Files.LineLength.TooLong" />
<exclude name="MediaWiki.Commenting.FunctionComment" />
<rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki" />
<rule ref="Generic.Functions.FunctionCallArgumentSpacing.TooMuchSpaceAfterComma">
<severity>5</severity>
</rule>
<arg name="bootstrap" value="./vendor/mediawiki/mediawiki-codesniffer/utils/bootstrap-ci.php"/>
<arg name="extensions" value="php"/>
<arg name="encoding" value="UTF-8"/>
<rule ref="Squiz.WhiteSpace.FunctionSpacing.BeforeFirst">
<severity>5</severity>
</rule>
<rule ref="Squiz.WhiteSpace.MemberVarSpacing.FirstIncorrect">
<severity>5</severity>
</rule>
<rule ref="MediaWiki.Classes.FullQualifiedClassName">
<severity>5</severity>
<properties>
<property name="allowMainNamespace" value="false" />
<property name="allowInheritance" value="false" />
<property name="allowFunctions" value="false" />
</properties>
</rule>
<arg name="bootstrap" value="./vendor/mediawiki/mediawiki-codesniffer/utils/bootstrap-ci.php" />
<arg name="extensions" value="php" />
<arg name="encoding" value="UTF-8" />
</ruleset>
7 changes: 0 additions & 7 deletions DataDumpAliases.php

This file was deleted.

674 changes: 0 additions & 674 deletions LICENSE

This file was deleted.

595 changes: 595 additions & 0 deletions LICENSE.md

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# DataDump
An extension that provides dumps of wikis
A MediaWiki extension that provides dumps of wikis.

Developed by Miraheze.

Licensed under the GPLv3 (or later) LICENSE.

# Security Vulnerabilities

If you believe you have found a security vulnerability in any part of our code, please do not post it publicly by using our wikis or bug trackers for that; rather, please read our [security page](https://meta.miraheze.org/wiki/Security) carefully, and follow the instructions.
If you believe you have found a security vulnerability in any part of our code, please do not post it publicly by using our wikis or bug trackers for that; rather, please read our [security page](https://meta.miraheze.org/wiki/Special:MyLanguage/Security) carefully, and follow the instructions.

As a quick overview, you can email security concerns to [email protected] which will open a Phorge task that is hidden from public view. If you'd like, you can instead directly create a security-related task [here](https://issue-tracker.miraheze.org/maniphest/task/edit/form/2/), but please leave the "Security" project on the issue.
As a quick overview, you can email security concerns to [email protected] or if you'd like, you can instead directly create a security-related task [here](https://issue-tracker.miraheze.org/maniphest/task/edit/form/2/), but please leave the "Security" project on the issue.
162 changes: 96 additions & 66 deletions extension.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,83 +4,79 @@
"Paladox",
"Universal Omega"
],
"url": "https://www.mediawiki.org/wiki/Extension:DataDump",
"url": "https://github.com/miraheze/DataDump",
"descriptionmsg": "datadump-desc",
"namemsg": "datadump-extensionname",
"license-name": "GPL-3.0-or-later",
"type": "specialpage",
"requires": {
"MediaWiki": ">= 1.42.0"
},
"AvailableRights": [
"generate-dump",
"delete-dump",
"view-dump"
],
"config": {
"DataDump": {
"description": "object",
"public": true,
"value": {}
},
"DataDumpInfo": {
"description": "string",
"public": true,
"value": ""
},
"DataDumpLimits": {
"description": "object",
"public": true,
"value": {
"memory": 0,
"filesize": 0,
"time": 0,
"walltime": 0
}
},
"DataDumpDirectory": {
"description": "string",
"public": true,
"value": false
},
"DataDumpFileBackend": {
"description": "string",
"public": true,
"value": ""
},
"DataDumpDownloadUrl": {
"description": "string",
"public": true,
"value": ""
},
"DataDumpDisableGenerate": {
"description": "boolean",
"public": true,
"value": false
"MediaWiki": ">= 1.42.0",
"platform": {
"php": ">= 8.0"
}
},
"MessagesDirs": {
"DataDump": [
"i18n"
]
},
"ExtensionMessagesFiles": {
"DataDumpAliases": "DataDumpAliases.php"
"TranslationAliasesDirs": {
"DataDumpAliases": "i18n/aliases"
},
"AutoloadNamespaces": {
"Miraheze\\DataDump\\": "includes/",
"Miraheze\\DataDump\\Maintenance\\": "maintenance/"
},
"APIModules": {
"deletedumps": "Miraheze\\DataDump\\Api\\ApiDeleteDumps",
"generatedumps": "Miraheze\\DataDump\\Api\\ApiGenerateDumps",
"viewdumps": "Miraheze\\DataDump\\Api\\ApiViewDumps"
"deletedumps": {
"class": "Miraheze\\DataDump\\Api\\ApiDeleteDumps",
"services": [
"ConnectionProvider"
]
},
"generatedumps": {
"class": "Miraheze\\DataDump\\Api\\ApiGenerateDumps",
"services": [
"ConnectionProvider",
"JobQueueGroupFactory"
]
},
"viewdumps": {
"class": "Miraheze\\DataDump\\Api\\ApiViewDumps",
"services": [
"ConnectionProvider",
"PermissionManager"
]
}
},
"SpecialPages": {
"DataDump": "Miraheze\\DataDump\\Specials\\SpecialDataDump"
"JobClasses": {
"DataDumpGenerateJob": {
"class": "Miraheze\\DataDump\\Jobs\\DataDumpGenerateJob",
"services": [
"ConfigFactory",
"ConnectionProvider"
],
"needsPage": false
}
},
"AvailableRights": [
"generate-dump",
"delete-dump",
"view-dump"
],
"LogActionsHandlers": {
"datadump/delete": "LogFormatter",
"datadump/generate": "LogFormatter",
"datadump/generate-completed": "LogFormatter",
"datadump/generate-failed": "LogFormatter",
"datadump/generate-in-progress": "LogFormatter"
},
"LogHeaders": {
"datadump": "datadump-log-header"
},
"LogNames": {
"datadump": "datadump-log-name"
},
"LogTypes": [
"datadump"
],
Expand All @@ -99,27 +95,61 @@
]
}
},
"JobClasses": {
"DataDumpGenerateJob": "Miraheze\\DataDump\\Jobs\\DataDumpGenerateJob"
"SpecialPages": {
"DataDump": {
"class": "Miraheze\\DataDump\\Specials\\SpecialDataDump",
"services": [
"ConnectionProvider",
"JobQueueGroupFactory",
"PermissionManager"
]
}
},
"AutoloadNamespaces": {
"Miraheze\\DataDump\\": "includes/",
"Miraheze\\DataDump\\Maintenance\\": "maintenance/"
"Hooks": {
"LoadExtensionSchemaUpdates": {
"handler": "Installer"
},
"SidebarBeforeOutput": {
"handler": "Main"
}
},
"HookHandlers": {
"Installer": {
"class": "Miraheze\\DataDump\\Hooks\\Handlers\\Installer"
"class": "Miraheze\\DataDump\\HookHandlers\\Installer"
},
"Main": {
"class": "Miraheze\\DataDump\\Hooks\\Handlers\\Main"
"class": "Miraheze\\DataDump\\HookHandlers\\Main"
}
},
"Hooks": {
"LoadExtensionSchemaUpdates": "Installer",
"SidebarBeforeOutput": "Main"
"config": {
"DataDump": {
"description": "Array. An associative array of DataDump configuration options.",
"value": []
},
"DataDumpDirectory": {
"description": "String. Directory to store DataDump files in. Does nothing if using DataDumpFileBackend.",
"value": ""
},
"DataDumpDisableGenerate": {
"description": "Boolean. Whether to disable DataDump generation.",
"value": false
},
"DataDumpFileBackend": {
"description": "String. The file backend to use for DataDump if using something other than the default FSFileBackend.",
"value": ""
},
"DataDumpLimits": {
"description": "Array. Limits to use for DataDump generation commands.",
"value": {
"filesize": 0,
"memory": 0,
"time": 0,
"walltime": 0
}
}
},
"ConfigRegistry": {
"DataDump": "GlobalVarConfig::newInstance"
"DataDump": "MediaWiki\\Config\\GlobalVarConfig::newInstance"
},
"manifest_version": 2
}
7 changes: 7 additions & 0 deletions i18n/aliases/en.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"SpecialPageAliases": {
"DataDump": [
"DataDump"
]
}
}
12 changes: 6 additions & 6 deletions i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,18 @@
"action-delete-dump": "delete wiki backups",
"action-generate-dump": "generate wiki backups",
"action-view-dump": "view wiki backups",
"apihelp-deletedumps-summary": "Delete dumps",
"apihelp-deletedumps-example": "This is an example of how to delete dumps.",
"apihelp-deletedumps-param-filename": "Delete dump with this specified filename.",
"apihelp-deletedumps-param-type": "Delete dump with this specified type.",
"apihelp-generatedumps-summary": "Generate dumps",
"apihelp-deletedumps-summary": "Delete dumps",
"apihelp-generatedumps-example": "This is an example of how to generate dumps.",
"apihelp-generatedumps-param-type": "Generate dump with this specified type.",
"apihelp-generatedumps-summary": "Generate dumps",
"apihelp-viewdumps-example-1": "This is an example of how to fetch all dumps.",
"apihelp-viewdumps-example-2": "This is an example of how to fetch dumps with the specified type of 'xml'.",
"apihelp-viewdumps-param-type": "Find dump with this specified type.",
"apihelp-viewdumps-param-filename": "Find dump with this specified filename.",
"apihelp-viewdumps-param-timestamp": "Find dump with this specified timestamp.",
"apihelp-viewdumps-param-type": "Find dump with this specified type.",
"apihelp-viewdumps-summary": "View dumps for specified type, filename or timestamp.",
"datadump": "Back up sections of this wiki",
"datadump-action": "Perform an action",
Expand All @@ -30,12 +30,14 @@
"datadump-delete-success": "You have deleted the backup.",
"datadump-desc": "You can generate various types of backups. Select an option below to generate a backup.",
"datadump-dump-does-not-exist": "The backup '$1' does not exist.",
"datadump-extension-desc": "Generate and manage wiki backups of all types",
"datadump-extensionname": "DataDump",
"datadump-generated-disabled": "Backup generation is currently disabled. This may be for maintenance reasons. Please contact your system administrator for further information.",
"datadump-generated-error": "Failed to generate a backup. You may only generate $1 {{PLURAL:$1|dump|dumps}}.",
"datadump-generated-success": "Your backup request has been submitted. Please wait while the backup is generated. Depending on the size of the backup, this may take up to a few hours.",
"datadump-label-generate": "Generate",
"datadump-link": "Manage this wiki's backups",
"datadump-log-header": "This log tracks all wiki backups being deleted or generated through [[Special:DataDump|DataDump]].",
"datadump-log-name": "Wiki backup log",
"datadump-no-results": "No dumps have been found, please generate one.",
"datadump-not-configured": "DataDump is not configured. Please review the extension documentation and configure it.",
"datadump-refresh": "Refresh page",
Expand All @@ -56,8 +58,6 @@
"log-action-filter-datadump-deletion": "Wiki backup deletion",
"log-action-filter-datadump-generation": "Wiki backup creations",
"log-action-filter-datadump-status": "Wiki backup status updates",
"log-description-datadump": "This log tracks all wiki backups being deleted or generated through [[Special:DataDump|DataDump]].",
"log-name-datadump": "Wiki backup log",
"logentry-datadump-delete": "$1 {{GENDER:$2|deleted}} backup '$4'",
"logentry-datadump-generate": "$1 {{GENDER:$2|queued}} the generation of a backup titled '$4'",
"logentry-datadump-generate-completed": "The generation has completed for a backup titled '$4'",
Expand Down
Loading

0 comments on commit 2af27a1

Please sign in to comment.