broadcast: automatically analyse completed games
parent
d672534ae6
commit
bb59f2473a
|
@ -57,7 +57,7 @@ final class Analyser(
|
|||
case true => fuccess(false)
|
||||
case _ => {
|
||||
import req._
|
||||
val sender = Work.Sender(req.userId, none, false, false)
|
||||
val sender = Work.Sender(req.userId, none, false, system = req.userId == "lichess")
|
||||
limiter(sender) flatMap { accepted =>
|
||||
accepted ?? {
|
||||
val work = makeWork(
|
||||
|
|
|
@ -38,7 +38,7 @@ private final class Limiter(
|
|||
private val maxPerDay = 30
|
||||
|
||||
private def perDayCheck(sender: Work.Sender) = sender match {
|
||||
case Work.Sender(_, _, mod, system) if (mod || system) => fuccess(true)
|
||||
case Work.Sender(_, _, mod, system) if mod || system => fuccess(true)
|
||||
case Work.Sender(Some(userId), _, _, _) => requesterApi.countToday(userId) map (_ < maxPerDay)
|
||||
case Work.Sender(_, Some(ip), _, _) => fuccess {
|
||||
RequestLimitPerIP(ip, cost = 1)(true)
|
||||
|
|
|
@ -105,13 +105,21 @@ private final class RelaySync(
|
|||
val chapterNewTags = tags.value.foldLeft(chapter.tags) {
|
||||
case (chapterTags, tag) => PgnTags(chapterTags + tag)
|
||||
}
|
||||
(chapterNewTags != chapter.tags) ?? studyApi.setTags(
|
||||
userId = chapter.ownerId,
|
||||
studyId = study.id,
|
||||
chapterId = chapter.id,
|
||||
tags = chapterNewTags,
|
||||
uid = socketUid
|
||||
)
|
||||
(chapterNewTags != chapter.tags) ?? {
|
||||
studyApi.setTags(
|
||||
userId = chapter.ownerId,
|
||||
studyId = study.id,
|
||||
chapterId = chapter.id,
|
||||
tags = chapterNewTags,
|
||||
uid = socketUid
|
||||
) >> {
|
||||
chapterNewTags.resultColor.isDefined ?? studyApi.analysisRequest(
|
||||
studyId = study.id,
|
||||
chapterId = chapter.id,
|
||||
userId = "lichess"
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private def createChapter(study: Study, game: RelayGame): Fu[Chapter] =
|
||||
|
|
Loading…
Reference in New Issue