| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 8b36918 commit e65e042
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,48 @@ | |||
| 1 | + package services | ||
| 2 | + | ||
| 3 | + import controllers.ArticlePage | ||
| 4 | + import model.PageWithStoryPackage | ||
| 5 | + import model.liveblog.{BodyBlock, ImageBlockElement, TextBlockElement} | ||
| 6 | + | ||
| 7 | + sealed trait RenderType | ||
| 8 | + case object RemoteRender extends RenderType | ||
| 9 | + case object LocalRender extends RenderType | ||
| 10 | + | ||
| 11 | + object RenderingTierPicker { | ||
| 12 | + | ||
| 13 | + private def isUnSupportedType(page: PageWithStoryPackage): Boolean = { | ||
| 14 | + page match { | ||
| 15 | + case a:ArticlePage => false | ||
| 16 | + case _ => true | ||
| 17 | + } | ||
| 18 | + } | ||
| 19 | + | ||
| 20 | + private def hasUnsupportedElements(page: PageWithStoryPackage): Boolean = { | ||
| 21 | + page.article.blocks.get.body.exists((block: BodyBlock) => { | ||
| 22 | + | ||
| 23 | + val hasUnsupportedElements: Boolean = block.elements.flatMap { | ||
| 24 | + case b: TextBlockElement => None | ||
| 25 | + case b: ImageBlockElement => None | ||
| 26 | + case b => Some(b) | ||
| 27 | + }.nonEmpty | ||
| 28 | + | ||
| 29 | + hasUnsupportedElements | ||
| 30 | + | ||
| 31 | + }) | ||
| 32 | + } | ||
| 33 | + | ||
| 34 | + private def canHaveAds(page: PageWithStoryPackage): Boolean = { | ||
| 35 | + ! page.metadata.sensitive | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + def getRenderTierFor(page: PageWithStoryPackage): RenderType = { | ||
| 39 | + | ||
| 40 | + if(hasUnsupportedElements(page) || canHaveAds(page) || isUnSupportedType(page)){ | ||
| 41 | + LocalRender | ||
| 42 | + } else { | ||
| 43 | + RemoteRender | ||
| 44 | + } | ||
| 45 | + | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + } | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments