MediaWiki  1.34.0
NoWriteWatchedItemStore.php
Go to the documentation of this file.
1 <?php
25 
31 
35  private $actualStore;
36 
37  const DB_READONLY_ERROR = 'The watchlist is currently readonly.';
38 
44  $this->actualStore = $actualStore;
45  }
46 
47  public function countWatchedItems( UserIdentity $user ) {
48  return $this->actualStore->countWatchedItems( $user );
49  }
50 
51  public function countWatchers( LinkTarget $target ) {
52  return $this->actualStore->countWatchers( $target );
53  }
54 
55  public function countVisitingWatchers( LinkTarget $target, $threshold ) {
56  return $this->actualStore->countVisitingWatchers( $target, $threshold );
57  }
58 
59  public function countWatchersMultiple( array $targets, array $options = [] ) {
60  return $this->actualStore->countVisitingWatchersMultiple(
61  $targets,
62  $options['minimumWatchers'] ?? null
63  );
64  }
65 
67  array $targetsWithVisitThresholds,
68  $minimumWatchers = null
69  ) {
70  return $this->actualStore->countVisitingWatchersMultiple(
71  $targetsWithVisitThresholds,
72  $minimumWatchers
73  );
74  }
75 
76  public function getWatchedItem( UserIdentity $user, LinkTarget $target ) {
77  return $this->actualStore->getWatchedItem( $user, $target );
78  }
79 
80  public function loadWatchedItem( UserIdentity $user, LinkTarget $target ) {
81  return $this->actualStore->loadWatchedItem( $user, $target );
82  }
83 
84  public function getWatchedItemsForUser( UserIdentity $user, array $options = [] ) {
85  return $this->actualStore->getWatchedItemsForUser( $user, $options );
86  }
87 
88  public function isWatched( UserIdentity $user, LinkTarget $target ) {
89  return $this->actualStore->isWatched( $user, $target );
90  }
91 
92  public function getNotificationTimestampsBatch( UserIdentity $user, array $targets ) {
93  return $this->actualStore->getNotificationTimestampsBatch( $user, $targets );
94  }
95 
96  public function countUnreadNotifications( UserIdentity $user, $unreadLimit = null ) {
97  return $this->actualStore->countUnreadNotifications( $user, $unreadLimit );
98  }
99 
100  public function duplicateAllAssociatedEntries( LinkTarget $oldTarget, LinkTarget $newTarget ) {
101  throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
102  }
103 
104  public function duplicateEntry( LinkTarget $oldTarget, LinkTarget $newTarget ) {
105  throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
106  }
107 
108  public function addWatch( UserIdentity $user, LinkTarget $target ) {
109  throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
110  }
111 
112  public function addWatchBatchForUser( UserIdentity $user, array $targets ) {
113  throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
114  }
115 
116  public function removeWatch( UserIdentity $user, LinkTarget $target ) {
117  throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
118  }
119 
121  UserIdentity $user,
122  $timestamp,
123  array $targets = []
124  ) {
125  throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
126  }
127 
129  UserIdentity $editor, LinkTarget $target, $timestamp
130  ) {
131  throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
132  }
133 
135  throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
136  }
137 
138  public function resetNotificationTimestamp(
139  UserIdentity $user,
141  $force = '',
142  $oldid = 0
143  ) {
144  throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
145  }
146 
147  public function clearUserWatchedItems( UserIdentity $user ) {
148  throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
149  }
150 
152  throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
153  }
154 
155  public function removeWatchBatchForUser( UserIdentity $user, array $titles ) {
156  throw new DBReadOnlyError( null, self::DB_READONLY_ERROR );
157  }
158 
160  $timestamp, UserIdentity $user, LinkTarget $target
161  ) {
162  return wfTimestampOrNull( TS_MW, $timestamp );
163  }
164 }
NoWriteWatchedItemStore\isWatched
isWatched(UserIdentity $user, LinkTarget $target)
Must be called separately for Subject & Talk namespaces.
Definition: NoWriteWatchedItemStore.php:88
NoWriteWatchedItemStore\loadWatchedItem
loadWatchedItem(UserIdentity $user, LinkTarget $target)
Loads an item from the db.
Definition: NoWriteWatchedItemStore.php:80
NoWriteWatchedItemStore\clearUserWatchedItems
clearUserWatchedItems(UserIdentity $user)
Queues a job that will clear the users watchlist using the Job Queue.
Definition: NoWriteWatchedItemStore.php:147
NoWriteWatchedItemStore\removeWatchBatchForUser
removeWatchBatchForUser(UserIdentity $user, array $titles)
Definition: NoWriteWatchedItemStore.php:155
NoWriteWatchedItemStore\getWatchedItemsForUser
getWatchedItemsForUser(UserIdentity $user, array $options=[])
Definition: NoWriteWatchedItemStore.php:84
NoWriteWatchedItemStore\resetNotificationTimestamp
resetNotificationTimestamp(UserIdentity $user, LinkTarget $title, $force='', $oldid=0)
Reset the notification timestamp of this entry.
Definition: NoWriteWatchedItemStore.php:138
NoWriteWatchedItemStore\countVisitingWatchers
countVisitingWatchers(LinkTarget $target, $threshold)
Number of page watchers who also visited a "recent" edit.
Definition: NoWriteWatchedItemStore.php:55
NoWriteWatchedItemStore\duplicateEntry
duplicateEntry(LinkTarget $oldTarget, LinkTarget $newTarget)
Check if the given title already is watched by the user, and if so add a watch for the new title.
Definition: NoWriteWatchedItemStore.php:104
NoWriteWatchedItemStore\duplicateAllAssociatedEntries
duplicateAllAssociatedEntries(LinkTarget $oldTarget, LinkTarget $newTarget)
Check if the given title already is watched by the user, and if so add a watch for the new title.
Definition: NoWriteWatchedItemStore.php:100
NoWriteWatchedItemStore\addWatch
addWatch(UserIdentity $user, LinkTarget $target)
Must be called separately for Subject & Talk namespaces.
Definition: NoWriteWatchedItemStore.php:108
NoWriteWatchedItemStore\getNotificationTimestampsBatch
getNotificationTimestampsBatch(UserIdentity $user, array $targets)
Definition: NoWriteWatchedItemStore.php:92
MediaWiki\User\UserIdentity
Interface for objects representing user identity.
Definition: UserIdentity.php:32
NoWriteWatchedItemStore\countWatchersMultiple
countWatchersMultiple(array $targets, array $options=[])
Definition: NoWriteWatchedItemStore.php:59
NoWriteWatchedItemStore\__construct
__construct(WatchedItemStoreInterface $actualStore)
Initialy set WatchedItemStore that will be used in cases where writing is not needed.
Definition: NoWriteWatchedItemStore.php:43
NoWriteWatchedItemStore\$actualStore
WatchedItemStoreInterface $actualStore
Definition: NoWriteWatchedItemStore.php:35
NoWriteWatchedItemStore\clearUserWatchedItemsUsingJobQueue
clearUserWatchedItemsUsingJobQueue(UserIdentity $user)
Queues a job that will clear the users watchlist using the Job Queue.
Definition: NoWriteWatchedItemStore.php:151
wfTimestampOrNull
wfTimestampOrNull( $outputtype=TS_UNIX, $ts=null)
Return a formatted timestamp, or null if input is null.
Definition: GlobalFunctions.php:1885
$title
$title
Definition: testCompression.php:34
NoWriteWatchedItemStore\DB_READONLY_ERROR
const DB_READONLY_ERROR
Definition: NoWriteWatchedItemStore.php:37
Wikimedia\Rdbms\DBReadOnlyError
Definition: DBReadOnlyError.php:27
NoWriteWatchedItemStore\setNotificationTimestampsForUser
setNotificationTimestampsForUser(UserIdentity $user, $timestamp, array $targets=[])
Definition: NoWriteWatchedItemStore.php:120
NoWriteWatchedItemStore\countWatchedItems
countWatchedItems(UserIdentity $user)
Count the number of individual items that are watched by the user.
Definition: NoWriteWatchedItemStore.php:47
NoWriteWatchedItemStore\updateNotificationTimestamp
updateNotificationTimestamp(UserIdentity $editor, LinkTarget $target, $timestamp)
Definition: NoWriteWatchedItemStore.php:128
NoWriteWatchedItemStore\removeWatch
removeWatch(UserIdentity $user, LinkTarget $target)
Removes an entry for the UserIdentity watching the LinkTarget Must be called separately for Subject &...
Definition: NoWriteWatchedItemStore.php:116
NoWriteWatchedItemStore\getLatestNotificationTimestamp
getLatestNotificationTimestamp( $timestamp, UserIdentity $user, LinkTarget $target)
Convert $timestamp to TS_MW or return null if the page was visited since then by $user.
Definition: NoWriteWatchedItemStore.php:159
NoWriteWatchedItemStore\countWatchers
countWatchers(LinkTarget $target)
Definition: NoWriteWatchedItemStore.php:51
NoWriteWatchedItemStore\addWatchBatchForUser
addWatchBatchForUser(UserIdentity $user, array $targets)
Definition: NoWriteWatchedItemStore.php:112
NoWriteWatchedItemStore\countVisitingWatchersMultiple
countVisitingWatchersMultiple(array $targetsWithVisitThresholds, $minimumWatchers=null)
Number of watchers of each page who have visited recent edits to that page.
Definition: NoWriteWatchedItemStore.php:66
NoWriteWatchedItemStore\resetAllNotificationTimestampsForUser
resetAllNotificationTimestampsForUser(UserIdentity $user)
Reset all watchlist notificaton timestamps for a user using the job queue.
Definition: NoWriteWatchedItemStore.php:134
MediaWiki\Linker\LinkTarget
Definition: LinkTarget.php:26
WatchedItemStoreInterface
Definition: WatchedItemStoreInterface.php:30
NoWriteWatchedItemStore\countUnreadNotifications
countUnreadNotifications(UserIdentity $user, $unreadLimit=null)
Definition: NoWriteWatchedItemStore.php:96
NoWriteWatchedItemStore
Definition: NoWriteWatchedItemStore.php:30
NoWriteWatchedItemStore\getWatchedItem
getWatchedItem(UserIdentity $user, LinkTarget $target)
Get an item (may be cached)
Definition: NoWriteWatchedItemStore.php:76