The current implementation of QueryWithContinuation, or the related WikiPagePropertyProvider<T> parameter classes, are not design to support pagination inside page properties (&prop= values, such as &props=revision).
Though there is some basic logic in RefreshPagesAsync to merge prop list when there are some props need pagination, we have not introduced proper public API to let consumer adjust the pagination size of props itself. IWikiPagePropertyProvider<T>.GetMaxPaginationSize is used to restrict the max allowed title count (e.g. count of title= values), instead of props item count (e.g. x in rvlimit=x).
The justification for not breaking the wall between WikiPagePropertyList<T> (calls QueryWithContinuation) and WikiPagePropertyProvider before is the potential complexity to deal with dual continuation (https://github.com/CXuesong/WikiClientLibrary/issues/68#issuecomment-633003856). But perhaps we may break the wall, and make it possible for consumer to plug IWikiPagePropertyProvider into WikiPagePropertyList instead of deriving from the latter one.
The current implementation of
QueryWithContinuation
, or the relatedWikiPagePropertyProvider<T>
parameter classes, are not design to support pagination inside page properties (&prop=
values, such as&props=revision
).Though there is some basic logic in
RefreshPagesAsync
to merge prop list when there are some props need pagination, we have not introduced proper public API to let consumer adjust the pagination size of props itself.IWikiPagePropertyProvider<T>.GetMaxPaginationSize
is used to restrict the max allowed title count (e.g. count oftitle=
values), instead of props item count (e.g.x
inrvlimit=x
).The justification for not breaking the wall between
WikiPagePropertyList<T>
(callsQueryWithContinuation
) andWikiPagePropertyProvider
before is the potential complexity to deal with dual continuation (https://github.com/CXuesong/WikiClientLibrary/issues/68#issuecomment-633003856). But perhaps we may break the wall, and make it possible for consumer to plugIWikiPagePropertyProvider
intoWikiPagePropertyList
instead of deriving from the latter one.Before this feature has been implemented, for example, you may consider the following approach to get the complete page property list when the pages are taken from another wikilist/generator (https://github.com/CXuesong/WikiClientLibrary/issues/68#issuecomment-633009040)
CategoryMembersGenerator.ListItemAsync
to get a sequence ofWikiPageStub
s,WikiPageStub
s intoWikiPage
s,WikiPage
sequence by batches (e.g., pywikibot batches pages by 30 items)