more chat refactoring
parent
f3e37779ce
commit
b81180b875
|
@ -32,15 +32,6 @@ object RoomSocket {
|
|||
case nv: NotifyVersion[_] =>
|
||||
version = version.inc
|
||||
send(Protocol.Out.tellRoomVersion(roomId, nv.msg, version, nv.troll))
|
||||
case lila.chat.actorApi.ChatLine(_, line) =>
|
||||
line match {
|
||||
case line: UserLine => this ! NotifyVersion("message", lila.chat.JsonView(line), line.troll)
|
||||
case _ =>
|
||||
}
|
||||
// case chatApi.OnTimeout(userId) =>
|
||||
// this ! NotifyVersion("chat_timeout", userId, false)
|
||||
// case chatApi.OnReinstate(userId) =>
|
||||
// this ! NotifyVersion("chat_reinstate", userId, false)
|
||||
}
|
||||
override def stop() = {
|
||||
super.stop()
|
||||
|
@ -93,6 +84,18 @@ object RoomSocket {
|
|||
}
|
||||
}
|
||||
|
||||
def subscribeChat(rooms: TrouperMap[RoomState]) = {
|
||||
import lila.chat.actorApi._
|
||||
lila.common.Bus.subscribeFun("chat") {
|
||||
case ChatLine(id, line: UserLine) =>
|
||||
rooms.tellIfPresent(id.value, NotifyVersion("message", lila.chat.JsonView(line), line.troll))
|
||||
case OnTimeout(id, userId) =>
|
||||
rooms.tellIfPresent(id.value, NotifyVersion("chat_timeout", userId, false))
|
||||
case OnReinstate(id, userId) =>
|
||||
rooms.tellIfPresent(id.value, NotifyVersion("chat_reinstate", userId, false))
|
||||
}
|
||||
}
|
||||
|
||||
object Protocol {
|
||||
|
||||
object In {
|
||||
|
|
|
@ -46,6 +46,8 @@ final private class SimulSocket(
|
|||
|
||||
lazy val rooms = makeRoomMap(send)
|
||||
|
||||
subscribeChat(rooms)
|
||||
|
||||
private lazy val handler: Handler = roomHandler(rooms, chat, logger, roomId => _.Simul(roomId.value).some)
|
||||
|
||||
private lazy val send: String => Unit = remoteSocketApi.makeSender("simul-out").apply _
|
||||
|
|
|
@ -28,6 +28,8 @@ final private class StudySocket(
|
|||
|
||||
lazy val rooms = makeRoomMap(send)
|
||||
|
||||
subscribeChat(rooms)
|
||||
|
||||
def isPresent(studyId: Study.Id, userId: User.ID): Fu[Boolean] =
|
||||
remoteSocketApi.request[Boolean](
|
||||
id => send(Protocol.Out.getIsPresent(id, studyId, userId)),
|
||||
|
|
|
@ -67,6 +67,8 @@ final private class TournamentSocket(
|
|||
|
||||
lazy val rooms = makeRoomMap(send)
|
||||
|
||||
subscribeChat(rooms)
|
||||
|
||||
private lazy val handler: Handler =
|
||||
roomHandler(rooms, chat, logger, roomId => _.Tournament(roomId.value).some)
|
||||
|
||||
|
|
Loading…
Reference in New Issue