UltrasonicNXT has uploaded a new change for review.

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


Change subject: Stop storing user names in DB
......................................................................

Stop storing user names in DB

This means MWC is not affected by user renames, and just carries on with
the name being updated automatically

Change-Id: I4cfc9de3c90ed9a1cd0aac64b6cf223d94b3f337
---
M GetNew.api.php
M Kick.api.php
M MediaWikiChat.js
M MediaWikiChat.php
M MediaWikiChatClass.php
M Send.api.php
M SendPM.api.php
M chat.sql
M chat_users.sql
9 files changed, 21 insertions(+), 46 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MediaWikiChat 
refs/changes/12/109512/1

diff --git a/GetNew.api.php b/GetNew.api.php
index 054fd89..f2ff102 100644
--- a/GetNew.api.php
+++ b/GetNew.api.php
@@ -19,7 +19,7 @@
                        $res = $dbr->selectField(
                                        'chat_users',
                                        array( 'cu_timestamp' ),
-                                       array( "cu_user_id = 
{$wgUser->getId()}" ),
+                                       array( 'cu_user_id' => $wgUser->getId() 
),
                                        __METHOD__
                        );
 
@@ -37,7 +37,6 @@
                                        'chat_users',
                                        array(
                                                'cu_user_id' => 
$wgUser->getId(),
-                                               'cu_user_name' => 
$wgUser->getName(),
                                                'cu_timestamp' => $thisCheck,
                                        ),
                                        __METHOD__
@@ -46,10 +45,7 @@
 
                        $res = $dbr->select(
                                'chat',
-                               array(
-                                       'chat_user_name', 'chat_user_id', 
'chat_message',
-                                       'chat_timestamp', 'chat_type', 
'chat_to_name', 'chat_to_id'
-                               ),
+                               array( 'chat_user_id', 'chat_message', 
'chat_timestamp', 'chat_type', 'chat_to_id' ),
                                array( "chat_timestamp > $lastCheck" ),
                                '',
                                __METHOD__,
@@ -65,7 +61,6 @@
                                if ( $row->chat_type == 
MediaWikiChat::TYPE_MESSAGE ) {
 
                                        $id = $row->chat_user_id;
-                                       $name = $row->chat_user_name;
                                        $message = $row->chat_message;
                                        $timestamp = $row->chat_timestamp;
 
@@ -74,26 +69,24 @@
                                        $result->addValue( array( $mName, 
'messages', $timestamp ), 'from', strval( $id ) );
                                        $result->addValue( array( $mName, 
'messages', $timestamp ), '*', $message );
 
-                                       $users[$id] = $name; // ensure message 
sender is in users list
+                                       $users[$id] = true; // ensure message 
sender is in users list
 
                                } elseif ( $row->chat_type == 
MediaWikiChat::TYPE_PM
                                                && (
-                                                       $row->chat_user_name == 
$wgUser->getName()
-                                                       || $row->chat_to_name 
== $wgUser->getName()
+                                                       $row->chat_user_id == 
$wgUser->getId()
+                                                       || $row->chat_to_id == 
$wgUser->getId()
                                                ) ) {
 
                                        $message = $row->chat_message;
                                        $timestamp = $row->chat_timestamp;
 
                                        $fromid = $row->chat_user_id;
-                                       $fromname = $row->chat_user_name;
                                        $toid = $row->chat_to_id;
-                                       $toname = $row->chat_to_name;
 
-                                       if ( $fromname == $wgUser->getName() ) {
-                                               $convwith = $toname;
+                                       if ( $fromid == $wgUser->getId() ) {
+                                               $convwith = 
User::newFromId($toid)->getName();
                                        } else {
-                                               $convwith = $fromname;
+                                               $convwith = 
User::newFromId($fromid)->getName();
                                        }
 
                                        $message = MediaWikiChat::parseMessage( 
$message );
@@ -102,8 +95,8 @@
                                        $result->addValue( array( $mName, 
'pms', $timestamp ), 'from', $fromid );
                                        $result->addValue( array( $mName, 
'pms', $timestamp ), 'conv', $convwith );
 
-                                       $users[$fromid] = $fromname; // ensure 
pm sender is in users list
-                                       $users[$toid] = $toname; // ensure pm 
receiver is in users list
+                                       $users[$fromid] = true; // ensure pm 
sender is in users list
+                                       $users[$toid] = true; // ensure pm 
receiver is in users list
 
                                } elseif ( $row->chat_type == 
MediaWikiChat::TYPE_KICK ) {
                                        if ( $row->chat_to_name == 
$wgUser->getName() ) {
@@ -125,22 +118,22 @@
                                }
                        }
 
-                       $users[$wgUser->getId()] = $wgUser->getName(); // 
ensure current user is in the users list
+                       $users[$wgUser->getId()] = true; // ensure current user 
is in the users list
 
                        $onlineUsers = MediaWikiChat::getOnline();
-                       foreach ( $onlineUsers as $id => $name ) {
-                               $users[$id] = $name; // ensure all online users 
are present in the users list
+                       foreach ( $onlineUsers as $id ) {
+                               $users[$id] = true; // ensure all online users 
are present in the users list
                        }
                        $genderCache = GenderCache::singleton();
-                       foreach ( $users as $id => $name ) {
+                       foreach ( $users as $id => $tr ) {
                                $userObject = User::newFromId( $id );
                                $idString = strval( $id );
 
-                               $result->addValue( array( $mName, 'users', 
$idString ), 'name', $name );
+                               $result->addValue( array( $mName, 'users', 
$idString ), 'name', $userObject->getName() );
                                if ( $wgChatSocialAvatars ) {
                                        $result->addValue( array( $mName, 
'users', $idString ), 'avatar', MediaWikiChat::getAvatar( $id ) );
                                }
-                               if ( array_key_exists( $id, $onlineUsers ) ) {
+                               if ( in_array( $id, $onlineUsers ) ) {
                                        $result->addValue( array( $mName, 
'users', $idString ), 'online', true );
                                }
                                $groups = $userObject->getGroups();
diff --git a/Kick.api.php b/Kick.api.php
index 92fea72..46d7d6a 100644
--- a/Kick.api.php
+++ b/Kick.api.php
@@ -15,16 +15,13 @@
                        $dbw = wfGetDB( DB_MASTER );
 
                        $fromId = $wgUser->getId();
-                       $fromName = $wgUser->getName();
                        $timestamp = MediaWikiChat::now();
 
                        $dbw->insert(
                                'chat',
                                array(
                                        'chat_to_id' => $toId,
-                                       'chat_to_name' => $toName,
                                        'chat_user_id' => $fromId,
-                                       'chat_user_name' => $fromName,
                                        'chat_timestamp' => $timestamp,
                                        'chat_type' => MediaWikiChat::TYPE_KICK
                                ),
diff --git a/MediaWikiChat.js b/MediaWikiChat.js
index a048011..83894dd 100644
--- a/MediaWikiChat.js
+++ b/MediaWikiChat.js
@@ -316,7 +316,6 @@
        },
 
        doUsers: function( newusers ) {
-               MediaWikiChat.newusers = newusers;
                var allusers = MediaWikiChat.users.concat( newusers );
                allusers = MediaWikiChat.unique( allusers );
 
diff --git a/MediaWikiChat.php b/MediaWikiChat.php
index 038e755..a1e37ae 100644
--- a/MediaWikiChat.php
+++ b/MediaWikiChat.php
@@ -17,7 +17,7 @@
 $wgExtensionCredits['specialpage'][] = array(
        'path' => __FILE__,
        'name' => 'MediaWikiChat',
-       'version' => '2.2',
+       'version' => '2.3',
        'author' => 'Adam Carter/UltrasonicNXT',
        'url' => 'https://www.mediawiki.org/wiki/Extension:MediaWikiChat',
        'descriptionmsg' => 'chat-desc',
diff --git a/MediaWikiChatClass.php b/MediaWikiChatClass.php
index 2d88d99..c4ff1aa 100644
--- a/MediaWikiChatClass.php
+++ b/MediaWikiChatClass.php
@@ -51,18 +51,14 @@
                $dbw = wfGetDB( DB_MASTER );
 
                $toid = $user->getId();
-               $toname = $user->getName();
                $fromid = $wgUser->getId();
-               $fromname = $wgUser->getName();
                $timestamp = MediaWikiChat::now();
 
                $dbw->insert(
                        'chat',
                        array(
                                'chat_to_id' => $toid,
-                               'chat_to_name' => $toname,
                                'chat_user_id' => $fromid,
-                               'chat_user_name' => $fromname,
                                'chat_timestamp' => $timestamp,
                                'chat_type' => $type
                        )
@@ -85,7 +81,7 @@
 
                        $res = $dbr->select(
                                'chat_users',
-                               array( 'cu_user_name', 'cu_user_id' ),
+                               'cu_user_id',
                                array(
                                        "cu_timestamp > $timestamp",
                                        "cu_user_id != {$wgUser->getId()}"
@@ -97,9 +93,8 @@
 
                        foreach ( $res as $row ) {
                                $id = $row->cu_user_id;
-                               $name = $row->cu_user_name;
 
-                               $data[$id] = $name;
+                               $data[] = $id;
                        }
                        return $data;
                } else {
@@ -121,7 +116,7 @@
 
                $res = $dbr->select(
                        'chat_users',
-                       array( 'cu_user_name', 'cu_user_id' ),
+                       'cu_user_id',
                        array(
                                "cu_timestamp > $timestamp",
                                "cu_user_id = {$wgUser->getId()}"
@@ -143,7 +138,7 @@
                $res = $dbr->select(
                        'chat',
                        'chat_timestamp',
-                       array( 'chat_type' => 'message' ),
+                       array( 'chat_type' => MediaWikiChat::TYPE_MESSAGE ),
                        __METHOD__,
                        array(
                                'LIMIT' => 5,
diff --git a/Send.api.php b/Send.api.php
index 4106402..8314866 100644
--- a/Send.api.php
+++ b/Send.api.php
@@ -13,14 +13,12 @@
                                $dbw = wfGetDB( DB_MASTER );
 
                                $id = $wgUser->getId();
-                               $name = $wgUser->getName();
                                $timestamp = MediaWikiChat::now();
 
                                $dbw->insert(
                                        'chat',
                                        array(
                                                'chat_user_id' => $id,
-                                               'chat_user_name' => $name,
                                                'chat_timestamp' => $timestamp,
                                                'chat_message' => $message,
                                                'chat_type' => 
MediaWikiChat::TYPE_MESSAGE
diff --git a/SendPM.api.php b/SendPM.api.php
index 2665a70..e0ef900 100644
--- a/SendPM.api.php
+++ b/SendPM.api.php
@@ -13,18 +13,14 @@
                        if ( $message != '' ) {
                                $dbw = wfGetDB( DB_MASTER );
 
-                               $toName = User::newFromId( $toId )->getName();
                                $fromId = $wgUser->getID();
-                               $fromName = $wgUser->getName();
                                $timestamp = MediaWikiChat::now();
 
                                $dbw->insert(
                                        'chat',
                                        array(
                                                'chat_to_id' => $toId,
-                                               'chat_to_name' => $toName,
                                                'chat_user_id' => $fromId,
-                                               'chat_user_name' => $fromName,
                                                'chat_timestamp' => $timestamp,
                                                'chat_message' => $message,
                                                'chat_type' => 
MediaWikiChat::TYPE_PM
diff --git a/chat.sql b/chat.sql
index 1181e39..aacfc91 100644
--- a/chat.sql
+++ b/chat.sql
@@ -1,9 +1,7 @@
 CREATE TABLE /*_*/chat (
-  chat_user_name varchar(255),
   chat_user_id int(10),
   chat_message text,
   chat_type int(4),
   chat_timestamp bigint NOT NULL PRIMARY KEY,
-  chat_to_name varchar(255),
   chat_to_id int(10)
 ) /*$wgDBTableOptions*/;
\ No newline at end of file
diff --git a/chat_users.sql b/chat_users.sql
index 0a5a4f2..0d1fbba 100644
--- a/chat_users.sql
+++ b/chat_users.sql
@@ -1,5 +1,4 @@
 CREATE TABLE /*_*/chat_users (
-  cu_user_name varchar(255),
   cu_user_id int(10),
   cu_timestamp binary(12)
 ) /*$wgDBTableOptions*/;
\ No newline at end of file

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4cfc9de3c90ed9a1cd0aac64b6cf223d94b3f337
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MediaWikiChat
Gerrit-Branch: master
Gerrit-Owner: UltrasonicNXT <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to