From b32d33610affaadf67f342e270a98c80ab61d847 Mon Sep 17 00:00:00 2001 From: James Laska Date: Fri, 17 Jun 2011 10:21:40 -0400 Subject: Respond when more categorymember query data is available --- get-mediawiki-data | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/get-mediawiki-data b/get-mediawiki-data index 54a50cb..cc3b4f1 100755 --- a/get-mediawiki-data +++ b/get-mediawiki-data @@ -231,8 +231,20 @@ def list_categorymembers(wiki, cat_page, limit=5): cmtitle=cat_page) if opts.debug: print query response = wiki.call(query) + if opts.debug: print response + + # Are more results available? + members = list() + # If necesary, repeatedly call the server to get more data + while response.has_key('query-continue'): + members.extend( [entry.get('title') for entry in response.get('query',{}).get('categorymembers',{}) if entry.has_key('title')] ) + query['cmcontinue'] = response['query-continue']['categorymembers']['cmcontinue'] + if opts.debug: print query + response = wiki.call(query) + if opts.debug: print response - members = [entry.get('title') for entry in response.get('query',{}).get('categorymembers',{}) if entry.has_key('title')] + # Extract any remaining data from the response + members.extend( [entry.get('title') for entry in response.get('query',{}).get('categorymembers',{}) if entry.has_key('title')] ) # Determine whether we need to recurse idx = 0 -- cgit