Mpaa added a comment. |
The problem is that in site.preloadpages(), max_ids is computed after the pageslist is splitted in chunks of 240.
for sublist in itergroup(pagelist, groupsize): <----------- groupsize = 240 # Do not use p.pageid property as it will force page loading. pageids = [str(p._pageid) for p in sublist if hasattr(p, '_pageid') and p._pageid > 0] cache = {} # In case of duplicates, return the first entry. for priority, page in enumerate(sublist): try: cache.setdefault(page.title(with_section=False), (priority, page)) except pywikibot.InvalidTitle: pywikibot.exception()
prio_queue = [] next_prio = 0 rvgen = api.PropertyGenerator(props, site=self) rvgen.set_maximum_items(-1) # suppress use of "rvlimit" parameter parameter = self._paraminfo.parameter('query+info', 'prop') if self.logged_in() and self.has_right('apihighlimits'): <----------- False max_ids = int(parameter['highlimit']) else: max_ids = int(parameter['limit']) # T78333, T161783 <----------- max_ids = 50 if len(pageids) == len(sublist) and len(set(pageids)) <= max_ids: <----------- False # only use pageids if all pages have them rvgen.request['pageids'] = set(pageids) else: rvgen.request['titles'] = list(cache.keys()) <----------- len(cache) = 240 ---> PROBLEM! rvgen.request['rvprop'] = rvprop pywikibot.output('Retrieving %s pages from %s.' % (len(cache), self))
TASK DETAIL
EMAIL PREFERENCES
To: Mpaa
Cc: Mpaa, Xqt, Phuzion, Aklapper, pywikibot-bugs-list, Framawiki, Wenyi, Tbscho, MayS, Mdupont, JJMC89, Avicennasis, mys_721tx, jayvdb, Dalba, Masti, Alchimista, Rxy
Cc: Mpaa, Xqt, Phuzion, Aklapper, pywikibot-bugs-list, Framawiki, Wenyi, Tbscho, MayS, Mdupont, JJMC89, Avicennasis, mys_721tx, jayvdb, Dalba, Masti, Alchimista, Rxy
_______________________________________________ pywikibot-bugs mailing list pywikibot-bugs@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/pywikibot-bugs