Kaldari has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/60689


Change subject: Maintainence script for changing user options for existing users
......................................................................

Maintainence script for changing user options for existing users

Change-Id: I89db959e1ce99d29f00ccb93ac5b7ca84825f111
---
A maintenance/setEchoUserOptions.php
1 file changed, 74 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Echo 
refs/changes/89/60689/1

diff --git a/maintenance/setEchoUserOptions.php 
b/maintenance/setEchoUserOptions.php
new file mode 100644
index 0000000..8d2db8e
--- /dev/null
+++ b/maintenance/setEchoUserOptions.php
@@ -0,0 +1,74 @@
+<?php
+/**
+ * Opt existing users out of some echo notifications
+ *
+ * @ingroup Maintenance
+ */
+require_once ( getenv( 'MW_INSTALL_PATH' ) !== false
+       ? getenv( 'MW_INSTALL_PATH' ) . '/maintenance/Maintenance.php'
+       : dirname( __FILE__ ) . '/../../../maintenance/Maintenance.php' );
+
+/**
+ * Set existing user's notification prefs to be different than defaults in 
some cases.
+ *
+ * @ingroup Maintenance
+ */
+class setEchoUserOptions extends Maintenance {
+
+       public function execute() {
+               $dbw = wfGetDB( DB_MASTER );
+
+               $batchSize = 100;
+               $total = 0;
+               $lastUserID = 0;
+               
+               while ( true ) {
+                       $res = $dbw->select(
+                               'user_properties', // table
+                               array( 'up_user' ), // fields
+                               array( "up_user > $lastUserID" ), // conditions
+                               __METHOD__, // caller
+                               array( 'LIMIT' => $batchSize ) // options
+                       );
+                       if ( !$res->numRows() ) {
+                               $dbw->commit();
+                               break;
+                       }
+                       $total += $res->numRows();
+
+                       $ids = array();
+                       foreach ( $res as $row ) {
+                               $ids[] = $row->up_user;
+                       }
+                       $lastUserID = max( $ids );
+
+                       foreach ( $ids as $id ) {
+                               $user = User::newFromId( $id );
+                               // Skip anonymous users
+                               if ( !$user->isLoggedIn() ) {
+                                       continue;
+                               }
+                               // If the user has disabled 'Email me when my 
user talk page is changed'
+                               // also disable the talk page email 
notification in Echo.
+                               if ( $user->getOption( 'enotifusertalkpages', 0 
) ) {
+                                       $user->setOption( 
'echo-subscriptions-email-edit-user-talk ', 0 );
+                               }
+                               $user->setOption( 
'echo-subscriptions-web-reverted', 1 );
+                               $user->setOption( 
'echo-subscriptions-web-article-linked', 1 );
+                               $user->setOption( 
'echo-subscriptions-email-mention', 0 );
+                               $user->setOption( 
'echo-subscriptions-email-page-review', 0 );
+                               $user->setOption( 
'echo-subscriptions-email-edit-thank', 0 );
+                               $user->setOption( 
'echo-subscriptions-email-article-linked', 0 );
+                               $user->saveSettings();
+                       }
+
+                       echo "$total\n";
+
+                       wfWaitForSlaves();
+               }
+               echo "Done\n";
+       }
+}
+
+$maintClass = 'setEchoUserOptions'; // Tells it to run the class
+require_once( RUN_MAINTENANCE_IF_MAIN );

-- 
To view, visit https://gerrit.wikimedia.org/r/60689
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I89db959e1ce99d29f00ccb93ac5b7ca84825f111
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Echo
Gerrit-Branch: master
Gerrit-Owner: Kaldari <rkald...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to