jenkins-bot submitted this change.

View Change


Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
[bugfix] Fix -namespace usage if RedirectGenerator is used

Only use pagegenerators' namespace filter if RedirectGenerator is used
with -xml or -fullscan option or 'both' action. The later is like
-fullscan but with broken and double action.

Also show a warning if -fullscan is used together with 'both' action

Bug: T331243
Change-Id: Ieffe10248a75877ee79d637bd35ad1585a17684c
---
M scripts/redirect.py
1 file changed, 31 insertions(+), 5 deletions(-)

diff --git a/scripts/redirect.py b/scripts/redirect.py
index 45d138e..a4dadd7 100755
--- a/scripts/redirect.py
+++ b/scripts/redirect.py
@@ -30,7 +30,7 @@
"-xml:filename.xml". Cannot be used with -fullscan or -moves.

-fullscan Retrieve redirect pages from live wiki, not from a special page
- Cannot be used with -xml.
+ Cannot be used with -xml or 'both' action.

-moves Use the page move log to find double-redirect candidates. Only
works with action "double", does not work with -xml.
@@ -66,12 +66,13 @@
&params;
"""
#
-# (C) Pywikibot team, 2004-2022
+# (C) Pywikibot team, 2004-2023
#
# Distributed under the terms of the MIT license.
#
import datetime
from contextlib import suppress
+from textwrap import fill
from typing import Any, Generator, Optional, Union

import pywikibot
@@ -723,7 +724,12 @@

problem = 'You can only use one of {} options.'.format(
' or '.join(source)) if len(source) > 1 else ''
- if suggest_help(additional_text=problem,
+
+ if action == 'both' and '-fullscan' in source:
+ problem += (' You can only use either -fullscan together with '
+ "broken/double action or 'both' action")
+
+ if suggest_help(additional_text=fill(problem),
unknown_parameters=unknown,
missing_action=not action):
return
@@ -733,8 +739,12 @@
if gen_factory.namespaces:
gen_options['namespaces'] = gen_factory.namespaces
gen = RedirectGenerator(action, **gen_options)
- options['generator'] = gen_factory.getCombinedGenerator(gen=gen)
- bot = RedirectRobot(action, **options)
+
+ if gen_factory.gens \
+ or action != 'both' and source not in ('-fullscan', '-xml'):
+ gen = gen_factory.getCombinedGenerator(gen=gen)
+
+ bot = RedirectRobot(action, generator=gen, **options)
bot.run()



To view, visit change 904875. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: Ieffe10248a75877ee79d637bd35ad1585a17684c
Gerrit-Change-Number: 904875
Gerrit-PatchSet: 1
Gerrit-Owner: Xqt <info@gno.de>
Gerrit-Reviewer: D3r1ck01 <xsavitar.wiki@aol.com>
Gerrit-Reviewer: Xqt <info@gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged