[MediaWiki-commits] [Gerrit] code improvements - change (pywikibot/core)

2014-01-06 Thread Pyfisch (Code Review)
Pyfisch has submitted this change and it was merged.

Change subject: code improvements
..


code improvements

- check for a valid speedy deletion template on live wiki. The
  result is hold in the class container so we need to check only
  once.
- use Site instead of Site.lang as key for twn dictionaries
  this should also solve that bug pointed out at
  https://sourceforge.net/p/pywikipediabot/bugs/1577/
  i18n library uses the right code even the key would be changed
  from code to lang on twn dict in future or there might be a
  fallback from code to lang on i18n library.
- test whether we are logged in as sysop because we have no
  exception here like in compat

Change-Id: I39dd03bc04846f129ee20c7959a57e4685e87d94
---
M scripts/redirect.py
1 file changed, 29 insertions(+), 9 deletions(-)

Approvals:
  Pyfisch: Verified; Looks good to me, approved



diff --git a/scripts/redirect.py b/scripts/redirect.py
index 0487f2a..d43d0d5 100755
--- a/scripts/redirect.py
+++ b/scripts/redirect.py
@@ -379,6 +379,7 @@
 self.number = number
 self.delete = delete
 self.exiting = False
+self._valid_template = None
 
 def prompt(self, question):
 if not self.always:
@@ -393,6 +394,24 @@
 elif choice == 'a':
 self.always = True
 return True
+
+def has_valid_template(self, twtitle):
+Check whether a template from translatewiki.net does exist on real
+wiki. We assume we are always working on self.site
+
+@param twtitle - a sting which is the i18n key
+
+
+if self._valid_template is None:
+self._valid_template = False
+if i18n.twhas_key(self.site, twtitle):
+template_msg = i18n.twtranslate(self.site, twtitle)
+template = re.findall(u'.*?{{(.*?)[|}]', template_msg)
+if template:
+title = template[0]
+page = pywikibot.Page(self.site, title, ns=10)
+self._valid_template = page.exists()
+return self._valid_template
 
 def delete_broken_redirects(self):
 # get reason for deletion text
@@ -476,22 +495,23 @@
redir_page.title(asLink=True))):
 reason = i18n.twtranslate(self.site,
   'redirect-remove-broken')
-try:
+if self.site.logged_in(sysop=True):
 redir_page.delete(reason, prompt=False)
-except pywikibot.NoUsername:
-if ((i18n.twhas_key(
- targetPage.site.lang,
- 'redirect-broken-redirect-template') and
- i18n.twhas_key(targetPage.site.lang,
-'redirect-remove-broken')) or
-targetPage.site.lang == '-'):
+else:
+assert targetPage.site == self.site, (
+u'target page is on different site %s'
+% targetPage.site)
+if (self.has_valid_template(
+'redirect-broken-redirect-template') and
+i18n.twhas_key(targetPage.site,
+   'redirect-remove-broken')):
 pywikibot.output(uNo sysop in user-config.py, 
  uput page to speedy deletion.)
 content = redir_page.get(get_redirect=True)
 ### TODO: Add bot's signature if needed
 ###   Not supported via TW yet
 content = i18n.twtranslate(
-targetPage.site.lang,
+targetPage.site,
 'redirect-broken-redirect-template'
 ) + \n + content
 redir_page.put(content, reason)

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I39dd03bc04846f129ee20c7959a57e4685e87d94
Gerrit-PatchSet: 3
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Xqt i...@gno.de
Gerrit-Reviewer: Alex S.H. Lin ale...@mail2000.com.tw
Gerrit-Reviewer: DrTrigon dr.tri...@surfeu.ch
Gerrit-Reviewer: Huji huji.h...@gmail.com
Gerrit-Reviewer: Ladsgroup ladsgr...@gmail.com
Gerrit-Reviewer: Meno25 meno25m...@gmail.com
Gerrit-Reviewer: Merlijn van Deen valhall...@arctus.nl
Gerrit-Reviewer: Pyfisch pyfi...@gmail.com
Gerrit-Reviewer: Russell Blau russb...@imapmail.org
Gerrit-Reviewer: Siebrand siebr...@wikimedia.org
Gerrit-Reviewer: Xqt i...@gno.de
Gerrit-Reviewer: 

[MediaWiki-commits] [Gerrit] code improvements - change (pywikibot/core)

2014-01-01 Thread Xqt (Code Review)
Xqt has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/104811


Change subject: code improvements
..

code improvements

- check for a valid speedy deletion template on live wiki
- use Site.code instead of Site.lang as key for twn dictionaries
  this should also solve that bug pointed out at
  https://sourceforge.net/p/pywikipediabot/bugs/1577/
  (there might be a fallback from code to lang on i18n library)

Change-Id: I39dd03bc04846f129ee20c7959a57e4685e87d94
---
M scripts/redirect.py
1 file changed, 27 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core 
refs/changes/11/104811/1

diff --git a/scripts/redirect.py b/scripts/redirect.py
index 0487f2a..e64f6c5 100755
--- a/scripts/redirect.py
+++ b/scripts/redirect.py
@@ -394,6 +394,25 @@
 self.always = True
 return True
 
+def has_valid_template(self, site, twtitle):
+Check whether a template from translatewiki.net does exist on real
+wiki
+
+@param site - a site object
+@param twtitle - a sting which is the i18n key
+
+
+if not i18n.twhas_key(site, twtitle):
+return False
+template_msg = i18n.twtranslate(site, twtitle)
+template = re.findall(u'.*?{{(.*?)[|}]', template_msg)
+if not template:
+return False
+title = template[0]
+# we need the site object to verify templates on different projects
+page = pywikibot.Page(site, title, ns=10)
+return page.exists()
+
 def delete_broken_redirects(self):
 # get reason for deletion text
 for redir_name in self.generator.retrieve_broken_redirects():
@@ -476,22 +495,21 @@
redir_page.title(asLink=True))):
 reason = i18n.twtranslate(self.site,
   'redirect-remove-broken')
-try:
+if self.site.logged_in(sysop=True):
 redir_page.delete(reason, prompt=False)
-except pywikibot.NoUsername:
-if ((i18n.twhas_key(
- targetPage.site.lang,
- 'redirect-broken-redirect-template') and
- i18n.twhas_key(targetPage.site.lang,
-'redirect-remove-broken')) or
-targetPage.site.lang == '-'):
+else:
+if (self.has_valid_template(
+targetPage.site,
+'redirect-broken-redirect-template') and
+i18n.twhas_key(targetPage.site.code,
+   'redirect-remove-broken')):
 pywikibot.output(uNo sysop in user-config.py, 
  uput page to speedy deletion.)
 content = redir_page.get(get_redirect=True)
 ### TODO: Add bot's signature if needed
 ###   Not supported via TW yet
 content = i18n.twtranslate(
-targetPage.site.lang,
+targetPage.site.code,
 'redirect-broken-redirect-template'
 ) + \n + content
 redir_page.put(content, reason)

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I39dd03bc04846f129ee20c7959a57e4685e87d94
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Xqt i...@gno.de

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


[MediaWiki-commits] [Gerrit] Code improvements - change (pywikibot/core)

2013-11-11 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged.

Change subject: Code improvements
..


Code improvements

- remove obsolete threading
- call getVersionHistory() as method not as function
  because we do not need the result here and use the internal
  variable _revisions
- simplify result for isEmpty()
- change return None to return which returns None per default
- PEP8 changes

Change-Id: I8eb71790f3c762feee1ff7d86fa91eed3be72b32
---
M pywikibot/page.py
1 file changed, 98 insertions(+), 78 deletions(-)

Approvals:
  Xqt: Looks good to me, approved
  Pyfisch: Looks good to me, but someone else must approve
  jenkins-bot: Verified



diff --git a/pywikibot/page.py b/pywikibot/page.py
index ca159fd..89574f7 100644
--- a/pywikibot/page.py
+++ b/pywikibot/page.py
@@ -19,7 +19,6 @@
 import htmlentitydefs
 import logging
 import re
-import threading
 import unicodedata
 import urllib
 import collections
@@ -83,7 +82,8 @@
 self.__dict__ = source.__dict__
 if title:
 # overwrite title
-self._link = Link(title, source=source.site, 
defaultNamespace=ns)
+self._link = Link(title, source=source.site,
+  defaultNamespace=ns)
 elif isinstance(source, Link):
 self._link = source
 self._revisions = {}
@@ -141,11 +141,11 @@
 title = title + # + self._link.section
 if asLink:
 if forceInterwiki or \
-(allowInterwiki and \
-(self.site.family.name != config.family
- or self.site.code != config.mylang)):
+   (allowInterwiki and
+(self.site.family.name != config.family
+ or self.site.code != config.mylang)):
 if self.site.family.name != config.family \
-and self.site.family.name != self.site.code:
+   and self.site.family.name != self.site.code:
 return u'[[%s:%s:%s]]' % (self.site.family.name,
   self.site.code,
   title)
@@ -391,13 +391,12 @@
 
 def expand_text(self, refresh=False):
 Return the page text with all templates expanded.
-if not hasattr(self, _expanded_text) or (self._expanded_text is 
None) or refresh:
-req = pywikibot.data.api.Request(action=expandtemplates,
- text=self.text,
- 
title=self.title(withSection=False),
- site=self.site)
+if not hasattr(self, _expanded_text) or (
+self._expanded_text is None) or refresh:
+req = pywikibot.data.api.Request(
+action=expandtemplates, text=self.text,
+title=self.title(withSection=False), site=self.site)
 self._expanded_text = req.submit()[expandtemplates][*]
-
 return self._expanded_text
 
 def userName(self):
@@ -429,7 +428,7 @@
 
 def previousRevision(self):
 Return the revision id for the previous revision of this Page.
-vh = self.getVersionHistory(total=2)
+self.getVersionHistory(total=2)
 revkey = sorted(self._revisions, reverse=True)[1]
 return revkey
 
@@ -473,7 +472,8 @@
 if template.title(withNamespace=False) in catredirs:
 # Get target (first template argument)
 try:
-self._catredirect = self.site.namespace(14) + : + 
args[0].strip()
+self._catredirect = %s:%s % (self.site.namespace(14),
+   args[0].strip())
 break
 except IndexError:
 pywikibot.warning(
@@ -501,10 +501,7 @@
 txt = self.get()
 txt = pywikibot.removeLanguageLinks(txt, site=self.site)
 txt = pywikibot.removeCategoryLinks(txt, site=self.site)
-if len(txt)  4:
-return True
-else:
-return False
+return len(txt)  4
 
 def isTalkPage(self):
 Return True if this page is in any talk namespace.
@@ -523,20 +520,18 @@
 
 ns = self.namespace()
 if ns  0:  # Special page
-return None
+return
 if self.isTalkPage():
 if self.namespace() == 1:
 return Page(self.site, self.title(withNamespace=False))
 else:
-return Page(
-self.site,
-self.site.namespace(ns - 1) + ':' + 
self.title(withNamespace=False)
-)
+return Page(self.site,
+%s:%s % (self.site.namespace(ns - 1),
+   

[MediaWiki-commits] [Gerrit] Code improvements - change (pywikibot/core)

2013-11-10 Thread Xqt (Code Review)
Xqt has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/94599


Change subject: Code improvements
..

Code improvements

- remove obsolete threading
- call getVersionHistory() as method not as function
  because we do not need the result here and use the internal
  variable _revisions
- simplify result for isEmpty()
- change return None to return which returns None per default
- PEP8 changes

Change-Id: I8eb71790f3c762feee1ff7d86fa91eed3be72b32
---
M pywikibot/page.py
1 file changed, 24 insertions(+), 26 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core 
refs/changes/99/94599/1

diff --git a/pywikibot/page.py b/pywikibot/page.py
index ca159fd..0d935ad 100644
--- a/pywikibot/page.py
+++ b/pywikibot/page.py
@@ -19,7 +19,6 @@
 import htmlentitydefs
 import logging
 import re
-import threading
 import unicodedata
 import urllib
 import collections
@@ -141,11 +140,11 @@
 title = title + # + self._link.section
 if asLink:
 if forceInterwiki or \
-(allowInterwiki and \
-(self.site.family.name != config.family
- or self.site.code != config.mylang)):
+   (allowInterwiki and
+(self.site.family.name != config.family
+ or self.site.code != config.mylang)):
 if self.site.family.name != config.family \
-and self.site.family.name != self.site.code:
+   and self.site.family.name != self.site.code:
 return u'[[%s:%s:%s]]' % (self.site.family.name,
   self.site.code,
   title)
@@ -429,7 +428,7 @@
 
 def previousRevision(self):
 Return the revision id for the previous revision of this Page.
-vh = self.getVersionHistory(total=2)
+self.getVersionHistory(total=2)
 revkey = sorted(self._revisions, reverse=True)[1]
 return revkey
 
@@ -473,7 +472,8 @@
 if template.title(withNamespace=False) in catredirs:
 # Get target (first template argument)
 try:
-self._catredirect = self.site.namespace(14) + : + 
args[0].strip()
+self._catredirect = %s:%s % (self.site.namespace(14),
+   args[0].strip())
 break
 except IndexError:
 pywikibot.warning(
@@ -501,10 +501,7 @@
 txt = self.get()
 txt = pywikibot.removeLanguageLinks(txt, site=self.site)
 txt = pywikibot.removeCategoryLinks(txt, site=self.site)
-if len(txt)  4:
-return True
-else:
-return False
+return len(txt)  4
 
 def isTalkPage(self):
 Return True if this page is in any talk namespace.
@@ -523,7 +520,7 @@
 
 ns = self.namespace()
 if ns  0:  # Special page
-return None
+return
 if self.isTalkPage():
 if self.namespace() == 1:
 return Page(self.site, self.title(withNamespace=False))
@@ -854,15 +851,15 @@
 family = self.site.family.name
 config.cosmetic_changes_disable.update({'wikidata': ('repo', )})
 if config.cosmetic_changes_mylang_only:
-cc = (family == config.family and \
-  self.site.lang == config.mylang) or \
-family in config.cosmetic_changes_enable.keys() and \
-self.site.lang in config.cosmetic_changes_enable[family]
+cc = ((family == config.family and
+   self.site.lang == config.mylang) or
+  family in config.cosmetic_changes_enable.keys() and
+  self.site.lang in config.cosmetic_changes_enable[family])
 else:
 cc = True
-cc = cc and not \
-(family in config.cosmetic_changes_disable.keys() and \
- self.site.lang in config.cosmetic_changes_disable[family])
+cc = (cc and not
+  (family in config.cosmetic_changes_disable.keys() and
+   self.site.lang in config.cosmetic_changes_disable[family]))
 if not cc:
 return
 old = self.text
@@ -876,7 +873,8 @@
pageTitle=self.title())
 self.text = ccToolkit.change(old)
 if comment and \
-   old.strip().replace('\r\n', '\n') != 
self.text.strip().replace('\r\n', '\n'):
+   old.strip().replace('\r\n',
+   '\n') != self.text.strip().replace('\r\n', 
'\n'):
 comment += i18n.twtranslate(self.site, 'cosmetic_changes-append')
 return comment
 
@@ -1342,8 +1340,8 @@
 if not hasattr(self, _deletedRevs):