Currently the upload campaigns branch of the Android Commons app uses UploadWizard's list=allcampaigns API to periodically refresh the list of campaigns.
Unfortunately this can run really slowly on Commons, especially if the parsed titles/descriptions/etc aren't cached due to a software update, massive cache clear, or selection of a new language. The worst case is a timeout or outright HTTP 500 error.
A few possibilities:
- (probably easy) could aggressively limit the number of items returned when not cached, so you at least get a fast result with fewer items instead of a timeout. This allows clients to continue fetching to get the rest of the results as they are built.
- (a bit more work) could do more lightweight rendering -- at fetch time we really only need the title; we could fetch the description and other fields when we go to upload something. Separately caching/rendering 'just titles' and 'whole field sets' could allow the list to run *much* faster.
- (probably not feasible?) could pre-cache items in the JobQueue after their dependencies change?
Version: unspecified
Severity: normal
URL: commons.wikimedia.org/w/api.php?action=query&list=allcampaigns&uclimit=500