Revision: 4806
Author: rotem
Date: 2008-01-05 11:32:31 +0000 (Sat, 05 Jan 2008)
Log Message:
-----------
Using get() to check the move restriction if necessary, instead of doing a duplicate query; adding Hebrew translation; several code fixes.
Modified Paths:
--------------
trunk/pywikipedia/blockpageschecker.py
Modified: trunk/pywikipedia/blockpageschecker.py
===================================================================
--- trunk/pywikipedia/blockpageschecker.py 2008-01-05 11:00:10 UTC (rev 4805)
+++ trunk/pywikipedia/blockpageschecker.py 2008-01-05 11:32:31 UTC (rev 4806)
@@ -55,10 +55,11 @@
templateToRemove = {
'en':[r'\{\{(?:[Tt]emplate:|)[Pp]p-protected\}\}', r'{\{([Tt]emplate:|)[Pp]p-dispute\}\}',
r'{\{(?:[Tt]emplate:|)[Pp]p-template\}\}', r'{\{([Tt]emplate:|)[Pp]p-usertalk\}\}'],
- 'fr':[r'\{\{(?:[Tt]emplate:|[Mm]odèle:|)[Pp]rotection(|[^\}]*)\}\}',
+ 'fr':[r'\{\{(?:[Tt]emplate:|[Mm]odèle:|)[Pp]rotection(|[^\}]*)\}\}',
r'\{\{(?:[Tt]emplate:|[Mm]odèle:|)(?:[Pp]age|[Aa]rchive|[Mm]odèle) protégée?\}\}',
r'\{\{(?:[Tt]emplate:|[Mm]odèle:|)[Ss]emi[- ]?protection\}\}'
],
+ 'he':[ur'\{\{(?:[Tt]emplate:|תבנית:|)מוגן(?: חלקית)?(?:\|?.*)\}\}'],
'it':[r'{\{(?:[Tt]emplate:|)[Aa]vvisobloccoparziale(?:|[ _]scad\|.*?|\|.*?)\}\}',
r'{\{(?:[Tt]emplate:|)[Aa]vvisoblocco(?:|[ _]scad\|(?:.*?))\}\}',
r'{\{(?:[Tt]emplate:|)[Aa]bp(?:|[ _]scad\|(?:.*?))\}\}'],
@@ -70,6 +71,7 @@
categoryToCheck = {
'en':[u'Category:Protected'],
'fr':[u'Category:Page semi-protégée', u'Category:Page protégée'],
+ 'he':[u'קטגוריה:ויקיפדיה: דפים מוגנים', u'קטגוריה:ויקיפדיה: דפים מוגנים חלקית'],
'it':[u'Categoria:Pagine semiprotette', u'Categoria:Voci_protette'],
'ja':[u'Category:編集保護中の記事',u'Category:編集半保護中の記事',
u'Category:移動保護中の記事',],
@@ -80,6 +82,7 @@
comment = {
'en':u'Bot: Deleting out-dated template',
'fr':u'Robot: Retrait du bandeau protection/semi-protection d\'une page qui ne l\'es plus',
+ 'he':u'בוט: מסיר תבנית שעבר זמנה',
'it':u'Bot: Tolgo template di avviso blocco scaduto',
'ja':u'ロボットによる: 保護テンプレート削除',
'zh':u'機器人: 移除過期的保護模板',
@@ -91,17 +94,6 @@
#------------------ END PREFERENCES ------------------#
################## -- Edit above! -- ##################
-def moveBlockChecker(page, site):
- """ Function to check if a page is protected or not to move """
- urlText = site.getUrl('/w/api.php?action=query&prop=info&inprop=protection&titles=%s' % page.urlname())
- res = re.findall(r'<pr type="move" level="(.*?)&', urlText)
- if res == []:
- return 'editable'
- elif res != [] and res[0] == 'autoconfirmed':
- return 'autoconfirmed'
- else:
- return 'sysop'
-
def main():
# Loading the comments
global templateToRemove; global categoryToCheck; global comment; global project_inserted
@@ -150,26 +142,27 @@
pagename = page.title()
wikipedia.output('Loading %s...' % pagename)
try:
- # The same as .get() but it loads also the editRestriction var, that's what we
- # need to understand if the page is protected or not.
- (text, useless, editRestriction) = page._getEditPage()
+ text = page.get()
+ editRestriction = page.editRestriction
+ moveRestriction = page.moveRestriction
except wikipedia.NoPage:
wikipedia.output("%s doesn't exist! Skipping..." % pagename)
continue
except wikipedia.IsRedirectPage:
wikipedia.output("%s is a redirect! Skipping..." % pagename)
continue
- if moveBlockCheck == True and editRestriction != 'sysop'and editRestriction != 'autoconfirmed':
- editRestriction = moveBlockChecker(page, site)
- if editRestriction != 'editable':
- wikipedia.output(u'The page is protected to move (to %s), skipping...' % editRestriction)
- continue
if editRestriction == 'sysop':
wikipedia.output(u'The page is protected to the sysop, skipping...')
continue
+ elif moveBlockCheck and moveRestriction == 'sysop':
+ wikipedia.output(u'The page is protected from moving to the sysop, skipping...')
+ continue
elif editRestriction == 'autoconfirmed':
wikipedia.output(u'The page is editable only for the autoconfirmed users, skipping...')
continue
+ elif moveBlockCheck and moveRestriction == 'autoconfirmed':
+ wikipedia.output(u'The page is movable only for the autoconfirmed users, skipping...')
+ continue
else:
wikipedia.output(u'The page is editable for all, deleting the template...')
# Only to see if the text is the same or not...