puzzle curators can discard the daily puzzle by downvoting it
parent
a0abcd122c
commit
838f7f9788
|
@ -19,7 +19,7 @@ final private[puzzle] class DailyPuzzle(
|
|||
|
||||
private val cache =
|
||||
cacheApi.unit[Option[DailyPuzzle.WithHtml]] {
|
||||
_.refreshAfterWrite(5 minutes)
|
||||
_.refreshAfterWrite(1 minutes)
|
||||
.buildAsyncFuture(_ => find)
|
||||
}
|
||||
|
||||
|
@ -43,7 +43,7 @@ final private[puzzle] class DailyPuzzle(
|
|||
|
||||
private def findCurrent =
|
||||
colls.puzzle {
|
||||
_.find($doc(F.day $gt DateTime.now.minusMinutes(24 * 60 - 15)))
|
||||
_.find($doc(F.day $gt DateTime.now.minusDays(1)))
|
||||
.one[Puzzle]
|
||||
}
|
||||
|
||||
|
|
|
@ -97,7 +97,7 @@ final class PuzzleApi(
|
|||
import Puzzle.{ BSONFields => F }
|
||||
coll.one[Bdoc](
|
||||
$id(puzzleId.value),
|
||||
$doc(F.voteUp -> true, F.voteDown -> true, F.id -> false)
|
||||
$doc(F.voteUp -> true, F.voteDown -> true, F.day -> true, F.id -> false)
|
||||
) flatMap {
|
||||
_ ?? { doc =>
|
||||
val prevUp = ~doc.int(F.voteUp)
|
||||
|
@ -111,7 +111,12 @@ final class PuzzleApi(
|
|||
F.voteUp -> up,
|
||||
F.voteDown -> down,
|
||||
F.vote -> ((up - down).toFloat / (up + down))
|
||||
)
|
||||
) ++ {
|
||||
(newVote <= -100 && doc
|
||||
.getAsOpt[DateTime](F.day)
|
||||
.exists(_ isAfter DateTime.now.minusDays(1))) ??
|
||||
$unset(F.day)
|
||||
}
|
||||
)
|
||||
.void
|
||||
}
|
||||
|
|
|
@ -59,7 +59,7 @@ final private class PuzzleTrustApi(colls: PuzzleColls)(implicit ec: scala.concur
|
|||
(rating - 1500) / 300
|
||||
} atLeast 0
|
||||
|
||||
private def patronBonus(user: User) = (~user.planMonths * 5) atMost 20
|
||||
private def patronBonus(user: User) = (~user.planMonths * 5) atMost 15
|
||||
|
||||
private def modBonus(user: User) =
|
||||
if (user.roles.exists(_ contains "ROLE_PUZZLE_CURATOR")) 100
|
||||
|
|
Loading…
Reference in New Issue