in article/app/controllers/LiveBlogController.scala [126:194]
private[this] def renderWithRange(
path: String,
range: BlockRange,
filterKeyEvents: Boolean,
)(implicit
request: RequestHeader,
): Future[Result] = {
mapModel(path, range, filterKeyEvents) { (page, blocks) =>
{
val isAmpSupported = page.article.content.shouldAmplify
val pageType: PageType = PageType(page, request, context)
(page, request.getRequestFormat) match {
case (minute: MinutePage, HtmlFormat) =>
Future.successful(common.renderHtml(MinuteHtmlPage.html(minute), minute))
case (blog: LiveBlogPage, HtmlFormat) =>
val dcrCouldRender = true
val theme = blog.article.content.metadata.format.getOrElse(ContentFormat.defaultContentFormat).theme
val design = blog.article.content.metadata.format.getOrElse(ContentFormat.defaultContentFormat).design
val display = blog.article.content.metadata.format.getOrElse(ContentFormat.defaultContentFormat).display
val isDeadBlog = !blog.article.fields.isLive
val properties =
Map(
"participatingInTest" -> "false",
"dcrCouldRender" -> dcrCouldRender.toString,
"theme" -> theme.toString,
"design" -> design.toString,
"display" -> display.toString,
"isDead" -> isDeadBlog.toString,
"isLiveBlog" -> "true",
)
val remoteRendering = !request.forceDCROff
if (remoteRendering) {
DotcomponentsLogger.logger
.logRequest(s"liveblog executing in dotcomponents", properties, page.article)
val pageType: PageType = PageType(blog, request, context)
remoteRenderer.getArticle(
ws,
blog,
blocks,
pageType,
newsletter = None,
filterKeyEvents,
request.forceLive,
)
} else {
DotcomponentsLogger.logger.logRequest(s"liveblog executing in web", properties, page.article)
Future.successful(common.renderHtml(LiveBlogHtmlPage.html(blog), blog))
}
case (blog: LiveBlogPage, AmpFormat) if isAmpSupported =>
remoteRenderer.getAMPArticle(ws, blog, blocks, pageType, newsletter = None, filterKeyEvents)
case (blog: LiveBlogPage, AmpFormat) =>
Future.successful(common.renderHtml(LiveBlogHtmlPage.html(blog), blog))
case (blog: LiveBlogPage, AppsFormat) =>
remoteRenderer.getAppsArticle(
ws,
blog,
blocks,
pageType,
newsletter = None,
filterKeyEvents,
request.forceLive,
)
case _ => Future.successful(NotFound)
}
}
}
}