update User.seenAt less often
parent
347c564d3d
commit
addd45b04d
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue