+ data = {
+ 'action': 'query',
+ 'gcmtitle': '|'.join(these_pages),
+ 'generator': 'categorymembers',
+ 'gcmlimit': 500
+ }
+ response = self.api.call(data)['query']['pages']
+ for pageid in response.keys():
+ pagename = response[pageid]['title']
+ print pagename
+ pullc = PullCommand()
+ pullc.args = [pagename.encode('utf-8')]
+ pullc._do_command()
+
+
+class PullCommand(CommandBase):
+
+ def __init__(self):
+ usage = '[options] PAGENAME ...'
+ CommandBase.__init__(self, 'pull', 'add remote pages to repo', usage)
+
+ def _do_command(self):
+ self._die_if_no_init()
+ self._api_setup()
+ pages = []
+ pages += self.args
+
+ # Pull should work with pagename, filename, or working directory
+ converted_pages = []
+ if pages == []:
+ pages = self.metadir.working_dir_status().keys()
+ for pagename in pages:
+ if '.wiki' in pagename:
+ converted_pages.append(
+ mw.metadir.filename_to_pagename(pagename[:-5]))
+ else:
+ converted_pages.append(pagename)
+ pages = converted_pages
+
+ for these_pages in [pages[i:i + 25] for i in range(0, len(pages), 25)]: # ?