jenkins-bot merged this change.

View Change

Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
[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(-)

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 change 518219. To unsubscribe, or for help writing mail filters, visit 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@gmail.com>
Gerrit-Reviewer: D3r1ck01 <xsavitar.wiki@aol.com>
Gerrit-Reviewer: DannyS712 <DannyS712.enwiki@gmail.com>
Gerrit-Reviewer: Dvorapa <dvorapa@seznam.cz>
Gerrit-Reviewer: John Vandenberg <jayvdb@gmail.com>
Gerrit-Reviewer: Mh-3110 <bipi3110@gmail.com>
Gerrit-Reviewer: Xqt <info@gno.de>
Gerrit-Reviewer: jenkins-bot (75)