update User.seenAt less often

pull/83/head
Thibault Duplessis 2013-09-25 14:48:33 +02:00
parent 347c564d3d
commit addd45b04d
3 changed files with 10 additions and 4 deletions

View File

@ -172,11 +172,11 @@ private[controllers] trait LilaController
private def restoreUser(req: RequestHeader): Fu[Option[UserModel]] =
Env.security.api restoreUser req addEffect {
_ foreach { user
UserRepo setSeenAt user.id
if (!user.seenRecently) UserRepo setSeenAt user.id
val lang = Env.i18n.pool.lang(req).language
if (user.lang != lang.some) UserRepo.setLang(user.id, lang)
Env.user setOnline user
user.seenAt.isEmpty ?? Env.relation.autofollow(user)
if (user.seenAt.isEmpty) Env.relation autofollow user
}
}

View File

@ -2,7 +2,7 @@ package lila.user
import chess.Speed
import org.joda.time.DateTime
import org.scala_tools.time.Imports._
import scala.concurrent.duration._
case class User(
id: String,
@ -45,6 +45,13 @@ case class User(
def hasGames = count.game > 0
def countRated = count.rated
private val recentDuration = 10.minutes
def seenRecently: Boolean = timeNoSee < recentDuration
def timeNoSee: Duration = seenAt.fold[Duration](Duration.Inf) { s
(nowMillis - s.getMillis).millis
}
}
object User {

1
todo
View File

@ -64,4 +64,3 @@ geolocation http://db-ip.com/db/
no castling in 50-moves https://github.com/ornicar/scalachess/issues/3
enforce single user for an IP
user made chess puzzles (just input position and number of moves, let AI find solution)
setup AI wrong move (log game ID)