Revision: 6541 Author: nicdumz Date: 2009-03-24 01:40:51 +0000 (Tue, 24 Mar 2009)
Log Message: ----------- Proper indenting
Modified Paths: -------------- trunk/pywikipedia/login.py trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/login.py =================================================================== --- trunk/pywikipedia/login.py 2009-03-24 01:15:50 UTC (rev 6540) +++ trunk/pywikipedia/login.py 2009-03-24 01:40:51 UTC (rev 6541) @@ -72,25 +72,25 @@ class LoginManager: def __init__(self, password = None, sysop = False, site = None, username=None, verbose=False): self.site = site or wikipedia.getSite() - if username: - self.username=username - # perform writeback. - if site.family.name not in config.usernames: - config.usernames[site.family.name]={} - config.usernames[site.family.name][self.site.lang]=username - else: - if sysop: - try: - self.username = config.sysopnames[self.site.family.name][self.site.lang] - except: - raise wikipedia.NoUsername(u'ERROR: Sysop username for %s:%s is undefined.\nIf you have a sysop account for that site, please add such a line to user-config.py:\n\nsysopnames['%s']['%s'] = 'myUsername'' % (self.site.family.name, self.site.lang, self.site.family.name, self.site.lang)) + if username: + self.username=username + # perform writeback. + if site.family.name not in config.usernames: + config.usernames[site.family.name]={} + config.usernames[site.family.name][self.site.lang]=username else: - try: - self.username = config.usernames[self.site.family.name][self.site.lang] - except: - raise wikipedia.NoUsername(u'ERROR: Username for %s:%s is undefined.\nIf you have an account for that site, please add such a line to user-config.py:\n\nusernames['%s']['%s'] = 'myUsername'' % (self.site.family.name, self.site.lang, self.site.family.name, self.site.lang)) - self.password = password - self.verbose = verbose + if sysop: + try: + self.username = config.sysopnames[self.site.family.name][self.site.lang] + except: + raise wikipedia.NoUsername(u'ERROR: Sysop username for %s:%s is undefined.\nIf you have a sysop account for that site, please add such a line to user-config.py:\n\nsysopnames['%s']['%s'] = 'myUsername'' % (self.site.family.name, self.site.lang, self.site.family.name, self.site.lang)) + else: + try: + self.username = config.usernames[self.site.family.name][self.site.lang] + except: + raise wikipedia.NoUsername(u'ERROR: Username for %s:%s is undefined.\nIf you have an account for that site, please add such a line to user-config.py:\n\nusernames['%s']['%s'] = 'myUsername'' % (self.site.family.name, self.site.lang, self.site.family.name, self.site.lang)) + self.password = password + self.verbose = verbose if getattr(config, 'password_file', ''): self.readPassword()
@@ -142,50 +142,50 @@ login_address = self.site.login_address() address = login_address + '&action=submit'
- if self.site.hostname() in config.authenticate.keys(): + if self.site.hostname() in config.authenticate.keys(): headers = { "Content-type": "application/x-www-form-urlencoded", "User-agent": wikipedia.useragent } data = self.site.urlEncode(predata) - if self.verbose: - fakepredata = predata - fakepredata['wpPassword'] = u'XXXX' - wikipedia.output(u"urllib2.urlopen(urllib2.Request('%s', %s, %s)):" % (self.site.protocol() + '://' + self.site.hostname() + address, self.site.urlEncode(fakepredata), headers)) + if self.verbose: + fakepredata = predata + fakepredata['wpPassword'] = u'XXXX' + wikipedia.output(u"urllib2.urlopen(urllib2.Request('%s', %s, %s)):" % (self.site.protocol() + '://' + self.site.hostname() + address, self.site.urlEncode(fakepredata), headers)) response = urllib2.urlopen(urllib2.Request(self.site.protocol() + '://' + self.site.hostname() + address, data, headers)) data = response.read() - if self.verbose: - fakedata = re.sub(r"(session|Token)=..........", r"session=XXXXXXXXXX", data) - trans = config.transliterate - config.transliterate = False #transliteration breaks for some reason - wikipedia.output(data.decode(self.site.encoding())) - config.transliterate = trans + if self.verbose: + fakedata = re.sub(r"(session|Token)=..........", r"session=XXXXXXXXXX", data) + trans = config.transliterate + config.transliterate = False #transliteration breaks for some reason + wikipedia.output(fakedata.decode(self.site.encoding())) + config.transliterate = trans wikipedia.cj.save(wikipedia.COOKIEFILE) return "Ok" else: response, data = self.site.postData(address, self.site.urlEncode(predata)) - if self.verbose: - fakepredata = predata - fakepredata['wpPassword'] = u'XXXXX' - wikipedia.output(u"self.site.postData(%s, %s)" % (address, self.site.urlEncode(fakepredata))) - fakeresponsemsg = re.sub(r"(session|Token)=..........", r"session=XXXXXXXXXX", response.msg.__str__()) - wikipedia.output(u"%s/%s\n%s" % (response.status, response.reason, fakeresponsemsg)) - wikipedia.output(u"%s" % data) + if self.verbose: + fakepredata = predata + fakepredata['wpPassword'] = u'XXXXX' + wikipedia.output(u"self.site.postData(%s, %s)" % (address, self.site.urlEncode(fakepredata))) + fakeresponsemsg = re.sub(r"(session|Token)=..........", r"session=XXXXXXXXXX", response.msg.__str__()) + wikipedia.output(u"%s/%s\n%s" % (response.status, response.reason, fakeresponsemsg)) + wikipedia.output(u"%s" % data) Reat=re.compile(': (.*?);') L = [] - + for eat in response.msg.getallmatchingheaders('set-cookie'): m = Reat.search(eat) if m: L.append(m.group(1)) - + got_token = got_user = False for Ldata in L: if 'Token=' in Ldata: got_token = True if 'User=' in Ldata or 'UserName=' in Ldata: got_user = True - + if got_token and got_user: return "\n".join(L) elif not captcha: @@ -210,18 +210,18 @@
def readPassword(self): """ - Reads passwords from a file. DO NOT FORGET TO REMOVE READ - ACCESS FOR OTHER USERS!!! Use chmod 600 password-file. - All lines below should be valid Python tuples in the form - (code, family, username, password) or (username, password) - to set a default password for an username. Default usernames - should occur above specific usernames. + Reads passwords from a file. DO NOT FORGET TO REMOVE READ + ACCESS FOR OTHER USERS!!! Use chmod 600 password-file. + All lines below should be valid Python tuples in the form + (code, family, username, password) or (username, password) + to set a default password for an username. Default usernames + should occur above specific usernames.
- Example: + Example:
- ("my_username", "my_default_password") - ("my_sysop_user", "my_sysop_password") - ("en", "wikipedia", "my_en_user", "my_en_pass") + ("my_username", "my_default_password") + ("my_sysop_user", "my_sysop_password") + ("en", "wikipedia", "my_en_user", "my_en_pass") """ file = open(config.password_file) for line in file:
Modified: trunk/pywikipedia/wikipedia.py =================================================================== --- trunk/pywikipedia/wikipedia.py 2009-03-24 01:15:50 UTC (rev 6540) +++ trunk/pywikipedia/wikipedia.py 2009-03-24 01:40:51 UTC (rev 6541) @@ -4656,8 +4656,8 @@ Returns the HTML text of the page converted to unicode. """
- if retry==None: - retry=config.retry_on_fail + if retry==None: + retry=config.retry_on_fail
if False: #self.persistent_http and not data: self.conn.putrequest('GET', path) @@ -4705,7 +4705,7 @@ while not retrieved: try: if self.hostname() in config.authenticate.keys(): - request = urllib2.Request(url, data) + request = urllib2.Request(url, data) request.add_header('User-agent', useragent) opener = urllib2.build_opener() f = opener.open(request) @@ -4735,7 +4735,7 @@ headers = f.info()
if cookie_only: - return headers.get('set-cookie', '') + return headers.get('set-cookie', '') contentType = headers.get('content-type', '') contentEncoding = headers.get('content-encoding', '')