103 lines
4.4 KiB
Scala
103 lines
4.4 KiB
Scala
package lila.pref
|
|
|
|
import reactivemongo.api.bson._
|
|
|
|
import lila.db.BSON
|
|
import lila.db.dsl._
|
|
|
|
private object PrefHandlers {
|
|
|
|
implicit val prefBSONHandler = new BSON[Pref] {
|
|
|
|
def reads(r: BSON.Reader): Pref =
|
|
Pref(
|
|
_id = r str "_id",
|
|
bg = r.getD("bg", Pref.default.bg),
|
|
bgImg = r.strO("bgImg"),
|
|
is3d = r.getD("is3d", Pref.default.is3d),
|
|
theme = r.getD("theme", Pref.default.theme),
|
|
pieceSet = r.getD("pieceSet", Pref.default.pieceSet),
|
|
theme3d = r.getD("theme3d", Pref.default.theme3d),
|
|
pieceSet3d = r.getD("pieceSet3d", Pref.default.pieceSet3d),
|
|
soundSet = r.getD("soundSet", Pref.default.soundSet),
|
|
blindfold = r.getD("blindfold", Pref.default.blindfold),
|
|
autoQueen = r.getD("autoQueen", Pref.default.autoQueen),
|
|
autoThreefold = r.getD("autoThreefold", Pref.default.autoThreefold),
|
|
takeback = r.getD("takeback", Pref.default.takeback),
|
|
moretime = r.getD("moretime", Pref.default.moretime),
|
|
clockTenths = r.getD("clockTenths", Pref.default.clockTenths),
|
|
clockBar = r.getD("clockBar", Pref.default.clockBar),
|
|
clockSound = r.getD("clockSound", Pref.default.clockSound),
|
|
premove = r.getD("premove", Pref.default.premove),
|
|
animation = r.getD("animation", Pref.default.animation),
|
|
captured = r.getD("captured", Pref.default.captured),
|
|
follow = r.getD("follow", Pref.default.follow),
|
|
highlight = r.getD("highlight", Pref.default.highlight),
|
|
destination = r.getD("destination", Pref.default.destination),
|
|
coords = r.getD("coords", Pref.default.coords),
|
|
replay = r.getD("replay", Pref.default.replay),
|
|
challenge = r.getD("challenge", Pref.default.challenge),
|
|
message = r.getD("message", Pref.default.message),
|
|
studyInvite = r.getD("studyInvite", Pref.default.studyInvite),
|
|
coordColor = r.getD("coordColor", Pref.default.coordColor),
|
|
submitMove = r.getD("submitMove", Pref.default.submitMove),
|
|
confirmResign = r.getD("confirmResign", Pref.default.confirmResign),
|
|
mention = r.getD("mention", Pref.default.mention),
|
|
insightShare = r.getD("insightShare", Pref.default.insightShare),
|
|
keyboardMove = r.getD("keyboardMove", Pref.default.keyboardMove),
|
|
zen = r.getD("zen", Pref.default.zen),
|
|
ratings = r.getD("ratings", Pref.default.ratings),
|
|
rookCastle = r.getD("rookCastle", Pref.default.rookCastle),
|
|
pieceNotation = r.getD("pieceNotation", Pref.default.pieceNotation),
|
|
resizeHandle = r.getD("resizeHandle", Pref.default.resizeHandle),
|
|
moveEvent = r.getD("moveEvent", Pref.default.moveEvent),
|
|
tags = r.getD("tags", Pref.default.tags)
|
|
)
|
|
|
|
def writes(w: BSON.Writer, o: Pref) =
|
|
$doc(
|
|
"_id" -> o._id,
|
|
"bg" -> o.bg,
|
|
"bgImg" -> o.bgImg,
|
|
"is3d" -> o.is3d,
|
|
"theme" -> o.theme,
|
|
"pieceSet" -> o.pieceSet,
|
|
"theme3d" -> o.theme3d,
|
|
"pieceSet3d" -> o.pieceSet3d,
|
|
"soundSet" -> SoundSet.name2key(o.soundSet),
|
|
"blindfold" -> o.blindfold,
|
|
"autoQueen" -> o.autoQueen,
|
|
"autoThreefold" -> o.autoThreefold,
|
|
"takeback" -> o.takeback,
|
|
"moretime" -> o.moretime,
|
|
"clockTenths" -> o.clockTenths,
|
|
"clockBar" -> o.clockBar,
|
|
"clockSound" -> o.clockSound,
|
|
"premove" -> o.premove,
|
|
"animation" -> o.animation,
|
|
"captured" -> o.captured,
|
|
"follow" -> o.follow,
|
|
"highlight" -> o.highlight,
|
|
"destination" -> o.destination,
|
|
"coords" -> o.coords,
|
|
"replay" -> o.replay,
|
|
"challenge" -> o.challenge,
|
|
"message" -> o.message,
|
|
"studyInvite" -> o.studyInvite,
|
|
"coordColor" -> o.coordColor,
|
|
"submitMove" -> o.submitMove,
|
|
"confirmResign" -> o.confirmResign,
|
|
"mention" -> o.mention,
|
|
"insightShare" -> o.insightShare,
|
|
"keyboardMove" -> o.keyboardMove,
|
|
"zen" -> o.zen,
|
|
"ratings" -> o.ratings,
|
|
"rookCastle" -> o.rookCastle,
|
|
"moveEvent" -> o.moveEvent,
|
|
"pieceNotation" -> o.pieceNotation,
|
|
"resizeHandle" -> o.resizeHandle,
|
|
"tags" -> o.tags
|
|
)
|
|
}
|
|
}
|