Last modified: 2010-12-22 21:27:15 UTC
The API should be able to list unwatched pages. The best way is probably to implement this as a parameter of list=allpages (apfilterwatched). In SQL, this should probably be done as a LEFT JOIN against the watchlist table, then looking for wl_title IS (NOT) NULL. We also might wanna add an option to disable this for large wikis (Special:Unwatchedpages is cached at enwiki), after discussing with people who know why it's cached.
Created attachment 5075 [details]
Starting point for implementation
Doesn't quite work yet, but I'm unfamiliar with the API's code. Copied the filter-by-langlinks bit as a base for implementation.
Committed a modified version of that patch in r37748. In case you're interested, I changed the following things:
* The USE INDEX had to be adjusted to avoid SQL errors
* Removed the page_is_redirect=0 and page_namespace <> NS_MEDIAWIKI conditions, as it's up to the client whether they even *want* all that (the apfilterredir and apnamespace parameters)
* Moved the addTables() and addJoinConds() calls to a more generic place so they aren't duplicated
* Used arrays instead of WHERE clauses with AND in them
* Set a warning if $wgMiserMode is true or if the user doesn't have the 'unwatchedpages' right
* Moved the global $wgUser, $wgMiserMode; statement down to where it's actually used
Reverted in r37775.
This'll be automatically fixed once someone fixes bug 14869.
Closing as "resolved/later"
Will be fixed by bug 14869, and makes the API bug list a bit clearer (as these are essentially duplicates)
(In reply to comment #5)
> Closing as "resolved/later"
> Will be fixed by bug 14869, and makes the API bug list a bit clearer (as these
> are essentially duplicates)
Done now (branch merged in r78786).