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