diff --git a/modules/puzzle/src/main/DailyPuzzle.scala b/modules/puzzle/src/main/DailyPuzzle.scala index 98849b5110..495dcc909b 100644 --- a/modules/puzzle/src/main/DailyPuzzle.scala +++ b/modules/puzzle/src/main/DailyPuzzle.scala @@ -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] } diff --git a/modules/puzzle/src/main/PuzzleApi.scala b/modules/puzzle/src/main/PuzzleApi.scala index 0ee58e6e56..8fbf67364f 100644 --- a/modules/puzzle/src/main/PuzzleApi.scala +++ b/modules/puzzle/src/main/PuzzleApi.scala @@ -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 } diff --git a/modules/puzzle/src/main/PuzzleTrust.scala b/modules/puzzle/src/main/PuzzleTrust.scala index cd8f646619..e3aaa5a4dc 100644 --- a/modules/puzzle/src/main/PuzzleTrust.scala +++ b/modules/puzzle/src/main/PuzzleTrust.scala @@ -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