41 lines
1.1 KiB
Scala
41 lines
1.1 KiB
Scala
package lila.irwin
|
|
|
|
import akka.actor._
|
|
import com.softwaremill.macwire._
|
|
import scala.concurrent.duration._
|
|
|
|
import lila.common.config._
|
|
import lila.tournament.TournamentApi
|
|
|
|
final class Env(
|
|
tournamentApi: TournamentApi,
|
|
modApi: lila.mod.ModApi,
|
|
reportApi: lila.report.ReportApi,
|
|
notifyApi: lila.notify.NotifyApi,
|
|
userCache: lila.user.Cached,
|
|
gameRepo: lila.game.GameRepo,
|
|
userRepo: lila.user.UserRepo,
|
|
analysisRepo: lila.analyse.AnalysisRepo,
|
|
settingStore: lila.memo.SettingStore.Builder,
|
|
db: lila.db.Db
|
|
)(implicit
|
|
ec: scala.concurrent.ExecutionContext,
|
|
system: ActorSystem
|
|
) {
|
|
|
|
private lazy val reportColl = db(CollName("irwin_report"))
|
|
|
|
lazy val irwinThresholdsSetting = IrwinThresholds makeSetting settingStore
|
|
|
|
lazy val stream = wire[IrwinStream]
|
|
|
|
lazy val api = wire[IrwinApi]
|
|
|
|
system.scheduler.scheduleWithFixedDelay(5 minutes, 5 minutes) { () =>
|
|
tournamentApi.allCurrentLeadersInStandard.flatMap(api.requests.fromTournamentLeaders).unit
|
|
}
|
|
system.scheduler.scheduleWithFixedDelay(15 minutes, 15 minutes) { () =>
|
|
userCache.getTop50Online.flatMap(api.requests.fromLeaderboard).unit
|
|
}
|
|
}
|