Revision: 6475 Author: nicdumz Date: 2009-03-03 09:56:02 +0000 (Tue, 03 Mar 2009)
Log Message: ----------- LogEntryListGenerator yielding LogEntry objects instead of dicts
Modified Paths: -------------- branches/rewrite/pywikibot/data/api.py branches/rewrite/pywikibot/site.py
Modified: branches/rewrite/pywikibot/data/api.py =================================================================== --- branches/rewrite/pywikibot/data/api.py 2009-03-03 09:35:29 UTC (rev 6474) +++ branches/rewrite/pywikibot/data/api.py 2009-03-03 09:56:02 UTC (rev 6475) @@ -591,7 +591,20 @@ """ QueryGenerator.__init__(self, list=listaction, **kwargs)
+class LogEntryListGenerator(ListGenerator): + """ + Like ListGenerator, but specialized for listaction="logevents" : + yields LogEntry objects instead of dicts. + """ + def __init__(self, logtype, **kwargs): + ListGenerator.__init__(self, "logevents", **kwargs)
+ import logentries + self.entryFactory = logentries.LogEntryFactory(logtype) + + def result(self, pagedata): + return self.entryFactory.create(pagedata) + class LoginManager(login.LoginManager): """Supplies getCookie() method to use API interface.""" def getCookie(self, remember=True, captchaId=None, captchaAnswer=None):
Modified: branches/rewrite/pywikibot/site.py =================================================================== --- branches/rewrite/pywikibot/site.py 2009-03-03 09:35:29 UTC (rev 6474) +++ branches/rewrite/pywikibot/site.py 2009-03-03 09:56:02 UTC (rev 6475) @@ -1749,7 +1749,7 @@ if start < end: raise Error( "logevents: start must be later than end with reverse=False") - legen = api.ListGenerator("logevents", site=self) + legen = api.LogEntryListGenerator(logtype, site=self) if logtype is not None: legen.request["letype"] = logtype if user is not None: