add slack mod log

pull/6962/head
Thibault Duplessis 2020-07-08 20:08:11 +02:00
parent 7e9ed2e774
commit 6265cdbf49
2 changed files with 29 additions and 16 deletions

View File

@ -249,21 +249,20 @@ final class ModlogApi(repo: ModlogRepo, userRepo: UserRepo, slackApi: lila.slack
private def slackMonitor(m: Modlog): Funit = {
import lila.mod.{ Modlog => M }
userRepo.isMonitoredMod(m.mod) flatMap {
_ ?? slackApi.monitorMod(
m.mod,
icon = m.action match {
case M.alt | M.engine | M.booster | M.troll | M.closeAccount => "thorhammer"
case M.unalt | M.unengine | M.unbooster | M.untroll | M.reopenAccount => "large_blue_circle"
case M.deletePost | M.deleteTeam | M.terminateTournament => "x"
case M.chatTimeout => "hourglass_flowing_sand"
case M.closeTopic => "lock"
case M.openTopic => "unlock"
case M.modMessage => "left_speech_bubble"
case _ => "gear"
},
text = s"""${m.showAction.capitalize} ${m.user.??(u => s"@$u ")}${~m.details}"""
)
val icon = m.action match {
case M.alt | M.engine | M.booster | M.troll | M.closeAccount => "thorhammer"
case M.unalt | M.unengine | M.unbooster | M.untroll | M.reopenAccount => "large_blue_circle"
case M.deletePost | M.deleteTeam | M.terminateTournament => "x"
case M.chatTimeout => "hourglass_flowing_sand"
case M.closeTopic => "lock"
case M.openTopic => "unlock"
case M.modMessage => "left_speech_bubble"
case _ => "gear"
}
val text = s"""${m.showAction.capitalize} ${m.user.??(u => s"@$u ")}${~m.details}"""
userRepo.isMonitoredMod(m.mod) flatMap {
_ ?? slackApi.monitorMod(m.mod, icon = icon, text = text)
}
slackApi.logMod(m.mod, icon = icon, text = text)
}
}

View File

@ -54,7 +54,7 @@ final class SlackApi(
if (username == "Anonymous") "Anonymous"
else s"@$username"
private def amount(cents: Int) = s"$$${BigDecimal(cents, 2)}"
private def amount(cents: Int) = s"$$${BigDecimal(cents.toLong, 2)}"
}
def publishEvent(event: Event): Funit =
@ -104,6 +104,20 @@ final class SlackApi(
}
}
def logMod(modId: User.ID, icon: String, text: String): Funit =
lightUser(modId) flatMap {
_ ?? { mod =>
client(
SlackMessage(
username = mod.name,
icon = "scroll",
text = s":$icon: ${linkifyUsers(text)}",
channel = "tavern-log"
)
)
}
}
def chatPanic(mod: User, v: Boolean): Funit =
client(
SlackMessage(