use proper Color type and reuse json handlers
parent
a0c13389ce
commit
14828e8478
|
@ -271,7 +271,11 @@ object perfStat {
|
|||
results.results map { r =>
|
||||
tr(
|
||||
td(userIdLink(r.opId.value.some, withOnline = false), " (", r.opInt, ")"),
|
||||
td(a(cls := "glpt", href := routes.Round.watcher(r.gameId, r.color))(absClientDateTime(r.at)))
|
||||
td(
|
||||
a(cls := "glpt", href := routes.Round.watcher(r.gameId, r.color.name))(
|
||||
absClientDateTime(r.at)
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
)
|
||||
|
|
|
@ -6,7 +6,6 @@ import play.api.libs.json._
|
|||
|
||||
import lila.common.Iso
|
||||
import lila.common.Json._
|
||||
import lila.game.JsonView.colorWrites
|
||||
import lila.game.LightPov
|
||||
import lila.rating.PerfType
|
||||
import lila.simul.Simul
|
||||
|
|
|
@ -8,7 +8,7 @@ import reactivemongo.api.ReadPreference
|
|||
|
||||
import lila.analyse.{ JsonView => analysisJson, Analysis }
|
||||
import lila.common.config._
|
||||
import lila.common.Json.jodaWrites
|
||||
import lila.common.Json._
|
||||
import lila.common.paginator.{ Paginator, PaginatorJson }
|
||||
import lila.db.dsl._
|
||||
import lila.db.paginator.Adapter
|
||||
|
|
|
@ -9,7 +9,7 @@ import scala.concurrent.duration._
|
|||
|
||||
import lila.analyse.{ JsonView => analysisJson, Analysis }
|
||||
import lila.common.config.MaxPerSecond
|
||||
import lila.common.Json.jodaWrites
|
||||
import lila.common.Json._
|
||||
import lila.common.{ HTTPRequest, LightUser }
|
||||
import lila.db.dsl._
|
||||
import lila.game.JsonView._
|
||||
|
|
|
@ -3,6 +3,7 @@ package lila.bot
|
|||
import play.api.i18n.Lang
|
||||
import play.api.libs.json._
|
||||
|
||||
import lila.common.Json._
|
||||
import lila.common.Json.jodaWrites
|
||||
import lila.game.JsonView._
|
||||
import lila.game.{ Game, GameRepo, Pov }
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
package lila.challenge
|
||||
|
||||
import play.api.libs.json._
|
||||
import play.api.i18n.Lang
|
||||
import play.api.libs.json._
|
||||
|
||||
import lila.common.Json._
|
||||
import lila.game.JsonView._
|
||||
import lila.i18n.{ I18nKeys => trans }
|
||||
import lila.socket.Socket.SocketVersion
|
||||
import lila.socket.UserLagCache
|
||||
|
@ -13,7 +15,6 @@ final class JsonView(
|
|||
isOnline: lila.socket.IsOnline
|
||||
) {
|
||||
|
||||
import lila.game.JsonView._
|
||||
import Challenge._
|
||||
|
||||
implicit private val RegisteredWrites = OWrites[Challenger.Registered] { r =>
|
||||
|
|
|
@ -41,9 +41,16 @@ object Json {
|
|||
JsNumber(time.getMillis)
|
||||
}
|
||||
|
||||
implicit val colorWrites: Writes[chess.Color] = Writes { c =>
|
||||
JsString(c.name)
|
||||
}
|
||||
|
||||
implicit val fenFormat: Format[FEN] = stringIsoFormat[FEN](Iso.fenIso)
|
||||
|
||||
implicit val uciReader: Reads[Uci] = Reads.of[String] flatMapResult { str =>
|
||||
implicit val uciReads: Reads[Uci] = Reads.of[String] flatMapResult { str =>
|
||||
JsResult.fromTry(Uci(str) toTry s"Invalid UCI: $str")
|
||||
}
|
||||
implicit val uciWrites: Writes[Uci] = Writes { u =>
|
||||
JsString(u.uci)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ import play.api.libs.ws.StandaloneWSClient
|
|||
import scala.concurrent.ExecutionContext
|
||||
import scala.concurrent.duration._
|
||||
|
||||
import lila.common.Json.uciReader
|
||||
import lila.common.Json._
|
||||
import lila.common.ThreadLocalRandom
|
||||
import lila.game.Game
|
||||
import lila.memo.SettingStore
|
||||
|
|
|
@ -17,6 +17,7 @@ import chess.{
|
|||
import JsonView._
|
||||
import lila.chat.{ PlayerLine, UserLine }
|
||||
import lila.common.ApiVersion
|
||||
import lila.common.Json._
|
||||
|
||||
sealed trait Event {
|
||||
def typ: String
|
||||
|
|
|
@ -5,7 +5,7 @@ import play.api.libs.json._
|
|||
import chess.format.{ FEN, Forsyth }
|
||||
import chess.variant.Crazyhouse
|
||||
import chess.{ Clock, Color }
|
||||
import lila.common.Json.jodaWrites
|
||||
import lila.common.Json._
|
||||
|
||||
final class JsonView(rematches: Rematches) {
|
||||
|
||||
|
@ -143,12 +143,4 @@ object JsonView {
|
|||
implicit val sourceWriter: Writes[Source] = Writes { s =>
|
||||
JsString(s.name)
|
||||
}
|
||||
|
||||
implicit val colorWrites: Writes[Color] = Writes { c =>
|
||||
JsString(c.name)
|
||||
}
|
||||
|
||||
implicit val fenWrites: Writes[FEN] = Writes { f =>
|
||||
JsString(f.value)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import org.joda.time.format.ISODateTimeFormat
|
|||
import play.api.i18n.Lang
|
||||
import play.api.libs.json._
|
||||
|
||||
import lila.common.Json.{ jodaWrites => _, _ }
|
||||
import lila.common.LightUser
|
||||
import lila.rating.{ Glicko, Perf, PerfType }
|
||||
import lila.user.User
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package lila.perfStat
|
||||
|
||||
import chess.Color
|
||||
import org.joda.time.{ DateTime, Period }
|
||||
|
||||
import lila.common.Heapsort
|
||||
|
@ -196,7 +197,7 @@ object RatingAt {
|
|||
} orElse cur
|
||||
}
|
||||
|
||||
case class Result(opInt: Int, opId: UserId, at: DateTime, gameId: String, color: String)
|
||||
case class Result(opInt: Int, opId: UserId, at: DateTime, gameId: String, color: Color)
|
||||
|
||||
case class Results(results: List[Result]) extends AnyVal {
|
||||
def agg(pov: Pov, comp: Int) =
|
||||
|
@ -211,7 +212,7 @@ case class Results(results: List[Result]) extends AnyVal {
|
|||
UserId(~pov.opponent.userId),
|
||||
pov.game.movedAt,
|
||||
pov.gameId,
|
||||
if (pov.player.color == chess.White) "white" else "black"
|
||||
pov.player.color
|
||||
) :: results,
|
||||
Results.nb,
|
||||
Ordering.by[Result, Int](_.opInt * comp)
|
||||
|
|
|
@ -7,6 +7,7 @@ import play.api.libs.json._
|
|||
import scala.math
|
||||
|
||||
import lila.common.ApiVersion
|
||||
import lila.common.Json._
|
||||
import lila.game.JsonView._
|
||||
import lila.game.{ Pov, Game, Player => GamePlayer }
|
||||
import lila.pref.Pref
|
||||
|
|
|
@ -3,6 +3,7 @@ package lila.simul
|
|||
import play.api.libs.json._
|
||||
|
||||
import lila.common.LightUser
|
||||
import lila.common.Json._
|
||||
import lila.game.{ Game, GameRepo }
|
||||
import lila.user.User
|
||||
|
||||
|
@ -12,10 +13,6 @@ final class JsonView(
|
|||
proxyRepo: lila.round.GameProxyRepo
|
||||
)(implicit ec: scala.concurrent.ExecutionContext) {
|
||||
|
||||
implicit private val colorWriter: Writes[chess.Color] = Writes { c =>
|
||||
JsString(c.name)
|
||||
}
|
||||
|
||||
implicit private val simulTeamWriter = Json.writes[SimulTeam]
|
||||
|
||||
private def fetchGames(simul: Simul) =
|
||||
|
|
|
@ -127,21 +127,12 @@ object JsonView {
|
|||
implicit val chapterIdWrites: Writes[Chapter.Id] = stringIsoWriter(Chapter.idIso)
|
||||
implicit val chapterNameWrites: Writes[Chapter.Name] = stringIsoWriter(Chapter.nameIso)
|
||||
|
||||
implicit private[study] val uciWrites: Writes[Uci] = Writes[Uci] { u =>
|
||||
JsString(u.uci)
|
||||
}
|
||||
implicit private val posReader: Reads[Pos] = Reads[Pos] { v =>
|
||||
(v.asOpt[String] flatMap Pos.fromKey).fold[JsResult[Pos]](JsError(Nil))(JsSuccess(_))
|
||||
}
|
||||
implicit private[study] val pathWrites: Writes[Path] = Writes[Path] { p =>
|
||||
JsString(p.toString)
|
||||
}
|
||||
implicit private[study] val colorWriter: Writes[chess.Color] = Writes[chess.Color] { c =>
|
||||
JsString(c.name)
|
||||
}
|
||||
implicit private[study] val fenWriter: Writes[FEN] = Writes[FEN] { f =>
|
||||
JsString(f.value)
|
||||
}
|
||||
implicit private[study] val sriWriter: Writes[Sri] = Writes[Sri] { sri =>
|
||||
JsString(sri.value)
|
||||
}
|
||||
|
|
|
@ -106,6 +106,8 @@ final class StudyMultiBoard(
|
|||
|
||||
private object handlers {
|
||||
|
||||
import lila.common.Json._
|
||||
|
||||
implicit val previewPlayerWriter: Writes[ChapterPreview.Player] = Writes[ChapterPreview.Player] { p =>
|
||||
Json
|
||||
.obj("name" -> p.name)
|
||||
|
|
Loading…
Reference in New Issue