remove dead code and unused imports

pull/2530/head
Thibault Duplessis 2017-01-15 13:26:08 +01:00
parent 0220918813
commit ee1e881a18
365 changed files with 427 additions and 1068 deletions

View File

@ -3,7 +3,7 @@ package lila.app
import lila.common.HTTPRequest
import play.api.mvc._
import play.api.mvc.Results._
import play.api.{ Application, GlobalSettings, Mode }
import play.api.{ Application, GlobalSettings }
object Global extends GlobalSettings {

View File

@ -4,8 +4,7 @@ package actor
import akka.actor._
import play.twirl.api.Html
import lila.game.{ GameRepo, Pov }
import lila.user.UserRepo
import lila.game.Pov
import views.{ html => V }
private[app] final class Renderer extends Actor {

View File

@ -1,12 +1,11 @@
package controllers
import play.api.mvc._, Results._
import play.api.mvc._
import lila.api.Context
import lila.app._
import lila.common.LilaCookie
import lila.common.PimpedJson._
import lila.security.Permission
import lila.user.{ User => UserModel, UserRepo }
import views._

View File

@ -1,7 +1,5 @@
package controllers
import scala.concurrent.duration._
import play.api.mvc._
import lila.api.Context

View File

@ -1,7 +1,7 @@
package controllers
import play.api.libs.json._
import play.api.mvc._, Results._
import play.api.mvc._
import scala.concurrent.duration._
import lila.app._

View File

@ -1,9 +1,8 @@
package controllers
import play.api.data._, Forms._
import play.api.i18n.Messages.Implicits._
import play.api.libs.json._
import play.api.mvc._, Results._
import play.api.mvc._
import play.api.Play.current
import lila.api.Context

View File

@ -1,11 +1,10 @@
package controllers
import play.api.mvc._, Results._
import play.api.mvc._
import io.prismic.Document
import lila.app._
import views._
object Blog extends LilaController {

View File

@ -1,9 +1,6 @@
package controllers
import lila.app._
import views._
import play.api.mvc._
object Bookmark extends LilaController {

View File

@ -1,12 +1,9 @@
package controllers
import play.api.data.Form
import play.api.i18n.Messages.Implicits._
import play.api.libs.json._
import play.api.mvc.{ Result, Cookie }
import scala.concurrent.duration._
import play.api.mvc.Result
import lila.api.{ Context, BodyContext }
import lila.api.Context
import lila.app._
import lila.challenge.{ Challenge => ChallengeModel }
import lila.common.{ HTTPRequest, LilaCookie }

View File

@ -2,7 +2,7 @@ package controllers
import lila.app._
import play.api.mvc._, Results._
import play.api.mvc._
import play.api.data._, Forms._
object Cli extends LilaController {

View File

@ -1,11 +1,10 @@
package controllers
import play.api.mvc._, Results._
import play.api.mvc._
import lila.api.Context
import lila.app._
import lila.coach.{ Coach => CoachModel, CoachProfileForm, CoachReviewForm, CoachPager }
import lila.user.{ User => UserModel, UserRepo }
import lila.coach.{ Coach => CoachModel, CoachProfileForm, CoachPager }
import views._
object Coach extends LilaController {

View File

@ -1,9 +1,6 @@
package controllers
import play.api.mvc._
import lila.app._
import views._
object Coordinate extends LilaController {

View File

@ -1,7 +1,5 @@
package controllers
import play.api.mvc._
import lila.app._
import views._

View File

@ -1,15 +1,10 @@
package controllers
import play.api.mvc.Action
import scala.concurrent.duration._
import lila.app._
import lila.common.HTTPRequest
import lila.game.{ Game => GameModel, GameRepo }
import play.api.http.ContentTypes
import play.api.libs.iteratee.{ Iteratee, Enumerator }
import play.api.mvc.Result
import views._
object Export extends LilaController {

View File

@ -1,9 +1,8 @@
package controllers
import play.api.data.Form
import play.api.libs.json._
import play.api.mvc._
import scala.util.{ Try, Success, Failure }
import scala.util.{ Success, Failure }
import lila.app._
import lila.common.HTTPRequest

View File

@ -1,6 +1,6 @@
package controllers
import play.api.mvc._, Results._
import play.api.mvc._
import lila.api.Context
import lila.app._

View File

@ -1,11 +1,7 @@
package controllers
import play.api.mvc.Action
import lila.app._
import lila.common.HTTPRequest
import lila.game.{ Game => GameModel, GameRepo }
import play.api.http.ContentTypes
import lila.game.GameRepo
import views._
object Game extends LilaController {

View File

@ -6,7 +6,7 @@ import play.api.libs.json.Json
import lila.api.Context
import lila.app._
import lila.common.{ Captcha, LilaCookie, HTTPRequest }
import lila.i18n.{ Translation, TransInfo }
import lila.i18n.TransInfo
import views._
object I18n extends LilaController {

View File

@ -3,7 +3,6 @@ package controllers
import lila.api.Context
import lila.app._
import lila.insight.{ Metric, Dimension }
import play.api.libs.json.Json
import play.api.mvc._
import views._

View File

@ -3,11 +3,9 @@ package controllers
import ornicar.scalalib.Zero
import play.api.data.Form
import play.api.http._
import play.api.libs.iteratee.{ Iteratee, Enumerator }
import play.api.libs.json.{ Json, JsValue, JsObject, JsArray, Writes }
import play.api.mvc._, Results._
import play.api.libs.json.{ Json, JsObject, Writes }
import play.api.mvc._
import play.twirl.api.Html
import scalaz.Monoid
import lila.api.{ PageData, Context, HeaderContext, BodyContext }
import lila.app._
@ -23,8 +21,6 @@ private[controllers] trait LilaController
with ResponseWriter
with LilaSocket {
import Results._
protected val controllerLogger = lila.log("controller")
protected implicit val LilaResultZero = Zero.instance[Result](Results.NotFound)

View File

@ -1,9 +1,7 @@
package controllers
import play.api.http._
import play.api.libs.iteratee._
import play.api.libs.json._
import play.api.mvc._, Results._
import play.api.mvc._
import play.api.mvc.WebSocket.FrameFormatter
import lila.api.Context

View File

@ -7,7 +7,6 @@ import scala.concurrent.duration._
import lila.api.Context
import lila.app._
import lila.common.{ LilaCookie, HTTPRequest }
import views._
object Lobby extends LilaController {

View File

@ -2,10 +2,8 @@ package controllers
import akka.pattern.ask
import play.api.data._, Forms._
import play.api.libs.concurrent.Akka
import play.api.libs.iteratee._
import play.api.libs.json._
import play.api.mvc._, Results._
import play.api.mvc._
import lila.app._
import lila.common.HTTPRequest

View File

@ -1,9 +1,6 @@
package controllers
import play.api._
import play.api.data.Form
import play.api.mvc._
import play.api.mvc.Results._
import play.twirl.api.Html
import play.api.libs.json._

View File

@ -5,10 +5,8 @@ import lila.app._
import lila.user.{ UserRepo, User => UserModel }
import views._
import org.joda.time.DateTime
import play.api.libs.json._
import play.api.mvc._
import play.api.mvc.Results._
object Mod extends LilaController {

View File

@ -1,12 +1,11 @@
package controllers
import play.api.libs.ws.WS
import play.api.mvc._, Results._
import play.api.mvc._
import play.api.Play.current
import scala.concurrent.duration._
import lila.app._
import views._
object Monitor extends LilaController {

View File

@ -4,7 +4,6 @@ import lila.app._
import lila.notify.Notification.Notifies
import play.api.libs.json._
import views.html
object Notify extends LilaController {

View File

@ -1,7 +1,5 @@
package controllers
import play.api.mvc._, Results._
import lila.app._
import views._

View File

@ -1,7 +1,6 @@
package controllers
import play.api.libs.json._
import play.api.mvc._, Results._
import play.api.mvc._
import lila.api.Context
import lila.app._

View File

@ -1,7 +1,6 @@
package controllers
import play.api.data.Form
import play.api.mvc._, Results._
import play.api.mvc._
import lila.api.Context
import lila.app._

View File

@ -1,19 +1,14 @@
package controllers
import scala.util.{ Try, Success, Failure }
import play.api.i18n.Messages.Implicits._
import play.api.libs.json._
import play.api.mvc._
import play.api.i18n.Messages.Implicits._
import play.api.Play.current
import play.twirl.api.Html
import chess.Mode
import lila.api.Context
import lila.app._
import lila.game.GameRepo
import lila.puzzle.{ PuzzleId, Result, Generated, Puzzle => PuzzleModel, UserInfos }
import lila.user.{ User => UserModel, UserRepo }
import lila.puzzle.{ PuzzleId, Result, Puzzle => PuzzleModel, UserInfos }
import lila.user.UserRepo
import views._
object Puzzle extends LilaController {

View File

@ -1,88 +1,76 @@
package controllers
import play.api.data.Form
import play.api.mvc._
import lila.api.Context
import lila.app._
import lila.qa.{ QuestionId, Question, AnswerId, Answer, QaAuth }
import lila.qa.{ QuestionId, AnswerId, QaAuth }
import views._
object QaAnswer extends QaController {
def create(id: QuestionId) = AuthBody { implicit ctx =>
me =>
WithQuestion(id) { q =>
implicit val req = ctx.body
forms.answer.bindFromRequest.fold(
err => renderQuestion(q, Some(err)),
data => api.answer.create(data, q, me) map { answer =>
Redirect(routes.QaQuestion.show(q.id, q.slug) + "#answer-" + answer.id)
}
)
}
}
def accept(questionId: QuestionId, answerId: AnswerId) = AuthBody { implicit ctx =>
me =>
(api.question findById questionId) zip (api.answer findById answerId) flatMap {
case (Some(q), Some(a)) if (QaAuth canEdit q) =>
api.answer.accept(q, a) inject Redirect(routes.QaQuestion.show(q.id, q.slug))
case _ => notFound
}
}
def vote(questionId: QuestionId, answerId: AnswerId) = AuthBody { implicit ctx =>
me =>
def create(id: QuestionId) = AuthBody { implicit ctx => me =>
WithQuestion(id) { q =>
implicit val req = ctx.body
forms.vote.bindFromRequest.fold(
err => fuccess(BadRequest),
v => api.answer.vote(answerId, me, v == 1) map {
case Some(vote) => Ok(html.qa.vote(routes.QaAnswer.vote(questionId, answerId).url, vote, true))
case None => NotFound
forms.answer.bindFromRequest.fold(
err => renderQuestion(q, Some(err)),
data => api.answer.create(data, q, me) map { answer =>
Redirect(routes.QaQuestion.show(q.id, q.slug) + "#answer-" + answer.id)
}
)
}
}
def doEdit(questionId: QuestionId, answerId: AnswerId) = AuthBody { implicit ctx =>
me =>
WithOwnAnswer(questionId, answerId) { q =>
a =>
implicit val req = ctx.body
forms.editAnswer.bindFromRequest.fold(
err => renderQuestion(q),
body => api.answer.edit(body, a.id) map {
case None => NotFound
case Some(a2) => Redirect(routes.QaQuestion.show(q.id, q.slug) + "#answer-" + a2.id)
}
)
}
def accept(questionId: QuestionId, answerId: AnswerId) = AuthBody { implicit ctx => me =>
(api.question findById questionId) zip (api.answer findById answerId) flatMap {
case (Some(q), Some(a)) if (QaAuth canEdit q) =>
api.answer.accept(q, a) inject Redirect(routes.QaQuestion.show(q.id, q.slug))
case _ => notFound
}
}
def remove(questionId: QuestionId, answerId: AnswerId) = Secure(_.ModerateQa) { implicit ctx =>
me =>
OptionFuRedirect(api.answer findById answerId) { a =>
(api.answer remove a.id) >>
Env.mod.logApi.deleteQaAnswer(me.id, a.userId, a.body) inject
routes.QaQuestion.show(questionId, "redirect")
def vote(questionId: QuestionId, answerId: AnswerId) = AuthBody { implicit ctx => me =>
implicit val req = ctx.body
forms.vote.bindFromRequest.fold(
err => fuccess(BadRequest),
v => api.answer.vote(answerId, me, v == 1) map {
case Some(vote) => Ok(html.qa.vote(routes.QaAnswer.vote(questionId, answerId).url, vote, true))
case None => NotFound
}
)
}
def moveTo(questionId: QuestionId, answerId: AnswerId) = AuthBody { implicit ctx =>
me =>
WithOwnAnswer(questionId, answerId) { q =>
a =>
implicit val req = ctx.body
forms.moveAnswer.bindFromRequest.fold(
err => renderQuestion(q), {
case "question" => api.answer.moveToQuestionComment(a, q) inject
Redirect(routes.QaQuestion.show(q.id, q.slug))
case str => parseIntOption(str).fold(renderQuestion(q)) { answerId =>
api.answer.moveToAnswerComment(a, answerId) inject
Redirect(routes.QaQuestion.show(q.id, q.slug))
}
}
)
}
def doEdit(questionId: QuestionId, answerId: AnswerId) = AuthBody { implicit ctx => me =>
WithOwnAnswer(questionId, answerId) { q => a =>
implicit val req = ctx.body
forms.editAnswer.bindFromRequest.fold(
err => renderQuestion(q),
body => api.answer.edit(body, a.id) map {
case None => NotFound
case Some(a2) => Redirect(routes.QaQuestion.show(q.id, q.slug) + "#answer-" + a2.id)
}
)
}
}
def remove(questionId: QuestionId, answerId: AnswerId) = Secure(_.ModerateQa) { implicit ctx => me =>
OptionFuRedirect(api.answer findById answerId) { a =>
(api.answer remove a.id) >>
Env.mod.logApi.deleteQaAnswer(me.id, a.userId, a.body) inject
routes.QaQuestion.show(questionId, "redirect")
}
}
def moveTo(questionId: QuestionId, answerId: AnswerId) = AuthBody { implicit ctx => me =>
WithOwnAnswer(questionId, answerId) { q => a =>
implicit val req = ctx.body
forms.moveAnswer.bindFromRequest.fold(
err => renderQuestion(q), {
case "question" => api.answer.moveToQuestionComment(a, q) inject
Redirect(routes.QaQuestion.show(q.id, q.slug))
case str => parseIntOption(str).fold(renderQuestion(q)) { answerId =>
api.answer.moveToAnswerComment(a, answerId) inject
Redirect(routes.QaQuestion.show(q.id, q.slug))
}
}
)
}
}
}

View File

@ -1,51 +1,46 @@
package controllers
import play.api.data.Form
import play.api.mvc._
import lila.api.Context
import lila.app._
import lila.qa.{ QuestionId, Question, AnswerId, Answer, QaAuth }
import views._
import lila.qa.{ QuestionId, AnswerId, QaAuth }
object QaComment extends QaController {
def question(id: QuestionId) = AuthBody { implicit ctx =>
me =>
IfCanComment {
WithQuestion(id) { q =>
def question(id: QuestionId) = AuthBody { implicit ctx => me =>
IfCanComment {
WithQuestion(id) { q =>
implicit val req = ctx.body
forms.comment.bindFromRequest.fold(
err => renderQuestion(q, None),
data => api.comment.create(data, Left(q), me) map { comment =>
Redirect(routes.QaQuestion.show(q.id, q.slug) + "#comment-" + comment.id)
}
)
}
}
}
def answer(questionId: QuestionId, answerId: AnswerId) = AuthBody { implicit ctx => me =>
IfCanComment {
(api.question findById questionId) zip (api.answer findById answerId) flatMap {
case (Some(q), Some(a)) =>
implicit val req = ctx.body
forms.comment.bindFromRequest.fold(
err => renderQuestion(q, None),
data => api.comment.create(data, Left(q), me) map { comment =>
data => api.comment.create(data, Right(a), me) map { comment =>
Redirect(routes.QaQuestion.show(q.id, q.slug) + "#comment-" + comment.id)
}
)
}
case _ => notFound
}
}
}
def answer(questionId: QuestionId, answerId: AnswerId) = AuthBody { implicit ctx =>
me =>
IfCanComment {
(api.question findById questionId) zip (api.answer findById answerId) flatMap {
case (Some(q), Some(a)) =>
implicit val req = ctx.body
forms.comment.bindFromRequest.fold(
err => renderQuestion(q, None),
data => api.comment.create(data, Right(a), me) map { comment =>
Redirect(routes.QaQuestion.show(q.id, q.slug) + "#comment-" + comment.id)
}
)
case _ => notFound
}
}
}
def remove(questionId: QuestionId, commentId: String) = Secure(_.ModerateQa) { implicit ctx =>
me =>
api.comment.remove(questionId, commentId) inject
Redirect(routes.QaQuestion.show(questionId, "redirect"))
def remove(questionId: QuestionId, commentId: String) = Secure(_.ModerateQa) { implicit ctx => me =>
api.comment.remove(questionId, commentId) inject
Redirect(routes.QaQuestion.show(questionId, "redirect"))
}
private def IfCanComment(block: => Fu[Result])(implicit ctx: Context) =

View File

@ -1,6 +1,5 @@
package controllers
import play.api._
import play.api.data.Form
import play.api.mvc._

View File

@ -5,7 +5,7 @@ import play.api.mvc._
import lila.api.Context
import lila.app._
import lila.qa.{ QuestionId, Question, AnswerId, Answer, QaAuth }
import lila.qa.{ QuestionId, Question, QaAuth }
import views._
object QaQuestion extends QaController {

View File

@ -1,8 +1,6 @@
package controllers
import play.api.libs.json.Json
import play.api.mvc._
import play.twirl.api.Html
import lila.api.Context
import lila.app._

View File

@ -1,14 +1,11 @@
package controllers
import play.api.mvc._
import play.twirl.api.Html
import views._
import lila.api.Context
import lila.app._
import lila.report.Reason
import lila.security.Granter
import lila.user.{ User => UserModel, UserRepo }
import lila.user.UserRepo
object Report extends LilaController {

View File

@ -1,7 +1,6 @@
package controllers
import lila.api._
import lila.api.Context
import play.api.http._
import play.api.mvc.Codec

View File

@ -1,20 +1,14 @@
package controllers
import akka.pattern.ask
import play.api.libs.iteratee._
import play.api.libs.json._
import play.api.mvc._
import play.twirl.api.Html
import lila.api.Context
import lila.app._
import lila.common.{ HTTPRequest, ApiVersion }
import lila.game.{ Pov, PlayerRef, GameRepo, Game => GameModel }
import lila.hub.actorApi.map.Tell
import lila.round.actorApi.round._
import lila.tournament.{ TournamentRepo, Tournament => Tourney, MiniStanding }
import lila.user.{ User => UserModel, UserRepo }
import makeTimeout.large
import lila.game.{ Pov, GameRepo, Game => GameModel }
import lila.tournament.MiniStanding
import lila.user.{ User => UserModel }
import views._
object Round extends LilaController with TheftPrevention {
@ -128,19 +122,18 @@ object Round extends LilaController with TheftPrevention {
}
}
def next(gameId: String) = Auth { implicit ctx =>
me =>
OptionFuResult(GameRepo game gameId) { currentGame =>
otherPovs(currentGame) map getNext(currentGame) map {
_ orElse Pov(currentGame, me)
} flatMap {
case Some(next) => renderPlayer(next)
case None => fuccess(Redirect(currentGame.simulId match {
case Some(simulId) => routes.Simul.show(simulId)
case None => routes.Round.watcher(gameId, "white")
}))
}
def next(gameId: String) = Auth { implicit ctx => me =>
OptionFuResult(GameRepo game gameId) { currentGame =>
otherPovs(currentGame) map getNext(currentGame) map {
_ orElse Pov(currentGame, me)
} flatMap {
case Some(next) => renderPlayer(next)
case None => fuccess(Redirect(currentGame.simulId match {
case Some(simulId) => routes.Simul.show(simulId)
case None => routes.Round.watcher(gameId, "white")
}))
}
}
}
def watcher(gameId: String, color: String) = Open { implicit ctx =>
@ -241,21 +234,19 @@ object Round extends LilaController with TheftPrevention {
OptionFuResult(GameRepo.pov(gameId, color)) { sides(_, true) }
}
def writeNote(gameId: String) = AuthBody { implicit ctx =>
me =>
import play.api.data.Forms._
import play.api.data._
implicit val req = ctx.body
Form(single("text" -> text)).bindFromRequest.fold(
err => fuccess(BadRequest),
text => Env.round.noteApi.set(gameId, me.id, text.trim take 10000))
def writeNote(gameId: String) = AuthBody { implicit ctx => me =>
import play.api.data.Forms._
import play.api.data._
implicit val req = ctx.body
Form(single("text" -> text)).bindFromRequest.fold(
err => fuccess(BadRequest),
text => Env.round.noteApi.set(gameId, me.id, text.trim take 10000))
}
def readNote(gameId: String) = Auth { implicit ctx =>
me =>
Env.round.noteApi.get(gameId, me.id) map { text =>
Ok(text)
}
def readNote(gameId: String) = Auth { implicit ctx => me =>
Env.round.noteApi.get(gameId, me.id) map { text =>
Ok(text)
}
}
private def sides(pov: Pov, isPlayer: Boolean)(implicit ctx: Context) =

View File

@ -2,11 +2,8 @@ package controllers
import scala.concurrent.duration._
import lila.api.Context
import lila.app._
import lila.common.HTTPRequest
import lila.game.{ Game => GameModel, GameRepo }
import play.api.http.ContentTypes
import views._
object Search extends LilaController {

View File

@ -3,7 +3,7 @@ package controllers
import play.api.data.Form
import play.api.i18n.Messages.Implicits._
import play.api.libs.json.Json
import play.api.mvc.{ Result, Results, Call, RequestHeader, Accepting }
import play.api.mvc.{ Result, Results }
import play.api.Play.current
import scala.concurrent.duration._
@ -12,7 +12,7 @@ import lila.app._
import lila.common.{ HTTPRequest, LilaCookie }
import lila.game.{ GameRepo, Pov, AnonCookie }
import lila.setup.Processor.HookResult
import lila.setup.{ HookConfig, ValidFen }
import lila.setup.ValidFen
import lila.user.UserRepo
import views._

View File

@ -1,15 +1,12 @@
package controllers
import play.api.data.Form
import play.api.libs.json._
import play.api.mvc._
import lila.api.Context
import lila.app._
import lila.common.HTTPRequest
import lila.game.{ Pov, GameRepo }
import lila.simul.{ Simul => Sim }
import lila.user.UserRepo
import views._
object Simul extends LilaController {

View File

@ -1,7 +1,5 @@
package controllers
import play.api.mvc._, Results._
import lila.app._
import views._

View File

@ -1,7 +1,5 @@
package controllers
import play.api.http.ContentTypes
import play.api.i18n.Messages.Implicits._
import play.api.libs.json._
import play.api.mvc._
import scala.concurrent.duration._

View File

@ -3,12 +3,11 @@ package controllers
import lila.api.Context
import lila.app._
import lila.security.Granter
import lila.team.{ Joined, Motivate, Team => TeamModel, TeamRepo, MemberRepo, TeamEdit }
import lila.team.{ Joined, Motivate, Team => TeamModel, TeamRepo, MemberRepo }
import lila.user.{ User => UserModel }
import views._
import play.api.mvc._
import play.twirl.api.Html
object Team extends LilaController {
@ -50,144 +49,129 @@ object Team extends LilaController {
case (info, pag) => html.team.show(team, pag, info)
}
def edit(id: String) = Auth { implicit ctx =>
me => OptionFuResult(api team id) { team =>
Owner(team) { fuccess(html.team.edit(team, forms edit team)) }
def edit(id: String) = Auth { implicit ctx => me => OptionFuResult(api team id) { team =>
Owner(team) { fuccess(html.team.edit(team, forms edit team)) }
}
}
def update(id: String) = AuthBody { implicit ctx => implicit me => OptionFuResult(api team id) { team =>
Owner(team) {
implicit val req = ctx.body
forms.edit(team).bindFromRequest.fold(
err => BadRequest(html.team.edit(team, err)).fuccess,
data => api.update(team, data, me) inject Redirect(routes.Team.show(team.id))
)
}
}
}
def kickForm(id: String) = Auth { implicit ctx => me => OptionFuResult(api team id) { team =>
Owner(team) {
MemberRepo userIdsByTeam team.id map { userIds =>
html.team.kick(team, userIds.filterNot(me.id ==).toList.sorted)
}
}
}
}
def kick(id: String) = AuthBody { implicit ctx => implicit me => OptionFuResult(api team id) { team =>
Owner(team) {
implicit val req = ctx.body
forms.kick.bindFromRequest.value ?? { api.kick(team, _) } inject Redirect(routes.Team.show(team.id))
}
}
}
def close(id: String) = Secure(_.CloseTeam) { implicit ctx => me =>
OptionFuResult(api team id) { team =>
(api delete team) >>
Env.mod.logApi.deleteTeam(me.id, team.name, team.description) inject
Redirect(routes.Team all 1)
}
}
def update(id: String) = AuthBody { implicit ctx =>
implicit me => OptionFuResult(api team id) { team =>
Owner(team) {
implicit val req = ctx.body
forms.edit(team).bindFromRequest.fold(
err => BadRequest(html.team.edit(team, err)).fuccess,
data => api.update(team, data, me) inject Redirect(routes.Team.show(team.id))
def form = Auth { implicit ctx => me =>
NotForKids {
OnePerWeek(me) {
forms.anyCaptcha map { captcha =>
Ok(html.team.form(forms.create, captcha))
}
}
}
}
def create = AuthBody { implicit ctx => implicit me => OnePerWeek(me) {
implicit val req = ctx.body
forms.create.bindFromRequest.fold(
err => forms.anyCaptcha map { captcha =>
BadRequest(html.team.form(err, captcha))
},
data => api.create(data, me) ?? {
_ map { team => Redirect(routes.Team.show(team.id)): Result }
}
)
}
}
def mine = Auth { implicit ctx => me => api mine me map { html.team.mine(_) }
}
def joinPage(id: String) = Auth { implicit ctx => me =>
NotForKids {
OptionResult(api.requestable(id, me)) { team =>
team.open.fold(
Ok(html.team.join(team)),
Redirect(routes.Team.requestForm(team.id))
)
}
}
}
def kickForm(id: String) = Auth { implicit ctx =>
me => OptionFuResult(api team id) { team =>
Owner(team) {
MemberRepo userIdsByTeam team.id map { userIds =>
html.team.kick(team, userIds.filterNot(me.id ==).toList.sorted)
}
}
}
def join(id: String) = Auth { implicit ctx => implicit me => api join id flatMap {
case Some(Joined(team)) => Redirect(routes.Team.show(team.id)).fuccess
case Some(Motivate(team)) => Redirect(routes.Team.requestForm(team.id)).fuccess
case _ => notFound
}
}
def kick(id: String) = AuthBody { implicit ctx =>
implicit me => OptionFuResult(api team id) { team =>
Owner(team) {
implicit val req = ctx.body
forms.kick.bindFromRequest.value ?? { api.kick(team, _) } inject Redirect(routes.Team.show(team.id))
}
}
def requests = Auth { implicit ctx => me => api requestsWithUsers me map { html.team.allRequests(_) }
}
def close(id: String) = Secure(_.CloseTeam) { implicit ctx =>
me =>
OptionFuResult(api team id) { team =>
(api delete team) >>
Env.mod.logApi.deleteTeam(me.id, team.name, team.description) inject
Redirect(routes.Team all 1)
}
def requestForm(id: String) = Auth { implicit ctx => me => OptionFuOk(api.requestable(id, me)) { team =>
forms.anyCaptcha map { html.team.requestForm(team, forms.request, _) }
}
}
def form = Auth { implicit ctx =>
me =>
NotForKids {
OnePerWeek(me) {
forms.anyCaptcha map { captcha =>
Ok(html.team.form(forms.create, captcha))
}
}
}
def requestCreate(id: String) = AuthBody { implicit ctx => me => OptionFuResult(api.requestable(id, me)) { team =>
implicit val req = ctx.body
forms.request.bindFromRequest.fold(
err => forms.anyCaptcha map { captcha =>
BadRequest(html.team.requestForm(team, err, captcha))
},
setup => api.createRequest(team, setup, me) inject Redirect(routes.Team.show(team.id))
)
}
}
def create = AuthBody { implicit ctx =>
implicit me => OnePerWeek(me) {
def requestProcess(requestId: String) = AuthBody { implicit ctx => me => OptionFuRedirectUrl(for {
requestOption api request requestId
teamOption requestOption.??(req => TeamRepo.owned(req.team, me.id))
} yield (teamOption |@| requestOption).tupled) {
case (team, request) => {
implicit val req = ctx.body
forms.create.bindFromRequest.fold(
err => forms.anyCaptcha map { captcha =>
BadRequest(html.team.form(err, captcha))
},
data => api.create(data, me) ?? {
_ map { team => Redirect(routes.Team.show(team.id)): Result }
forms.processRequest.bindFromRequest.fold(
_ => fuccess(routes.Team.show(team.id).toString), {
case (decision, url) =>
api.processRequest(team, request, (decision === "accept")) inject url
}
)
}
}
def mine = Auth { implicit ctx =>
me => api mine me map { html.team.mine(_) }
}
def joinPage(id: String) = Auth { implicit ctx =>
me =>
NotForKids {
OptionResult(api.requestable(id, me)) { team =>
team.open.fold(
Ok(html.team.join(team)),
Redirect(routes.Team.requestForm(team.id))
)
}
}
def quit(id: String) = Auth { implicit ctx => implicit me => OptionResult(api quit id) { team =>
Redirect(routes.Team.show(team.id))
}
def join(id: String) = Auth { implicit ctx =>
implicit me => api join id flatMap {
case Some(Joined(team)) => Redirect(routes.Team.show(team.id)).fuccess
case Some(Motivate(team)) => Redirect(routes.Team.requestForm(team.id)).fuccess
case _ => notFound
}
}
def requests = Auth { implicit ctx =>
me => api requestsWithUsers me map { html.team.allRequests(_) }
}
def requestForm(id: String) = Auth { implicit ctx =>
me => OptionFuOk(api.requestable(id, me)) { team =>
forms.anyCaptcha map { html.team.requestForm(team, forms.request, _) }
}
}
def requestCreate(id: String) = AuthBody { implicit ctx =>
me => OptionFuResult(api.requestable(id, me)) { team =>
implicit val req = ctx.body
forms.request.bindFromRequest.fold(
err => forms.anyCaptcha map { captcha =>
BadRequest(html.team.requestForm(team, err, captcha))
},
setup => api.createRequest(team, setup, me) inject Redirect(routes.Team.show(team.id))
)
}
}
def requestProcess(requestId: String) = AuthBody { implicit ctx =>
me => OptionFuRedirectUrl(for {
requestOption api request requestId
teamOption requestOption.??(req => TeamRepo.owned(req.team, me.id))
} yield (teamOption |@| requestOption).tupled) {
case (team, request) => {
implicit val req = ctx.body
forms.processRequest.bindFromRequest.fold(
_ => fuccess(routes.Team.show(team.id).toString), {
case (decision, url) =>
api.processRequest(team, request, (decision === "accept")) inject url
}
)
}
}
}
def quit(id: String) = Auth { implicit ctx =>
implicit me => OptionResult(api quit id) { team =>
Redirect(routes.Team.show(team.id))
}
}
private def OnePerWeek[A <: Result](me: UserModel)(a: => Fu[A])(implicit ctx: Context): Fu[Result] =

View File

@ -4,10 +4,7 @@ import lila.api.Context
import lila.app._
import lila.game.{ Game => GameModel, Pov, AnonCookie }
import lila.security.Granter
import play.api.http.ContentTypes._
import play.api.mvc._
import play.api.mvc.Results._
import views._
private[controllers] trait TheftPrevention { self: LilaController =>

View File

@ -1,9 +1,7 @@
package controllers
import play.api.libs.json._
import play.api.mvc._
import lila.api.Context
import lila.app._
import lila.common.HTTPRequest
import views._

View File

@ -1,6 +1,5 @@
package controllers
import play.api.data.Form
import play.api.libs.json._
import play.api.mvc._
@ -8,8 +7,7 @@ import lila.api.Context
import lila.app._
import lila.common.HTTPRequest
import lila.game.{ Pov, GameRepo }
import lila.tournament.{ System, TournamentRepo, PairingRepo, Tournament => Tourney, VisibleTournaments }
import lila.user.UserRepo
import lila.tournament.{ System, TournamentRepo, PairingRepo }
import views._
object Tournament extends LilaController {

View File

@ -1,7 +1,5 @@
package controllers
import play.api.mvc._
import lila.app._
import views._

View File

@ -1,11 +1,10 @@
package controllers
import play.api.mvc._
import play.twirl.api.Html
import lila.api.Context
import lila.app._
import lila.game.{ GameRepo, Game => GameModel, Pov }
import lila.game.{ GameRepo, Pov }
import views._
object Tv extends LilaController {

View File

@ -1,16 +1,15 @@
package controllers
import play.api.libs.json._
import play.api.mvc._, Results._
import play.api.mvc._
import scala.concurrent.duration._
import lila.api.{ Context, BodyContext }
import lila.api.BodyContext
import lila.app._
import lila.app.mashup.GameFilterMenu
import lila.common.HTTPRequest
import lila.common.paginator.Paginator
import lila.evaluation.{ PlayerAggregateAssessment }
import lila.game.{ GameRepo, Pov, Game => GameModel }
import lila.game.{ GameRepo, Game => GameModel }
import lila.rating.PerfType
import lila.user.{ User => UserModel, UserRepo }
import views._

View File

@ -2,7 +2,6 @@ package controllers
import lila.app._
import lila.user.UserRepo
import play.api.mvc._
import views._
object UserTournament extends LilaController {

View File

@ -1,11 +1,9 @@
package controllers
import play.twirl.api.Html
import lila.api.Context
import lila.app._
import lila.common.HTTPRequest
import lila.video.{ View, Video => VideoModel, UserControl, Filter }
import lila.video.{ View, UserControl, Filter }
import views._
object Video extends LilaController {

View File

@ -7,7 +7,6 @@ import lila.event.Event
import lila.forum.MiniForumPost
import lila.game.{ Game, Pov, GameRepo }
import lila.playban.TempBan
import lila.rating.PerfType
import lila.simul.Simul
import lila.timeline.Entry
import lila.tournament.{ Tournament, Winner }

View File

@ -3,10 +3,8 @@ package mashup
import scala.concurrent.duration._
import lila.db.dsl._
import lila.forum.MiniForumPost
import lila.game.{ GameRepo, Game }
import lila.team.{ Team, Request, RequestRepo, MemberRepo, RequestWithUser, TeamApi }
import lila.team.{ Team, RequestRepo, MemberRepo, RequestWithUser, TeamApi }
import lila.user.{ User, UserRepo }
case class TeamInfo(

View File

@ -1,13 +1,10 @@
package lila.app
package mashup
import chess.Color
import org.joda.time.Period
import lila.api.Context
import lila.bookmark.BookmarkApi
import lila.forum.PostApi
import lila.game.{ GameRepo, Game, Crosstable, PlayTime }
import lila.game.Crosstable
import lila.relation.RelationApi
import lila.security.Granter
import lila.user.{ User, Trophy, Trophies, TrophyApi }

View File

@ -3,7 +3,6 @@ package templating
import play.twirl.api.Html
import chess.variant.Variant
import lila.user.UserContext
trait AiHelper { self: I18nHelper =>

View File

@ -2,7 +2,6 @@ package lila.app
package templating
import lila.analyse.Advice.Judgment
import play.api.data._
import lila.api.Context

View File

@ -2,7 +2,6 @@ package lila.app
package templating
import controllers.routes
import play.api.i18n.Lang
import play.twirl.api.Html
trait AssetHelper { self: I18nHelper =>

View File

@ -4,7 +4,6 @@ package templating
import chess.format.Forsyth
import chess.{ Status => S, Color, Clock, Mode }
import controllers.routes
import play.api.mvc.Call
import play.twirl.api.Html
import lila.game.{ Game, Player, Namer, Pov }

View File

@ -1,10 +1,8 @@
package lila.app
package templating
import controllers._
import play.api.i18n.{ Lang, Messages }
import play.api.i18n.Lang
import play.api.libs.json.JsObject
import play.api.mvc.{ RequestHeader, Call }
import play.twirl.api.Html
import lila.i18n.Env.{ current => i18nEnv }

View File

@ -2,12 +2,9 @@ package lila.app
package templating
import controllers.routes
import lila.api.Context
import lila.simul.Simul
import lila.user.{ User, UserContext }
import lila.simul.Env.{ current => simulEnv }
import play.api.libs.json.Json
import play.twirl.api.Html
trait SimulHelper { self: I18nHelper =>

View File

@ -2,7 +2,6 @@ package lila.app
package templating
import controllers.routes
import lila.api.Context
import lila.tournament.Env.{ current => tournamentEnv }
import lila.tournament.{ Tournament, System, Schedule }
import lila.user.{ User, UserContext }

View File

@ -8,7 +8,7 @@ import play.twirl.api.Html
import lila.api.Context
import lila.common.LightUser
import lila.rating.{ PerfType, Perf }
import lila.user.{ User, UserContext, Perfs }
import lila.user.{ User, UserContext }
trait UserHelper { self: I18nHelper with StringHelper with NumberHelper =>

View File

@ -1,7 +1,7 @@
package views.html.board
import controllers.routes
import play.api.libs.json.{ JsArray, Json }
import play.api.libs.json.Json
import scala.concurrent.duration.Duration
import lila.api.Context

View File

@ -1,6 +1,6 @@
package views.html.chat
import play.api.libs.json.{ JsArray, Json, JsBoolean }
import play.api.libs.json.Json
import lila.api.Context
import lila.app.templating.Environment._

View File

@ -3,9 +3,8 @@ package lila.analyse
import akka.actor.ActorSelection
import chess.format.FEN
import lila.db.dsl._
import lila.game.actorApi.InsertGame
import lila.game.{ Game, GameRepo }
import lila.game.GameRepo
import lila.hub.actorApi.map.Tell
final class Analyser(

View File

@ -50,7 +50,6 @@ case class Analysis(
object Analysis {
import lila.db.BSON
import lila.db.BSON.BSONJodaDateTimeHandler
import reactivemongo.bson._
private[analyse] implicit val analysisBSONHandler = new BSON[Analysis] {

View File

@ -1,8 +1,5 @@
package lila.analyse
import org.joda.time.DateTime
import play.api.libs.json.Json
import lila.db.dsl._
import lila.game.Game

View File

@ -21,28 +21,11 @@ private[analyse] final class Annotator(netDomain: String) {
)
}
import chess.{ Status => S }
private def annotateStatus(winner: Option[Color], status: Status)(p: Pgn) = (winner match {
case Some(color) =>
val loserName = (!color).toString.capitalize
status match {
case Status.Mate => s"$loserName is checkmated".some
case Status.Resign => s"$loserName resigns".some
case Status.Timeout => s"$loserName leaves the game".some
case Status.Outoftime => s"$loserName forfeits on time".some
case Status.Cheat => s"$loserName forfeits by computer assistance".some
case _ => none
}
case None => status match {
case Status.Aborted => "Game is aborted".some
case Status.Stalemate => "Stalemate".some
case Status.Draw => "Draw".some
case _ => none
private def annotateStatus(winner: Option[Color], status: Status)(p: Pgn) =
lila.game.StatusText(status, winner, chess.variant.Standard) match {
case "" => p
case text => p.updateLastPly(_.copy(result = text.some))
}
}) match {
case Some(text) => p.updateLastPly(_.copy(result = text.some))
case None => p
}
private def annotateOpening(opening: Option[FullOpening.AtPly])(p: Pgn) = opening.fold(p) { o =>
p.updatePly(o.ply, _.copy(opening = o.opening.ecoName.some))

View File

@ -1,11 +1,7 @@
package lila.analyse
import akka.actor._
import akka.pattern.pipe
import com.typesafe.config.Config
import lila.notify.NotifyApi
import scala.util.{ Success, Failure }
import spray.caching.{ LruCache, Cache }
import lila.common.PimpedConfig._

View File

@ -1,11 +1,8 @@
package lila.api
import akka.actor.ActorSelection
import akka.pattern.{ ask, pipe }
import play.twirl.api.Html
import lila.hub.actorApi.Deploy
import makeTimeout.short
private[api] final class Cli(bus: lila.common.Bus, renderer: ActorSelection) extends lila.common.Cli {

View File

@ -1,7 +1,6 @@
package lila.api
import play.api.libs.json.{ JsObject, JsArray }
import play.api.mvc.{ Request, RequestHeader }
import play.api.mvc.RequestHeader
import lila.common.HTTPRequest
import lila.hub.actorApi.relation.OnlineFriends

View File

@ -4,7 +4,6 @@ import akka.actor._
import com.typesafe.config.Config
import lila.common.PimpedConfig._
import lila.simul.Simul
import scala.collection.JavaConversions._
import scala.concurrent.duration._
final class Env(

View File

@ -4,7 +4,6 @@ import play.api.libs.json._
import reactivemongo.api.ReadPreference
import reactivemongo.bson._
import chess.format.pgn.Pgn
import lila.analyse.{ JsonView => analysisJson, AnalysisRepo, Analysis }
import lila.common.paginator.{ Paginator, PaginatorJson }
import lila.common.PimpedJson._
@ -12,9 +11,8 @@ import lila.db.dsl._
import lila.db.paginator.{ Adapter, CachedAdapter }
import lila.game.BSONHandlers._
import lila.game.Game.{ BSONFields => G }
import lila.game.{ Game, Pov, GameRepo, PerfPicker }
import lila.game.{ Game, GameRepo, PerfPicker }
import lila.user.User
import makeTimeout.short
private[api] final class GameApi(
netBaseUrl: String,

View File

@ -48,7 +48,6 @@ object KamonPusher {
}
import com.typesafe.config.Config
import kamon.metric.{ MetricKey, Entity }
import kamon.statsd.SimpleMetricKeyGenerator
// don't replace . with _

View File

@ -7,7 +7,7 @@ import lila.common.PimpedJson._
import lila.game.{ GameRepo, Pov }
import lila.lobby.SeekApi
import lila.setup.FilterConfig
import lila.user.{ User, UserContext }
import lila.user.UserContext
final class LobbyApi(
getFilter: UserContext => Fu[FilterConfig],
@ -15,7 +15,6 @@ final class LobbyApi(
seekApi: SeekApi,
pools: List[lila.pool.PoolConfig]) {
import makeTimeout.large
import lila.pool.JsonView._
val poolsJson = Json toJson pools

View File

@ -1,7 +1,6 @@
package lila.api
import chess.format.pgn.{ Pgn, Parser }
import lila.db.dsl._
import chess.format.pgn.Pgn
import lila.game.Game
import lila.game.{ GameRepo, Query }
import play.api.libs.iteratee._

View File

@ -2,7 +2,7 @@ package lila.api
import play.api.libs.json._
import lila.analyse.{ JsonView => analysisJson, Analysis, Info }
import lila.analyse.{ JsonView => analysisJson, Analysis }
import lila.common.PimpedJson._
import lila.common.{ LightUser, ApiVersion }
import lila.game.{ Pov, Game, GameRepo }
@ -10,9 +10,8 @@ import lila.pref.Pref
import lila.round.{ JsonView, Forecast }
import lila.security.Granter
import lila.simul.Simul
import lila.tournament.{ Tournament, SecondsToDoFirstMove, TourAndRanks }
import lila.tournament.{ SecondsToDoFirstMove, TourAndRanks }
import lila.tree.Node.partitionTreeJsonWriter
import lila.user.User
private[api] final class RoundApi(
jsonView: JsonView,

View File

@ -1,7 +1,7 @@
package lila.api
import akka.actor._
import akka.pattern.{ ask, pipe }
import akka.pattern.ask
import play.api.libs.json.JsObject
import scala.concurrent.duration._

View File

@ -4,11 +4,8 @@ import play.api.libs.json._
import lila.common.paginator.{ Paginator, PaginatorJson }
import lila.common.PimpedJson._
import lila.db.dsl._
import lila.game.GameRepo
import lila.rating.Perf
import lila.user.{ UserRepo, User, Perfs, Profile }
import makeTimeout.short
import lila.user.{ UserRepo, User }
private[api] final class UserApi(
jsonView: lila.user.JsonView,

View File

@ -1,6 +1,5 @@
package lila.blog
import akka.actor._
import com.typesafe.config.Config
import lila.common.PimpedConfig._

View File

@ -3,7 +3,6 @@ package lila.blog
import io.prismic.Document
import org.joda.time.DateTime
import play.api.libs.iteratee._
import reactivemongo.api._
import reactivemongo.bson._
import lila.notify.{ Notification, NotifyApi, NewBlogPost }

View File

@ -13,8 +13,6 @@ final class BookmarkApi(
coll: Coll,
paginator: PaginatorBuilder) {
import lila.game.BSONHandlers.gameBSONHandler
private def exists(gameId: String, userId: String): Fu[Boolean] =
coll exists selectId(gameId, userId)

View File

@ -3,7 +3,6 @@ package lila.bookmark
import akka.actor._
import com.typesafe.config.Config
import lila.common.PimpedConfig._
import lila.hub.actorApi.bookmark._
final class Env(

View File

@ -2,8 +2,7 @@ package lila.bookmark
import lila.common.paginator._
import lila.db.dsl._
import lila.db.paginator._
import lila.game.{ Game, GameRepo }
import lila.game.GameRepo
import lila.user.User
private[bookmark] final class PaginatorBuilder(

View File

@ -7,7 +7,6 @@ import chess.variant.Variant
import lila.db.BSON
import lila.db.BSON.{ Reader, Writer }
import lila.db.dsl._
import lila.rating.PerfType
private object BSONHandlers {

View File

@ -1,7 +1,7 @@
package lila.challenge
import chess.variant.{ Variant, FromPosition }
import chess.{ Mode, Clock, Speed }
import chess.{ Mode, Speed }
import org.joda.time.DateTime
import lila.game.PerfPicker

View File

@ -2,7 +2,6 @@ package lila.challenge
import akka.actor._
import org.joda.time.DateTime
import scala.concurrent.duration._
import lila.game.{ Game, Pov, GameRepo }
import lila.hub.actorApi.map.Tell

View File

@ -1,10 +1,8 @@
package lila.challenge
import org.joda.time.DateTime
import scala.concurrent.duration._
import lila.db.dsl._
import lila.user.{ User, UserRepo }
private final class ChallengeRepo(coll: Coll, maxPerUser: Int) {

View File

@ -1,12 +1,9 @@
package lila.challenge
import akka.actor.ActorSelection
import akka.pattern.ask
import chess.format.Forsyth
import chess.format.Forsyth.SituationPlus
import chess.{ Situation, Mode }
import lila.game.{ GameRepo, Game, Pov, Source, Player, PerfPicker }
import lila.game.{ GameRepo, Game, Pov, Source, Player }
import lila.user.{ User, UserRepo }
private[challenge] final class Joiner(onStart: String => Unit) {

View File

@ -1,11 +1,8 @@
package lila.challenge
import scala.concurrent.duration._
import akka.actor._
import akka.pattern.ask
import akka.actor.ActorSelection
import lila.common.PimpedJson._
import lila.hub.actorApi.map._
import lila.socket.actorApi.{ Connected => _, _ }

View File

@ -1,7 +1,7 @@
package lila.chat
import lila.db.dsl._
import lila.user.{ User, UserRepo }
import lila.user.User
import org.joda.time.DateTime
import reactivemongo.bson._

View File

@ -2,7 +2,6 @@ package lila.chat
import akka.actor.{ ActorSystem, Props, ActorSelection }
import com.typesafe.config.Config
import scala.concurrent.duration._
import lila.common.PimpedConfig._

View File

@ -36,7 +36,6 @@ case class PlayerLine(
object Line {
import lila.db.BSON
import reactivemongo.bson.{ BSONHandler, BSONString }
import org.apache.commons.lang3.StringEscapeUtils.unescapeHtml4

View File

@ -4,7 +4,7 @@ import akka.actor._
import play.api.libs.json._
import lila.common.PimpedJson._
import lila.socket.{ Handler, SocketMember, Historical }
import lila.socket.{ Handler, SocketMember }
object Socket {

@ -1 +1 @@
Subproject commit d82c53f8e11896a602047f3cbcc7f8f91140f1d0
Subproject commit 623e6bc55193b55fa9778c382be3e1245e6b3385

View File

@ -2,7 +2,6 @@ package lila.coach
import org.joda.time.DateTime
import play.api.data._
import play.api.data.format.Formatter
import play.api.data.Forms._
object CoachProfileForm {

View File

@ -1,6 +1,5 @@
package lila.coach
import org.joda.time.DateTime
import play.api.data._
import play.api.data.Forms._

View File

@ -1,10 +1,6 @@
package lila.coach
import akka.actor._
import com.typesafe.config.Config
import scala.concurrent.duration._
import lila.common.PimpedConfig._
final class Env(
config: Config,

Some files were not shown because too many files have changed in this diff Show More