fix auto toggle engine/booster and remove unused code

pull/339/head^2
Thibault Duplessis 2015-02-24 11:43:09 +01:00
parent 5f9d12bda9
commit c4ee9b7a29
4 changed files with 23 additions and 18 deletions

View File

@ -20,11 +20,11 @@ object Mod extends LilaController {
private def assessApi = Env.mod.assessApi
def engine(username: String) = Secure(_.MarkEngine) { _ =>
me => modApi.adjust(me.id, username) inject redirect(username)
me => modApi.toggleEngine(me.id, username) inject redirect(username)
}
def booster(username: String) = Secure(_.MarkBooster) { _ =>
me => modApi.adjustBooster(me.id, username) inject redirect(username)
me => modApi.toggleBooster(me.id, username) inject redirect(username)
}
def troll(username: String) = Secure(_.MarkTroll) { _ =>

View File

@ -45,7 +45,6 @@ case class Check(userId: String)
package mod {
case class MarkCheater(userId: String)
case class MarkBooster(userId: String)
}
package setup {

View File

@ -12,28 +12,34 @@ final class ModApi(
firewall: Firewall,
lilaBus: lila.common.Bus) {
def adjust(mod: String, username: String): Funit = withUser(username) { user =>
logApi.engine(mod, user.id, !user.engine) zip
UserRepo.toggleEngine(user.id) >>- {
if (!user.engine) lilaBus.publish(lila.hub.actorApi.mod.MarkCheater(user.id), 'adjustCheater)
def toggleEngine(mod: String, username: String): Funit = withUser(username) { user =>
setEngine(mod, username, !user.engine)
}
def setEngine(mod: String, username: String, v: Boolean): Funit = withUser(username) { user =>
logApi.engine(mod, user.id, v) zip
UserRepo.setEngine(user.id, v) >>- {
if (v) lilaBus.publish(lila.hub.actorApi.mod.MarkCheater(user.id), 'adjustCheater)
} void
}
def autoAdjust(username: String): Funit = logApi.wasUnengined(User.normalize(username)) flatMap {
case true => funit
case false => adjust("lichess", username)
case false => setEngine("lichess", username, true)
}
def adjustBooster(mod: String, username: String): Funit = withUser(username) { user =>
logApi.booster(mod, user.id, !user.booster) zip
UserRepo.toggleBooster(user.id) >>- {
if (!user.booster) lilaBus.publish(lila.hub.actorApi.mod.MarkBooster(user.id), 'adjustBooster)
} void
def toggleBooster(mod: String, username: String): Funit = withUser(username) { user =>
setBooster(mod, username, !user.booster)
}
def setBooster(mod: String, username: String, v: Boolean): Funit = withUser(username) { user =>
logApi.booster(mod, user.id, v) zip
UserRepo.setBooster(user.id, v) void
}
def autoBooster(username: String): Funit = logApi.wasUnbooster(User.normalize(username)) flatMap {
case true => funit
case false => adjustBooster("lichess", username)
case true => funit
case false => setBooster("lichess", username, true)
}
def troll(mod: String, username: String): Fu[Boolean] = withUser(username) { u =>

View File

@ -222,9 +222,9 @@ trait UserRepo {
$setBson("engine" -> BSONBoolean(!u.engine))
}
def toggleBooster(id: ID): Funit = $update.docBson[ID, User](id) { u =>
$setBson("booster" -> BSONBoolean(!u.booster))
}
def setEngine(id: ID, v: Boolean): Funit = $update.field(id, "engine", v)
def setBooster(id: ID, v: Boolean): Funit = $update.field(id, "booster", v)
def toggleIpBan(id: ID) = $update.doc[ID, User](id) { u => $set("ipBan" -> !u.ipBan) }