// by default we use pageset to extract the page to work on.
// title is still supported for backward compatibility
if ( !isset( $params['title'] ) ) {
- if ( $params['entirewatchlist'] && $pageSet->getDataSource() !== null ) {
- $this->dieUsage(
- "Cannot use 'entirewatchlist' at the same time as '{$pageSet->getDataSource()}'",
- 'multisource'
- );
+ $pageSet->execute();
+ $res = $pageSet->getInvalidTitlesAndRevisions( array(
+ 'invalidTitles',
+ 'special',
+ 'missingIds',
+ 'missingRevIds',
+ 'interwikiTitles'
+ ) );
+
+ foreach ( $pageSet->getMissingTitles() as $title ) {
+ $r = $this->watchTitle( $title, $user, $params );
+ $r['missing'] = 1;
+ $res[] = $r;
}
- if ( $params['entirewatchlist'] ) {
- if ( !$params['unwatch'] ) {
- $this->dieUsage(
- "'entirewatchlist' option can only be used with 'unwatch' parameter.",
- 'invalidparammix'
- );
- } else {
- // We're going to do this in the database as a bulk operation
- // instead of one at a time, so it doesn't time out on largeish lists.
- $dbw = wfGetDB( DB_MASTER );
- $dbw->delete( 'watchlist', array( 'wl_user' => $user->getId() ), __METHOD__ );
- $user->invalidateCache();
- $res = array();
- }
- } else {
- $pageSet->execute();
- $res = $pageSet->getInvalidTitlesAndRevisions( array(
- 'invalidTitles',
- 'special',
- 'missingIds',
- 'missingRevIds',
- 'interwikiTitles'
- ) );
-
- foreach ( $pageSet->getMissingTitles() as $title ) {
- $r = $this->watchTitle( $title, $user, $params );
- $r['missing'] = 1;
- $res[] = $r;
- }
-
- foreach ( $pageSet->getGoodTitles() as $title ) {
- $r = $this->watchTitle( $title, $user, $params );
- $res[] = $r;
- }
- $this->getResult()->setIndexedTagName( $res, 'w' );
+ foreach ( $pageSet->getGoodTitles() as $title ) {
+ $r = $this->watchTitle( $title, $user, $params );
+ $res[] = $r;
}
+ $this->getResult()->setIndexedTagName( $res, 'w' );
} else {
// dont allow use of old title parameter with new pageset parameters.
$extraParams = array_keys( array_filter( $pageSet->extractRequestParams(), function ( $x ) {
ApiBase::PARAM_DEPRECATED => true
),
'unwatch' => false,
- 'entirewatchlist' => false,
'uselang' => null,
'token' => array(
ApiBase::PARAM_TYPE => 'string',
return $psModule->getParamDescription() + array(
'title' => 'The page to (un)watch. use titles instead',
'unwatch' => 'If set the page will be unwatched rather than watched',
- 'entirewatchlist' => 'Work on all watched pages without returning a list; '
- . 'can only be used together with \'unwatch\' option.',
'uselang' => 'Language to show the message in',
'token' => 'A token previously acquired via prop=info',
);