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
https://phabricator.wikimedia.org/T209111

EMAIL PREFERENCES
https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: Mpaa
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

Reply via email to