diff --git a/app/controllers/LilaController.scala b/app/controllers/LilaController.scala index 4104950e66..bd4b877de6 100644 --- a/app/controllers/LilaController.scala +++ b/app/controllers/LilaController.scala @@ -83,8 +83,10 @@ trait LilaController protected def JsonIOk(map: IO[Map[String, Any]]) = JsonOk(map.unsafePerformIO) - protected def JsIOk(js: IO[String], headers: (String, String)*) = - Ok(js.unsafePerformIO) as JAVASCRIPT withHeaders (headers: _*) + protected def JsIOk(js: IO[String], headers: (String, String)*) = JsOk(js.unsafePerformIO) + + protected def JsOk(js: String, headers: (String, String)*) = + Ok(js) as JAVASCRIPT withHeaders (headers: _*) protected def ValidOk(valid: Valid[Unit]) = valid.fold( e ⇒ BadRequest(e.shows), diff --git a/app/controllers/Main.scala b/app/controllers/Main.scala index 73ae096e47..3d57e35f22 100644 --- a/app/controllers/Main.scala +++ b/app/controllers/Main.scala @@ -45,4 +45,15 @@ object Main extends LilaController { 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("");""" + .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()) + } } diff --git a/app/controllers/RequestGetter.scala b/app/controllers/RequestGetter.scala index 1179d9a8cd..63baff53a1 100644 --- a/app/controllers/RequestGetter.scala +++ b/app/controllers/RequestGetter.scala @@ -13,7 +13,7 @@ trait RequestGetter { req.queryString get name flatMap (_.headOption) filter (""!=) protected def getInt(name: String)(implicit ctx: Context) = - get(name)(ctx) map (_.toInt) + get(name)(ctx) flatMap parseIntOption protected def getOr(name: String, default: String)(implicit ctx: Context) = get(name)(ctx) getOrElse default diff --git a/app/core/Global.scala b/app/core/Global.scala index 5cb7b76adf..40f39fffb9 100644 --- a/app/core/Global.scala +++ b/app/core/Global.scala @@ -30,6 +30,9 @@ object Global extends GlobalSettings { else Action(NotFound("I am an AI server")).some } else { + req.queryString get "embed" flatMap (_.headOption) filter (""!=) foreach { embed ⇒ + println("[embed] %s -> %s".format(embed, req.path)) + } env.monitor.rpsProvider.countRequest() env.security.wiretap(req) env.security.firewall.requestHandler(req) orElse diff --git a/app/templating/AssetHelper.scala b/app/templating/AssetHelper.scala index 3ace722fca..c9eab6d29b 100644 --- a/app/templating/AssetHelper.scala +++ b/app/templating/AssetHelper.scala @@ -7,7 +7,7 @@ import play.api.templates.Html trait AssetHelper { - val assetVersion = 36 + val assetVersion = 37 def cssTag(name: String) = css("stylesheets/" + name) diff --git a/app/views/base/layout.scala.html b/app/views/base/layout.scala.html index 6e128ce9d0..8ab2ed6d8a 100644 --- a/app/views/base/layout.scala.html +++ b/app/views/base/layout.scala.html @@ -106,10 +106,10 @@