jenkins-bot has submitted this change and it was merged.
Change subject: handleArgs: Reformat the regex for version to not break on old git versions
......................................................................
handleArgs: Reformat the regex for version to not break on old git versions
On at least Git 1.7.0.4 `git checkout -- pywikibot/bot.py` still results in
those two lines getting automatically changed to
m = re.search(r"\$Id$", ver)
when using `git diff` and
m = re.search(r"\$Id: blob-object-name", ver)
in the file itself.
This breaks further code because the regular expession doesn't match
pywikibot.__version__ and thus `m` is None but is used by the code later on as
if it were not None.
This seems to have been fixed in later git versions (at least 1.7.9.5 and 1.8.4
don't show this behaviour).
Change-Id: If3ddc5c86c8ef2f9214f367eed3634f708c8a440
---
M pywikibot/bot.py
1 file changed, 7 insertions(+), 2 deletions(-)
Approvals:
Merlijn van Deen: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/bot.py b/pywikibot/bot.py
index 508bb7f..8aaa050 100644
--- a/pywikibot/bot.py
+++ b/pywikibot/bot.py
@@ -643,8 +643,13 @@
if config.verbose_output:
import re
ver = pywikibot.__version__ # probably can be improved on
- m = re.search(r"\$Id: (\w+) "
- r"\$", ver)
+ # Please don't change the regular expression here unless you really
+ # have to - some git versions (like 1.7.0.4) seem to treat lines
+ # containing just `$Id:` as if they were ident lines (see
+ # gitattributes(5)) leading to unwanted behaviour like automatic
+ # replacement with `$Id$` or `$Id$`.
+ m = re.search(r"\$Id"
+ r": (\w+) \$", ver)
pywikibot.output(u'Pywikipediabot r%s' % m.group(1))
pywikibot.output(u'Python %s' % sys.version)
--
To view, visit https://gerrit.wikimedia.org/r/81575
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: If3ddc5c86c8ef2f9214f367eed3634f708c8a440
Gerrit-PatchSet: 2
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Mineo <themineo(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Legoktm <legoktm.wikipedia(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: jenkins-bot
jenkins-bot has submitted this change and it was merged.
Change subject: Implement RandomPageGenerator and RandomRedirectPageGenerator
......................................................................
Implement RandomPageGenerator and RandomRedirectPageGenerator
Also implemented deprecated methods from compat in the Site class.
Bug: https://sourceforge.net/p/pywikipediabot/feature-requests/339/
Change-Id: Ie1ae30578fd3bf415bf38a19f7caf00a822f96c1
---
M pywikibot/pagegenerators.py
M pywikibot/site.py
2 files changed, 44 insertions(+), 1 deletion(-)
Approvals:
Merlijn van Deen: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/pagegenerators.py b/pywikibot/pagegenerators.py
index c6e8c7d..d04b2f9 100644
--- a/pywikibot/pagegenerators.py
+++ b/pywikibot/pagegenerators.py
@@ -94,6 +94,14 @@
-newpages Work on the most recent new pages. If given as -newpages:x,
will work on the x newest pages.
+-random Work on random pages returned by [[Special:Random]]
+ Can also be given as "-random:n" where n is the number
+ of pages to be returned, otherwise the default is 10 pages.
+
+-randomredirect Work on random redirect pages returned by [[Special:RandomRedirect]].
+ Can also be given as "-randomredirect:n" where n is the number
+ of pages to be returned, else 10 pages are returned.
+
-recentchanges Work on the pages with the most recent changes. If
given as -recentchanges:x, will work on the x most recently
changed pages.
@@ -285,6 +293,16 @@
page = pywikibot.Page(pywikibot.Link(title,
pywikibot.Site()))
gen = InterwikiPageGenerator(page)
+ elif arg.startswith('-random'):
+ if len(arg) == 7:
+ gen = RandomPageGenerator()
+ else:
+ gen = RandomPageGenerator(number=int(arg[8:]))
+ elif arg.startswith('-randomredirect'):
+ if len(arg) == 15:
+ gen = RandomRedirectPageGenerator()
+ else:
+ gen = RandomRedirectPageGenerator(number=int(arg[16:]))
elif arg.startswith('-recentchanges'):
if len(arg) >= 15:
gen = RecentChangesPageGenerator(total=int(arg[15:]))
@@ -912,6 +930,19 @@
yield page
+def RandomPageGenerator(number=10, site=None):
+ if site is None:
+ site = pywikibot.Site()
+ for page in site.randompages(total=number):
+ yield page
+
+def RandomRedirectPageGenerator(number=10, site=None):
+ if site is None:
+ site = pywikibot.Site()
+ for page in site.randompages(total=number, redirects=True):
+ yield page
+
+
def LinksearchPageGenerator(link, namespaces=None, step=None, total=None,
site=None):
"""Yields all pages that include a specified link, according to
diff --git a/pywikibot/site.py b/pywikibot/site.py
index 8f8c217..822573b 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -2527,7 +2527,19 @@
)
return usgen
- def randompages(self, step=None, total=1, namespaces=None,
+ @deprecated("Site.randompages()")
+ def randompage(self, redirect=False):
+ """
+ @param redirect: Return a random redirect page
+ @return: pywikibot.Page
+ """
+ return self.randompages(total=1, redirects=redirect)
+
+ @deprecated("Site.randompages()")
+ def randomredirectpage(self):
+ return self.randompages(total=1, redirects=True)
+
+ def randompages(self, step=None, total=10, namespaces=None,
redirects=False, content=False):
"""Iterate a number of random pages.
--
To view, visit https://gerrit.wikimedia.org/r/81508
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ie1ae30578fd3bf415bf38a19f7caf00a822f96c1
Gerrit-PatchSet: 2
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Legoktm <legoktm.wikipedia(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: jenkins-bot
jenkins-bot has submitted this change and it was merged.
Change subject: Process template redirects correctly
......................................................................
Process template redirects correctly
Also strip the template parameters so any whitespace
doesn't get in the way. Minor PEP8 fixes too.
Change-Id: I04206f6ebd901d649ff9c12d49e8e7f37f2f8d6d
---
M scripts/harvest_template.py
1 file changed, 20 insertions(+), 3 deletions(-)
Approvals:
Merlijn van Deen: Looks good to me, approved
jenkins-bot: Verified
diff --git a/scripts/harvest_template.py b/scripts/harvest_template.py
index d4bef05..2bc5ace 100755
--- a/scripts/harvest_template.py
+++ b/scripts/harvest_template.py
@@ -49,9 +49,9 @@
self.setSource(pywikibot.Site().language())
def setSource(self, lang):
- '''
+ """
Get the source
- '''
+ """
page = pywikibot.Page(self.repo, 'Wikidata:List of wikis/python')
source_values = json.loads(page.get())
source_values = source_values['wikipedia']
@@ -66,8 +66,23 @@
"""
Starts the robot.
"""
+ self.templateTitles = self.getTemplateSynonyms(self.templateTitle)
for page in self.generator:
self.procesPage(page)
+
+ def getTemplateSynonyms(self, title):
+ """
+ Fetches redirects of the title, so we can check against them
+ """
+ pywikibot.output('Finding redirects...') # Put some output here since it can take a while
+ temp = pywikibot.Page(pywikibot.Site(), title, ns=10)
+ if temp.isRedirectPage():
+ temp = temp.getRedirectTarget()
+ titles = [page.title(withNamespace=False)
+ for page
+ in temp.getReferences(redirectsOnly=True, namespaces=[10], follow_redirects=False)]
+ titles.append(temp.title(withNamespace=False))
+ return titles
def procesPage(self, page):
"""
@@ -83,8 +98,10 @@
templates = pywikibot.extract_templates_and_params(pagetext)
for (template, fielddict) in templates:
# We found the template we were looking for
- if template.replace(u'_', u' ') == self.templateTitle:
+ if template.replace(u'_', u' ') in self.templateTitles:
for field, value in fielddict.items():
+ field = field.strip()
+ value = value.strip()
# This field contains something useful for us
if field in self.fields:
# Check if the property isn't already set
--
To view, visit https://gerrit.wikimedia.org/r/81022
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I04206f6ebd901d649ff9c12d49e8e7f37f2f8d6d
Gerrit-PatchSet: 4
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Legoktm <legoktm.wikipedia(a)gmail.com>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Legoktm <legoktm.wikipedia(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Multichill <maarten(a)mdammers.nl>
Gerrit-Reviewer: jenkins-bot
jenkins-bot has submitted this change and it was merged.
Change subject: change 'lastrevid' to 'baserevid' in API calls
......................................................................
change 'lastrevid' to 'baserevid' in API calls
Currently, Site.changeClaimTarget is throwing an API warning: "Unrecognized parameter: 'lastrevid'"; just changing four characters solve the issue.
Also changed in editSource, as it already is in Site.removeClaims.
Change-Id: Iaf8a1405694cb7367916a72f54e0b53ededdfe27
---
M pywikibot/site.py
1 file changed, 2 insertions(+), 2 deletions(-)
Approvals:
Legoktm: Looks good to me, approved
jenkins-bot: Verified
diff --git a/pywikibot/site.py b/pywikibot/site.py
index 8f8c217..11f9baa 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -3510,7 +3510,7 @@
if snaktype == 'value':
params['value'] = json.dumps(claim._formatDataValue())
- params['lastrevid'] = claim.on_item.lastrevid
+ params['baserevid'] = claim.on_item.lastrevid
req = api.Request(site=self, **params)
data = req.submit()
return data
@@ -3557,7 +3557,7 @@
}
params['snaks'] = json.dumps(snak)
for arg in kwargs:
- if arg in ['bot', 'lastrevid', 'summary']:
+ if arg in ['bot', 'baserevid', 'summary']:
params[arg] = kwargs[arg]
req = api.Request(site=self, **params)
--
To view, visit https://gerrit.wikimedia.org/r/81484
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Iaf8a1405694cb7367916a72f54e0b53ededdfe27
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Ricordisamoa <ricordisamoa(a)live.it>
Gerrit-Reviewer: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: Legoktm <legoktm.wikipedia(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Ricordisamoa <ricordisamoa(a)live.it>
Gerrit-Reviewer: jenkins-bot
jenkins-bot has submitted this change and it was merged.
Change subject: Adding user-config.py.sample like what has been done in core
......................................................................
Adding user-config.py.sample like what has been done in core
Change-Id: Id6487f59d4a071883c95b7d878f3f57bab0eb3e3
---
A user-config.py.sample
1 file changed, 8 insertions(+), 0 deletions(-)
Approvals:
Legoktm: Looks good to me, approved
jenkins-bot: Verified
diff --git a/user-config.py.sample b/user-config.py.sample
new file mode 100644
index 0000000..f65f7f7
--- /dev/null
+++ b/user-config.py.sample
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+
+# This is a sample file. You should use generate_user_files.py
+# to create your user-config.py file.
+
+mylang = 'en'
+family = 'wikipedia'
+usernames['wikipedia']['en'] = 'Test'
--
To view, visit https://gerrit.wikimedia.org/r/81495
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Id6487f59d4a071883c95b7d878f3f57bab0eb3e3
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/compat
Gerrit-Branch: master
Gerrit-Owner: Ladsgroup <ladsgroup(a)gmail.com>
Gerrit-Reviewer: DrTrigon <dr.trigon(a)surfeu.ch>
Gerrit-Reviewer: Legoktm <legoktm.wikipedia(a)gmail.com>
Gerrit-Reviewer: Merlijn van Deen <valhallasw(a)arctus.nl>
Gerrit-Reviewer: Multichill <maarten(a)mdammers.nl>
Gerrit-Reviewer: Xqt <info(a)gno.de>
Gerrit-Reviewer: jenkins-bot