def get_edits(self, title, revision, rvlimit=None): rvlimit = rvlimit or self.rvlimit kwargs = { 'titles': title, 'redirects': 1, 'prop': 'revisions', 'rvprop': 'ids|user|flags|comment|size', 'rvlimit': rvlimit, 'rvdir': 'older', } if revision is not None: kwargs['rvstartid'] = revision # def setrvlimit(res): # print "setting rvlimit to 50 for %s" % (self.baseurl, ) # self.rvlimit=50 # return res # # XXX # def retry(err): # if rvlimit <= 50: # return err # kwargs["rvlimit"] = 50 # return self.do_request(action="query", **kwargs).addCallback(setrvlimit) get_authors = authors.inspect_authors() def merge_data(retval, newdata): edits = newdata["pages"].values() for e in edits: revs = e["revisions"] get_authors.scan_edits(revs) self.do_request(action="query", merge_data=merge_data, **kwargs) return get_authors