Revision: 7516
Author:   alexsh
Date:     2009-10-20 06:23:57 +0000 (Tue, 20 Oct 2009)

Log Message:
-----------
Category()._parseCategory(): change member detection to API base

Modified Paths:
--------------
    trunk/pywikipedia/catlib.py

Modified: trunk/pywikipedia/catlib.py
===================================================================
--- trunk/pywikipedia/catlib.py 2009-10-20 05:43:21 UTC (rev 7515)
+++ trunk/pywikipedia/catlib.py 2009-10-20 06:23:57 UTC (rev 7516)
@@ -191,19 +191,18 @@
             return
         
         currentPageOffset = None
+        params = {
+            'action': 'query',
+            'list': 'categorymembers',
+            'cmtitle': self.title(),
+            'cmprop': ['title', 'ids', 'sortkey', 'timestamp'],
+            #'': '',
+        }
         while True:
-            params = {
-                'action': 'query',
-                'list': 'categorymembers',
-                'cmtitle': self.title(),
-                'cmprop': 'title',#|ids|sortkey|timestamp',
-                #'': '',
-            }
             if wikipedia.config.special_page_limit > 500:
                 params['cmlimit'] = 500
             else:
                 params['cmlimit'] = wikipedia.config.special_page_limit
-
             
             if currentPageOffset:
                 params['cmcontinue'] = currentPageOffset
@@ -218,17 +217,19 @@
             
             wikipedia.get_throttle()
             data = query.GetData(params, self.site())
+            if 'error' in data:
+                raise RuntimeError("%s" % data['error'])
             count = 0
             
             for memb in data['query']['categorymembers']:
                 count += 1
                 # For MediaWiki versions where subcats look like articles
-                if isCatTitle(memb['title'], self.site()):
-                    yield SUBCATEGORY, Category(self.site(), memb['title'])
-                elif memb['ns'] == 6 and self.site().image_namespace() in 
memb['title']:
+                if memb['ns'] == 14:
+                    yield SUBCATEGORY, Category.(self.site(), memb['title'], 
sortKey=memb['sortkey'])
+                elif memb['ns'] == 6:
                     yield ARTICLE, wikipedia.ImagePage(self.site(), 
memb['title'])
                 else:
-                    yield ARTICLE, wikipedia.Page(self.site(), memb['title'])
+                    yield ARTICLE, wikipedia.Page(self.site(), memb['title'], 
defaultNamespace=memb['ns'])
                 if count >= params['cmlimit']:
                     break
             # try to find a link to the next list page



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

Reply via email to