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:



_______________________________________________
Pywikipedia-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-l

Reply via email to