download random finished game API WIP
parent
c2d3b4af32
commit
c115606e79
|
@ -34,6 +34,10 @@ object Export extends LilaController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def random = Action.async {
|
||||||
|
Ok.fuccess
|
||||||
|
}
|
||||||
|
|
||||||
def pdf(id: String) = Open { implicit ctx =>
|
def pdf(id: String) = Open { implicit ctx =>
|
||||||
OnlyHumans {
|
OnlyHumans {
|
||||||
OptionResult(GameRepo game id) { game =>
|
OptionResult(GameRepo game id) { game =>
|
||||||
|
|
|
@ -250,6 +250,7 @@ POST /$gameId<\w{8}>/request-analysis controllers.Analyse.requestAnalysi
|
||||||
GET /game/export/$gameId<\w{8}>.pgn controllers.Export.pgn(gameId: String)
|
GET /game/export/$gameId<\w{8}>.pgn controllers.Export.pgn(gameId: String)
|
||||||
GET /game/export/pdf/$gameId<\w{8}>.pdf controllers.Export.pdf(gameId: String)
|
GET /game/export/pdf/$gameId<\w{8}>.pdf controllers.Export.pdf(gameId: String)
|
||||||
GET /game/export/png/$gameId<\w{8}>.png controllers.Export.png(gameId: String)
|
GET /game/export/png/$gameId<\w{8}>.png controllers.Export.png(gameId: String)
|
||||||
|
GET /game/export/png/random.png controllers.Export.random
|
||||||
|
|
||||||
# Fishnet
|
# Fishnet
|
||||||
POST /fishnet/acquire controllers.Fishnet.acquire
|
POST /fishnet/acquire controllers.Fishnet.acquire
|
||||||
|
|
|
@ -241,11 +241,19 @@ object GameRepo {
|
||||||
}
|
}
|
||||||
|
|
||||||
def findRandomStandardCheckmate(distribution: Int): Fu[Option[Game]] = coll.find(
|
def findRandomStandardCheckmate(distribution: Int): Fu[Option[Game]] = coll.find(
|
||||||
Query.mate ++ $doc("v" $exists false)
|
Query.mate ++ Query.variantStandard
|
||||||
).sort(Query.sortCreated)
|
).sort(Query.sortCreated)
|
||||||
.skip(Random nextInt distribution)
|
.skip(Random nextInt distribution)
|
||||||
.uno[Game]
|
.uno[Game]
|
||||||
|
|
||||||
|
def randomFinished(distribution: Int): Fu[Option[Game]] = coll.find(
|
||||||
|
Query.finished ++ Query.rated ++
|
||||||
|
Query.variantStandard ++ Query.bothRatingsGreaterThan(1600)
|
||||||
|
).sort(Query.sortCreated)
|
||||||
|
.skip(Random nextInt distribution)
|
||||||
|
.cursor[Game](ReadPreference.secondary)
|
||||||
|
.uno
|
||||||
|
|
||||||
def insertDenormalized(g: Game, ratedCheck: Boolean = true, initialFen: Option[chess.format.FEN] = None): Funit = {
|
def insertDenormalized(g: Game, ratedCheck: Boolean = true, initialFen: Option[chess.format.FEN] = None): Funit = {
|
||||||
val g2 = if (ratedCheck && g.rated && g.userIds.distinct.size != 2)
|
val g2 = if (ratedCheck && g.rated && g.userIds.distinct.size != 2)
|
||||||
g.copy(mode = chess.Mode.Casual)
|
g.copy(mode = chess.Mode.Casual)
|
||||||
|
|
|
@ -87,6 +87,8 @@ object Query {
|
||||||
def variant(v: chess.variant.Variant) =
|
def variant(v: chess.variant.Variant) =
|
||||||
$doc(F.variant -> v.standard.fold[BSONValue]($exists(false), $int(v.id)))
|
$doc(F.variant -> v.standard.fold[BSONValue]($exists(false), $int(v.id)))
|
||||||
|
|
||||||
|
lazy val variantStandard = variant(chess.variant.Standard)
|
||||||
|
|
||||||
lazy val notHordeOrSincePawnsAreWhite: Bdoc = $or(
|
lazy val notHordeOrSincePawnsAreWhite: Bdoc = $or(
|
||||||
F.variant $ne chess.variant.Horde.id,
|
F.variant $ne chess.variant.Horde.id,
|
||||||
sinceHordePawnsAreWhite
|
sinceHordePawnsAreWhite
|
||||||
|
|
Loading…
Reference in New Issue