On Wed, Dec 19, 2012 at 10:52 AM, Yuri Astrakhan yuriastrakhan@gmail.com wrote:
Not exactly correct - pywikipediabot have not solved it at all, instead they structured their library to avoid the whole problem and to get individual properties data separately with generators,
Hmm.
There are 30 frameworks listed on the docs site. If even the top one ignores this fundamental issue, how many do you think implement it correctly?
Mine does, although it's probably not listed there. I haven't tried anyone else's.
I just spent considerable time trying to implement a generic query-agnostic continue, and was forced to do it in a very hacky way (like detecting /g..continue/ parameter, cutting it out, removing some prop=.. and ignoring warnings server sends due to me sending unneeded parameters. Not a good generic solution)
A way to reduce the hackiness is to use action=paraminfo to look up the prefixes for all the prop modules (this takes two queries, and could be cached). Then it's a simple matter to look up the prefix for each node under query-continue and see whether the attribute is $prefix or 'g'+$prefix. The warnings can also be addressed by using the results from action=paraminfo to filter out the params for modules as they're removed from prop=.
Although it would be nice to have a more straightforward method. Without throwing out the baby with the bathwater.
But anyway, I agree, lets not remove abilities - lets introduce a version parameter, and do a simple approach by default. Those who want use the old legacy, will add &legacycontirue="" parameter.
But "legacycontinue" isn't a version parameter, it's a feature selection parameter.