jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/518219 )
Change subject: [FEAT]create_categories.py:implement -overwrite option
......................................................................
[FEAT]create_categories.py:implement -overwrite option
Implement -overwrite option in create_categories.py
Bug: T220305
Change-Id: I8eae7dfb4353dc08a578545b837903bf94aea069
---
M scripts/create_categories.py
1 file changed, 21 insertions(+), 10 deletions(-)
Approvals:
Xqt: Looks good to me, approved
jenkins-bot: Verified
diff --git a/scripts/create_categories.py b/scripts/create_categories.py
index 4e3beb1..3818bd0 100755
--- a/scripts/create_categories.py
+++ b/scripts/create_categories.py
@@ -14,6 +14,9 @@
-basename The base to be used for the new category names.
+-overwrite: Existing category is skipped by default. Use this option to
+ overwrite a category.
+
Example:
python pwb.py create_categories \
@@ -45,12 +48,13 @@
"""Category creator bot."""
- def __init__(self, generator, parent, basename, **kwargs):
+ def __init__(self, generator, parent, basename, overwrite, **kwargs):
"""Initializer."""
super(CreateCategoriesBot, self).__init__(**kwargs)
self.generator = generator
self.parent = parent
self.basename = basename
+ self.overwrite = overwrite
self.comment = 'Creating new category'
def treat(self, page):
@@ -63,14 +67,17 @@
'[[Category:%(title)s]]\n'
% {'parent': self.parent, 'title': title})
- if not newpage.exists():
- pywikibot.output(newpage.title())
- self.userPut(newpage, '', newtext, summary=self.comment,
- ignore_save_related_errors=True,
- ignore_server_errors=True)
- else:
- pywikibot.output('{} already exists, skipping'
- .format(newpage.title()))
+ pywikibot.output(newpage.title())
+ self.userPut(newpage, '', newtext, summary=self.comment,
+ ignore_save_related_errors=True,
+ ignore_server_errors=True)
+
+ def skip_page(self, page):
+ """Skip page if it is not overwritten."""
+ if page.exists() and not self.overwrite:
+ pywikibot.output('{} already exists, skipping'.format(page))
+ return True
+ return super(CreateCategoriesBot, self).skip_page(page)
def main(*args):
@@ -84,6 +91,7 @@
"""
parent = None
basename = None
+ overwrite = False
options = {}
# Process global args and prepare generator args parser
@@ -93,6 +101,8 @@
for arg in local_args:
if arg == '-always':
options['always'] = True
+ elif arg == '-overwrite':
+ overwrite = True
elif arg.startswith('-parent:'):
parent = arg[len('-parent:'):].strip()
elif arg.startswith('-basename'):
@@ -108,7 +118,8 @@
generator = gen_factory.getCombinedGenerator()
if generator and not missing:
- bot = CreateCategoriesBot(generator, parent, basename, **options)
+ bot = CreateCategoriesBot(generator, parent,
+ basename, overwrite, **options)
bot.run()
pywikibot.output('All done')
return True
--
To view, visit
https://gerrit.wikimedia.org/r/518219
To unsubscribe, or for help writing mail filters, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I8eae7dfb4353dc08a578545b837903bf94aea069
Gerrit-Change-Number: 518219
Gerrit-PatchSet: 5
Gerrit-Owner: Mh-3110 <bipi3110(a)gmail.com>
Gerrit-Reviewer: D3r1ck01 <xsavitar.wiki(a)aol.com>
Gerrit-Reviewer: DannyS712 <DannyS712.enwiki(a)gmail.com>
Gerrit-Reviewer: Dvorapa <dvorapa(a)seznam.cz>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: Mh-3110 <bipi3110(a)gmail.com>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot (75)