Revision: 4902
Author: russblau
Date: 2008-01-16 16:28:03 +0000 (Wed, 16 Jan 2008)
Log Message:
-----------
Fix remaining-time bug by using put_throttle.getDelay() instead of config.put_throttle; also suppress some debug messages and remove some unneeded code.
Modified Paths:
--------------
trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/wikipedia.py
===================================================================
--- trunk/pywikipedia/wikipedia.py 2008-01-16 16:03:43 UTC (rev 4901)
+++ trunk/pywikipedia/wikipedia.py 2008-01-16 16:28:03 UTC (rev 4902)
@@ -347,46 +347,46 @@
t = m.group(2)
self._namespace = ns
break
- else:
- if lowerNs in self.site().family.langs.keys():
- # Interwiki link
- t = m.group(2)
- # Redundant interwiki prefix to the local wiki
- if lowerNs == self.site().lang:
- if t == '':
- raise Error("Can't have an empty self-link")
- else:
- self._site = getSite(lowerNs, self.site().family.name)
+ if lowerNs in self.site().family.langs.keys():
+ # Interwiki link
+ t = m.group(2)
- # If there's an initial colon after the interwiki, that also
- # resets the default namespace
- if t != '' and t[0] == ':':
- self._namespace = 0
- t = t[1:]
- elif lowerNs in self.site().family.get_known_families(site = self.site()):
- if self.site().family.get_known_families(site = self.site())[lowerNs] == self.site().family.name:
- t = m.group(2)
- else:
- # This page is from a different family
+ # Redundant interwiki prefix to the local wiki
+ if lowerNs == self.site().lang:
+ if t == '':
+ raise Error("Can't have an empty self-link")
+ else:
+ self._site = getSite(lowerNs, self.site().family.name)
+
+ # If there's an initial colon after the interwiki, that also
+ # resets the default namespace
+ if t != '' and t[0] == ':':
+ self._namespace = 0
+ t = t[1:]
+ elif lowerNs in self.site().family.get_known_families(site = self.site()):
+ if self.site().family.get_known_families(site = self.site())[lowerNs] == self.site().family.name:
+ t = m.group(2)
+ else:
+ # This page is from a different family
+ if verbose:
output(u"Target link '%s' has different family '%s'" % (title, lowerNs))
- otherlang = self.site().lang
- familyName = self.site().family.get_known_families(site = self.site())[lowerNs]
- if familyName in ['commons', 'meta']:
- otherlang = familyName
- try:
- self._site = getSite(otherlang, familyName)
- except ValueError:
- raise NoPage("""\
+ otherlang = self.site().lang
+ familyName = self.site().family.get_known_families(site = self.site())[lowerNs]
+ if familyName in ['commons', 'meta']:
+ otherlang = familyName
+ try:
+ self._site = getSite(otherlang, familyName)
+ except ValueError:
+ raise NoPage("""\
%s is not a local page on %s, and the %s family is
not supported by PyWikipediaBot!"""
- % (title, self.site(), familyName))
- t = m.group(2)
- else:
- # If there's no recognized interwiki or namespace,
- # then let the colon expression be part of the title.
- break
- continue
+ % (title, self.site(), familyName))
+ t = m.group(2)
+ else:
+ # If there's no recognized interwiki or namespace,
+ # then let the colon expression be part of the title.
+ break
sectionStart = t.find(u'#')
if sectionStart >= 0:
@@ -420,11 +420,12 @@
except NoSuchSite:
raise
except:
- output(u"Exception in Page constructor")
- output(
- u"site=%s, title=%s, insite=%s, defaultNamespace=%i"
- % (site, title, insite, defaultNamespace)
- )
+ if verbose:
+ output(u"Exception in Page constructor")
+ output(
+ u"site=%s, title=%s, insite=%s, defaultNamespace=%i"
+ % (site, title, insite, defaultNamespace)
+ )
raise
def site(self):
@@ -5680,24 +5681,29 @@
Called automatically upon exiting from Python.
"""
- if page_put_queue.qsize() > 0:
+ def remaining():
import datetime
- remaining = datetime.timedelta(
- seconds = page_put_queue.qsize() * config.put_throttle)
- output(u'Waiting for %i pages to be put. Estimated time remaining: %s'
- % (page_put_queue.qsize(), remaining))
+ remainingPages = page_put_queue.qsize() - 1
+ # -1 because we added a None element to stop the queue
+ remainingSeconds = datetime.timedelta(
+ seconds=(remainingPages * put_throttle.getDelay()))
+ return (remainingPages, remainingSeconds)
page_put_queue.put((None, None, None, None, None, None, None))
+ if page_put_queue.qsize() > 1:
+ output(u'Waiting for %i pages to be put. Estimated time remaining: %s'
+ % remaining())
+
while(_putthread.isAlive()):
try:
_putthread.join(1)
except KeyboardInterrupt:
- remainingPages = page_put_queue.qsize() - 1 # -1 because we added a None element to stop the queue
- remainingSeconds = datetime.timedelta(seconds=(page_put_queue.qsize()) * config.put_throttle)
- answer = inputChoice(u'There are %i pages remaining in the queue. Estimated time remaining: %s\nReally exit?'
- % (remainingPages, remainingSeconds),
- ['yes', 'no'], ['y', 'N'], 'N')
+ answer = inputChoice(u"""\
+There are %i pages remaining in the queue. Estimated time remaining: %s
+Really exit?"""
+ % remaining(),
+ ['yes', 'no'], ['y', 'N'], 'N')
if answer == 'y':
return
try: