deal with tournament trolls
This commit is contained in:
parent
d2c1323b04
commit
ea50250393
|
@ -190,5 +190,9 @@ object Tournament extends LilaController {
|
|||
}
|
||||
|
||||
private def chatOf(tour: lila.tournament.Tournament)(implicit ctx: Context) =
|
||||
ctx.isAuth ?? (Env.chat.api.userChat find tour.id map (_.some))
|
||||
ctx.isAuth ?? {
|
||||
Env.chat.api.userChat find tour.id map { chat ⇒
|
||||
ctx.troll.fold(chat, chat.filterTroll).some
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,8 @@ sealed trait AnyChat {
|
|||
def id: ChatId
|
||||
def lines: List[Line]
|
||||
|
||||
def filterTroll: AnyChat
|
||||
|
||||
def toJsonString = Line toJsonString lines
|
||||
}
|
||||
|
||||
|
@ -15,11 +17,18 @@ sealed trait Chat[L <: Line] extends AnyChat {
|
|||
case class UserChat(
|
||||
id: ChatId,
|
||||
lines: List[UserLine]) extends Chat[UserLine] {
|
||||
|
||||
def filterTroll = copy(lines = lines filterNot (_.troll))
|
||||
}
|
||||
|
||||
case class MixedChat(
|
||||
id: ChatId,
|
||||
lines: List[Line]) extends Chat[Line] {
|
||||
|
||||
def filterTroll = copy(lines = lines filter {
|
||||
case l: UserLine ⇒ !l.troll
|
||||
case l: PlayerLine ⇒ true
|
||||
})
|
||||
}
|
||||
|
||||
object Chat {
|
||||
|
|
|
@ -12,7 +12,7 @@ trait Historical[M <: SocketMember] { self: SocketActor[M] ⇒
|
|||
}
|
||||
|
||||
def sendMessage(message: History.Message)(member: M) {
|
||||
if (!message.troll || member.troll) member.channel push message.msg.pp
|
||||
if (!message.troll || member.troll) member.channel push message.msg
|
||||
}
|
||||
def sendMessage(member: M)(message: History.Message) {
|
||||
sendMessage(message)(member)
|
||||
|
|
Loading…
Reference in a new issue