Revision: 6511 Author: jayvdb Date: 2009-03-17 04:29:10 +0000 (Tue, 17 Mar 2009)
Log Message: ----------- Allow log to be filtered by username Add method userlib.uploadedImages
Modified Paths: -------------- trunk/pywikipedia/family.py trunk/pywikipedia/userlib.py trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/family.py =================================================================== --- trunk/pywikipedia/family.py 2009-03-17 03:22:53 UTC (rev 6510) +++ trunk/pywikipedia/family.py 2009-03-17 04:29:10 UTC (rev 6511) @@ -3521,8 +3521,8 @@ return '%s?useskin=monobook&title=%s:Allpages&from=%s&namespace=%s' % ( self.path(code), self.special_namespace_url(code), start, namespace)
- def log_address(self, code, limit=50, mode = ''): - return "%s?useskin=monobook&title=Special:Log&type=%s&user=&page=&limit=%d" % (self.path(code), mode, limit) + def log_address(self, code, limit=50, mode = '', user = ''): + return "%s?useskin=monobook&title=Special:Log&type=%s&user=%s&page=&limit=%d" % (self.path(code), mode, user, limit)
def newpages_address(self, code, limit=50, namespace=0): return "%s?useskin=monobook&title=%s:Newpages&limit=%d&namespace=%s" % (self.path(code), self.special_namespace_url(code), limit, namespace)
Modified: trunk/pywikipedia/userlib.py =================================================================== --- trunk/pywikipedia/userlib.py 2009-03-17 03:22:53 UTC (rev 6510) +++ trunk/pywikipedia/userlib.py 2009-03-17 04:29:10 UTC (rev 6511) @@ -107,6 +107,32 @@ else: break
+ def uploadedImages(self, number = 10): + """Yield ImagePages from Special:Log&type=upload""" + + regexp = re.compile('<li[^>]*>(?P<date>.+?)\s+<a href=.*?>(?P<user>.+?)</a> .* uploaded "<a href=".*?"(?P<new> class="new")? title="(Image|File):(?P<image>.+?)"\s*>(?:.*?<span class="comment">(?P<comment>.*?)</span>)?', re.UNICODE) + + path = self.site.log_address(number, mode = 'upload', user = self.name) + html = self.site.getUrl(path) + + redlink_key = self.site.mediawiki_message('red-link-title') + redlink_tail_len = None + if redlink_key.startswith('$1 '): + redlink_tail_len = len(redlink_key[3:]) + + for m in regexp.finditer(html): + image = m.group('image') + deleted = False + if m.group('new'): + deleted = True + if redlink_tail_len: + image = image[0:0-redlink_tail_len] + + date = m.group('date') + comment = m.group('comment') or '' + + yield wikipedia.ImagePage(self.site, image), date, comment, deleted + def block(self, expiry=None, reason=None, anonOnly=True, noSignup=False, enableAutoblock=False, emailBan=False, watchUser=False, allowUsertalk=True): """ Block the user.
Modified: trunk/pywikipedia/wikipedia.py =================================================================== --- trunk/pywikipedia/wikipedia.py 2009-03-17 03:22:53 UTC (rev 6510) +++ trunk/pywikipedia/wikipedia.py 2009-03-17 04:29:10 UTC (rev 6511) @@ -5934,9 +5934,9 @@ """Return path to Special:Allpages.""" return self.family.allpages_address(self.lang, start=s, namespace = ns)
- def log_address(self, n=50, mode = ''): + def log_address(self, n=50, mode = '', user = ''): """Return path to Special:Log.""" - return self.family.log_address(self.lang, n, mode) + return self.family.log_address(self.lang, n, mode, user)
def newpages_address(self, n=50, namespace=0): """Return path to Special:Newpages."""
pywikipedia-l@lists.wikimedia.org