jenkins-bot has submitted this change and it was merged.

Change subject: Namespace filtering in replace.py
......................................................................


Namespace filtering in replace.py

The namespace filtering (-namespace, -ns) was broken in core for
replace.py, leading to changes intended for one (or more) namespace(s)
bleeding into others.

This commit reintroduces the logic from the compat tree.

This commmit also removes the redundant handling of -page/PageTitles;
that argument is handled by pagegenerators.

Bug: 57303

Change-Id: I05845e6962fbae92719e2a128bb93de6044c2ed5
---
M pywikibot/pagegenerators.py
M scripts/replace.py
2 files changed, 7 insertions(+), 13 deletions(-)

Approvals:
  John Vandenberg: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/pywikibot/pagegenerators.py b/pywikibot/pagegenerators.py
index 025c732..b525839 100644
--- a/pywikibot/pagegenerators.py
+++ b/pywikibot/pagegenerators.py
@@ -208,11 +208,15 @@
         if self.site is None:
             self.site = pywikibot.Site()
 
-    def getCombinedGenerator(self):
+    def getCombinedGenerator(self, gen=None):
         """Return the combination of all accumulated generators.
 
         Only call this after all arguments have been parsed.
         """
+
+        if gen:
+            self.gens.insert(0, gen)
+
         namespaces = [int(n) for n in self.namespaces]
         for i in range(len(self.gens)):
             if isinstance(self.gens[i], pywikibot.data.api.QueryGenerator):
diff --git a/scripts/replace.py b/scripts/replace.py
index 75b0ccf..d109a36 100755
--- a/scripts/replace.py
+++ b/scripts/replace.py
@@ -464,7 +464,6 @@
     # if -xml flag is present
     xmlFilename = None
     useSql = False
-    PageTitles = []
     # will become True when the user presses a ('yes to all') or uses the
     # -always flag.
     acceptall = False
@@ -505,12 +504,6 @@
                 xmlFilename = arg[5:]
         elif arg == '-sql':
             useSql = True
-        elif arg.startswith('-page'):
-            if len(arg) == 5:
-                PageTitles.append(pywikibot.input(
-                    u'Which page do you want to change?'))
-            else:
-                PageTitles.append(arg[6:])
         elif arg.startswith('-excepttitle:'):
             exceptions['title'].append(arg[13:])
         elif arg.startswith('-requiretitle:'):
@@ -545,7 +538,6 @@
         else:
             commandline_replacements.append(arg)
     pywikibot.Site().login()
-    gen = genFactory.getCombinedGenerator()
     if (len(commandline_replacements) % 2):
         raise pywikibot.Error('require even number of replacements.')
     elif (len(commandline_replacements) == 2 and fix is None):
@@ -677,10 +669,8 @@
 %s
 LIMIT 200""" % (whereClause, exceptClause)
         gen = pagegenerators.MySQLPageGenerator(query)
-    elif PageTitles:
-        pages = [pywikibot.Page(pywikibot.Site(), PageTitle)
-                 for PageTitle in PageTitles]
-        gen = iter(pages)
+
+    gen = genFactory.getCombinedGenerator(gen)
 
     if not gen:
         # syntax error, show help text from the top of this file

-- 
To view, visit https://gerrit.wikimedia.org/r/150265
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I05845e6962fbae92719e2a128bb93de6044c2ed5
Gerrit-PatchSet: 6
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Bep <bjorn.erik.peder...@gmail.com>
Gerrit-Reviewer: John Vandenberg <jay...@gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgr...@gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhall...@arctus.nl>
Gerrit-Reviewer: Mpaa <mpaa.w...@gmail.com>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to