lila/old/controllers/Main.scala

60 lines
1.6 KiB
Scala

package controllers
import lila.app._
import views._
import play.api.mvc._
import play.api.mvc.Results._
import play.api.data._
import play.api.data.Forms._
import play.api.libs.json._
import play.api.libs.iteratee._
import play.api.libs.concurrent.Akka
import scalaz.effects._
object Main extends LilaController {
private lazy val runCommand = lila.app.cli.Main.main(env) _
def websocket = WebSocket.async[JsValue] { implicit req
implicit val ctx = reqToCtx(req)
env.site.socket.join(
uidOption = get("sri"),
username = ctx.me map (_.username),
flag = get("flag")
)
}
def cli = OpenBody { implicit ctx
implicit val req = ctx.body
IOResult {
Form(single(
"c" -> nonEmptyText
)).bindFromRequest.fold(
err putStrLn("bad command") inject BadRequest(),
command for {
_ putStrLn(command)
res runCommand(command.split(" "))
_ putStrLn(res)
} yield Ok(res)
)
}
}
def captchaCheck(id: String) = Open { implicit ctx
Ok(env.site.captcha get id valid ~get("solution") fold (1, 0))
}
def embed = Open { implicit ctx
JsOk("""document.write("<iframe src='%s?embed=" + document.domain + "' class='lichess-iframe' allowtransparency='true' frameBorder='0' style='width: %dpx; height: %dpx;' title='Lichess free online chess'></iframe>");"""
.format(env.settings.NetBaseUrl, getInt("w") | 820, getInt("h") | 650),
CACHE_CONTROL -> "max-age=86400"
)
}
def developers = Open { implicit ctx
Ok(views.html.site.developers())
}
}