|Stalled||None||T8964 Watch pages for a few days only (add an expiry time)|
|Stalled||None||T100508 Watchlist expiry: Watch pages for a specified time frame (2013)|
|Open||None||T129478 Refactor watchlist related code to use WatchedItemStore|
|Stalled||None||T132568 [Task] Refactor Special:Recentchanges to use WatchedItemStore|
Mainly this bit of code which could probably be swapped out for something in WatchedItemStore straight away
$dbr->selectField( 'watchlist', 'COUNT(*)', [ 'wl_namespace' => $obj->rc_namespace, 'wl_title' => $obj->rc_title, ], __METHOD__ . '-watchers' );
@Addshore I have not looked closely, but my intuition is this: Don't move the compelx queries into WatchedItemStore, but into a separate class, WatchedItemQuery or some such. Also split out the UI bit into RCView or ChagnesView or something. The special page should then just glue the view to the query service, and handle parameters. Not sure whether the form should be defiend by the view or the special page itself though.