diff --git a/app/controllers/Export.scala b/app/controllers/Export.scala index bcf3db57de..254041cc27 100644 --- a/app/controllers/Export.scala +++ b/app/controllers/Export.scala @@ -24,7 +24,7 @@ object Export extends LilaController { asImported = get("as") contains "imported", asRaw = get("as").contains("raw")) map { content => Ok(content).withHeaders( - CONTENT_TYPE -> ContentTypes.TEXT, + CONTENT_TYPE -> pgnContentType, CONTENT_DISPOSITION -> ("attachment; filename=" + (Env.api.pgnDump filename game))) } recover { case err => NotFound(err.getMessage) diff --git a/app/controllers/Game.scala b/app/controllers/Game.scala index 423773f658..2a1fba0d13 100644 --- a/app/controllers/Game.scala +++ b/app/controllers/Game.scala @@ -49,7 +49,7 @@ object Game extends LilaController { import org.joda.time.format.DateTimeFormat val date = (DateTimeFormat forPattern "yyyy-MM-dd") print new DateTime Ok.chunked(Env.api.pgnDump exportUserGames userId).withHeaders( - CONTENT_TYPE -> ContentTypes.TEXT, + CONTENT_TYPE -> pgnContentType, CONTENT_DISPOSITION -> ("attachment; filename=" + s"lichess_${me.username}_$date.pgn")) }) else notFound diff --git a/app/controllers/LilaController.scala b/app/controllers/LilaController.scala index b6fe4acac1..b50b479ff5 100644 --- a/app/controllers/LilaController.scala +++ b/app/controllers/LilaController.scala @@ -386,4 +386,6 @@ private[controllers] trait LilaController protected def errorsAsJson(form: play.api.data.Form[_])(implicit lang: play.api.i18n.Messages) = lila.common.Form errorsAsJson form + + protected val pgnContentType = "application/x-chess-pgn" } diff --git a/app/controllers/Search.scala b/app/controllers/Search.scala index 25d032b56c..02fd0185e7 100644 --- a/app/controllers/Search.scala +++ b/app/controllers/Search.scala @@ -65,7 +65,7 @@ object Search extends LilaController { import org.joda.time.format.DateTimeFormat val date = (DateTimeFormat forPattern "yyyy-MM-dd") print DateTime.now Ok.chunked(Env.api.pgnDump exportGamesFromIds ids).withHeaders( - CONTENT_TYPE -> ContentTypes.TEXT, + CONTENT_TYPE -> pgnContentType, CONTENT_DISPOSITION -> ("attachment; filename=" + s"lichess_search_$date.pgn")) } } diff --git a/app/controllers/Study.scala b/app/controllers/Study.scala index ea5ac06c19..a448c18518 100644 --- a/app/controllers/Study.scala +++ b/app/controllers/Study.scala @@ -242,7 +242,7 @@ object Study extends LilaController { lila.mon.export.pgn.study() env.pgnDump(study) map { pgns => Ok(pgns.mkString("\n\n\n")).withHeaders( - CONTENT_TYPE -> ContentTypes.TEXT, + CONTENT_TYPE -> pgnContentType, CONTENT_DISPOSITION -> ("attachment; filename=" + (env.pgnDump filename study))) } } @@ -259,7 +259,7 @@ object Study extends LilaController { lila.mon.export.pgn.studyChapter() env.pgnDump.ofChapter(study, chapter) map { pgn => Ok(pgn.toString).withHeaders( - CONTENT_TYPE -> ContentTypes.TEXT, + CONTENT_TYPE -> pgnContentType, CONTENT_DISPOSITION -> ("attachment; filename=" + (env.pgnDump.filename(study, chapter)))) } }