diff options
-rwxr-xr-x | get-mediawiki-data | 14 |
1 files changed, 13 insertions, 1 deletions
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 |