File tree Expand file tree Collapse file tree 2 files changed +24
-6
lines changed
Expand file tree Collapse file tree 2 files changed +24
-6
lines changed Original file line number Diff line number Diff line change @@ -1014,6 +1014,25 @@ final class Database
10141014 return true ;
10151015 }
10161016
1017+ void del_user_tickers (RoomType type)(string username)
1018+ {
1019+ auto sql = text(
1020+ " DELETE FROM " , tickers_table,
1021+ " WHERE username = ? AND room IN (" ,
1022+ " SELECT r.room FROM " , rooms_table, " r" ,
1023+ " WHERE r.room = " , tickers_table, " .room"
1024+ );
1025+ auto parameters = [username];
1026+
1027+ if (type != RoomType.any) {
1028+ sql ~= " AND r.type = ?" ;
1029+ parameters ~= [text(cast (int ) type)];
1030+ }
1031+ sql ~= " );" ;
1032+
1033+ query(sql, parameters);
1034+ }
1035+
10171036 string del_oldest_ticker (string room_name)
10181037 {
10191038 enum sql = text(
Original file line number Diff line number Diff line change @@ -444,14 +444,13 @@ final class Server
444444
445445 void del_user_tickers (RoomType type)(string username)
446446 {
447- // Joined rooms
447+ db.del_user_tickers! type(username);
448+
449+ // Send ticker removal messages in joined rooms
450+ enum permanent = false ;
448451 foreach (ref room ; rooms)
449452 if (type == RoomType.any || room.type == type)
450- room.del_ticker(username);
451-
452- // Stored rooms
453- foreach (ref ticker ; db.user_tickers! type(username))
454- db.del_ticker(ticker.room_name, username);
453+ room.del_ticker(username, permanent);
455454 }
456455
457456 Room get_room (string room_name)
You can’t perform that action at this time.
0 commit comments