diff options
author | James Laska <jlaska@redhat.com> | 2011-06-17 10:21:40 -0400 |
---|---|---|
committer | James Laska <jlaska@redhat.com> | 2011-06-17 10:21:40 -0400 |
commit | b32d33610affaadf67f342e270a98c80ab61d847 (patch) | |
tree | a2cd423e71efff159a6967c3345b3133bbe71012 | |
parent | db95dfce58f3ca27df7fae564f9448be3fbb7a18 (diff) | |
download | scripts-b32d33610affaadf67f342e270a98c80ab61d847.tar.gz scripts-b32d33610affaadf67f342e270a98c80ab61d847.tar.xz scripts-b32d33610affaadf67f342e270a98c80ab61d847.zip |
Respond when more categorymember query data is available
-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 |