jenkins-bot has submitted this change and it was merged.
Change subject: (bug 54540) Allow specifying a custom site in GeneratorFactory
......................................................................
(bug 54540) Allow specifying a custom site in GeneratorFactory
patch submitted by gallaecio
Change-Id: I1970b95caad1dbdf62a29a2bcb022672477fa148
---
M pywikibot/pagegenerators.py
1 file changed, 16 insertions(+), 14 deletions(-)
Approvals:
Merlijn van Deen: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/pagegenerators.py b/pywikibot/pagegenerators.py
index b146d6a..df3068e 100644
--- a/pywikibot/pagegenerators.py
+++ b/pywikibot/pagegenerators.py
@@ -192,12 +192,15 @@
This factory is responsible for processing command line arguments
that are used by many scripts and that determine which pages to work on.
"""
- def __init__(self):
+ def __init__(self, site=None):
self.gens = []
self.namespaces = []
self.step = None
self.limit = None
self.articlefilter = None
+ self.site = site
+ if self.site is None:
+ self.site = pywikibot.Site()
def getCombinedGenerator(self):
"""Return the combination of all accumulated generators.
@@ -280,19 +283,18 @@
arguments have been parsed to get the final output generator.
"""
- site = pywikibot.getSite()
gen = None
if arg.startswith('-filelinks'):
fileLinksPageTitle = arg[11:]
if not fileLinksPageTitle:
fileLinksPageTitle = i18n.input(
'pywikibot-enter-file-links-processing')
- if fileLinksPageTitle.startswith(site.namespace(6)
+ if fileLinksPageTitle.startswith(self.site.namespace(6)
+ ":"):
- fileLinksPage = pywikibot.ImagePage(site,
+ fileLinksPage = pywikibot.ImagePage(self.site,
fileLinksPageTitle)
else:
- fileLinksPage = pywikibot.ImagePage(site,
+ fileLinksPage = pywikibot.ImagePage(self.site,
'Image:' +
fileLinksPageTitle)
gen = FileLinksGenerator(fileLinksPage)
@@ -318,7 +320,7 @@
if not title:
title = i18n.input('pywikibot-enter-page-processing')
page = pywikibot.Page(pywikibot.Link(title,
- pywikibot.Site()))
+ self.site))
gen = InterwikiPageGenerator(page)
elif arg.startswith('-randomredirect'):
if len(arg) == 15:
@@ -384,11 +386,11 @@
pywikibot.Link(
pywikibot.input(
u'What page do you want to use?'),
- pywikibot.getSite())
+ self.site)
)]
else:
gen = [pywikibot.Page(pywikibot.Link(arg[len('-page:'):],
- pywikibot.getSite())
+ self.site)
)]
elif arg.startswith('-uncatfiles'):
gen = UnCategorizedImageGenerator()
@@ -402,7 +404,7 @@
referredPageTitle = pywikibot.input(
u'Links to which page should be processed?')
referredPage = pywikibot.Page(pywikibot.Link(referredPageTitle,
- pywikibot.Site()))
+ self.site))
gen = ReferringPageGenerator(referredPage)
elif arg.startswith('-links'):
linkingPageTitle = arg[7:]
@@ -410,7 +412,7 @@
linkingPageTitle = pywikibot.input(
u'Links from which page should be processed?')
linkingPage = pywikibot.Page(pywikibot.Link(linkingPageTitle,
- pywikibot.Site()))
+ self.site))
gen = LinkedPageGenerator(linkingPage)
elif arg.startswith('-weblink'):
url = arg[9:]
@@ -426,7 +428,7 @@
transclusionPage = pywikibot.Page(
pywikibot.Link(transclusionPageTitle,
defaultNamespace=10,
- source=pywikibot.Site()))
+ source=self.site))
gen = ReferringPageGenerator(transclusionPage,
onlyTemplateInclusion=True)
elif arg.startswith('-start'):
@@ -435,7 +437,7 @@
firstPageTitle = pywikibot.input(
u'At which page do you want to start?')
firstpagelink = pywikibot.Link(firstPageTitle,
- pywikibot.Site())
+ self.site)
namespace = firstpagelink.namespace
firstPageTitle = firstpagelink.title
gen = AllpagesPageGenerator(firstPageTitle, namespace,
@@ -462,7 +464,7 @@
imagelinkstitle = pywikibot.input(
u'Images on which page should be processed?')
imagelinksPage = pywikibot.Page(pywikibot.Link(imagelinkstitle,
- pywikibot.Site()))
+ self.site))
gen = ImagesPageGenerator(imagelinksPage)
elif arg.startswith('-search'):
mediawikiQuery = arg[8:]
@@ -478,7 +480,7 @@
regex = pywikibot.input(u'What page names are you looking for?')
else:
regex = arg[12:]
- gen = RegexFilterPageGenerator(pywikibot.Site().allpages(), regex)
+ gen = RegexFilterPageGenerator(self.site.allpages(), regex)
elif arg.startswith('-grep'):
if len(arg) == 5:
self.articlefilter = pywikibot.input(u'Which pattern do you want to
grep?')
--
To view, visit
https://gerrit.wikimedia.org/r/112436
To unsubscribe, visit
https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I1970b95caad1dbdf62a29a2bcb022672477fa148
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Xqt <info(a)gno.de>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Pyfisch <pyfisch(a)gmail.com>
Gerrit-Reviewer: Russell Blau <russblau(a)imapmail.org>
Gerrit-Reviewer: jenkins-bot <>