big mobile buttons on homepage
parent
acb0eb626e
commit
5bf9b87db3
|
@ -72,7 +72,7 @@ object Main extends LilaController {
|
|||
|
||||
def mobile = Open { implicit ctx =>
|
||||
OptionOk(Prismic oneShotBookmark "mobile-apk") {
|
||||
case (doc, resolver) => html.site.mobile(doc, resolver)
|
||||
case (doc, resolver) => html.mobile.home(doc, resolver)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,6 +32,13 @@
|
|||
@trans.nbConnectedPlayers("<strong>?</strong>")
|
||||
</div>
|
||||
<div id="nb_games_in_play">@trans.nbGamesInPlay(s"<span>${nbRounds}</span>")</div>
|
||||
@if(lila.common.HTTPRequest.isAndroid(ctx.req)) {
|
||||
@mobile.googlePlayButton()
|
||||
} else {
|
||||
@if(lila.common.HTTPRequest.isIOS(ctx.req)) {
|
||||
@mobile.appleStoreButton()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@moreJs = {
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
<a class="store" style="margin-top: 20px"
|
||||
href="https://itunes.apple.com/us/app/lichess-free-online-chess/id968371784">
|
||||
<img alt="Download on the Apple App Store"
|
||||
width="172"
|
||||
src="https://devimages.apple.com.edgekey.net/app-store/marketing/guidelines/images/badge-download-on-the-app-store.svg" />
|
||||
</a>
|
|
@ -0,0 +1,6 @@
|
|||
<a class="store" style="margin-top: 30px"
|
||||
href="https://play.google.com/store/apps/details?id=org.lichess.mobileapp">
|
||||
<img alt="Android app on Google Play"
|
||||
width="172"
|
||||
src="https://developer.android.com/images/brand/en_app_rgb_wo_60.png" />
|
||||
</a>
|
|
@ -10,18 +10,8 @@ moreCss = cssTag("mobile.css")) {
|
|||
</div>
|
||||
<div class="left-side">
|
||||
<h1>Play chess everywhere</h1>
|
||||
<a class="store" style="margin-top: 30px"
|
||||
href="https://play.google.com/store/apps/details?id=org.lichess.mobileapp">
|
||||
<img alt="Android app on Google Play"
|
||||
width="172"
|
||||
src="https://developer.android.com/images/brand/en_app_rgb_wo_60.png" />
|
||||
</a>
|
||||
<a class="store" style="margin-top: 20px"
|
||||
href="https://itunes.apple.com/us/app/lichess-free-online-chess/id968371784">
|
||||
<img alt="Download on the Apple App Store"
|
||||
width="172"
|
||||
src="https://devimages.apple.com.edgekey.net/app-store/marketing/guidelines/images/badge-download-on-the-app-store.svg" />
|
||||
</a>
|
||||
@googlePlayButton()
|
||||
@appleStoreButton()
|
||||
<div class="apk" style="margin-top: 20px">
|
||||
@Html(~apkDoc.getHtml("doc.content", resolver))
|
||||
</div>
|
|
@ -21,18 +21,24 @@ object HTTPRequest {
|
|||
|
||||
def userAgent(req: RequestHeader): Option[String] = req.headers get HeaderNames.USER_AGENT
|
||||
|
||||
val isAndroid = UaMatcher("""(?i).*android.+mobile.*""".r)
|
||||
val isIOS = UaMatcher("""(?i).*(iphone|ipad|ipod).*""".r)
|
||||
|
||||
def referer(req: RequestHeader): Option[String] = req.headers get HeaderNames.REFERER
|
||||
|
||||
def sid(req: RequestHeader): Option[String] = req.session get "sid"
|
||||
|
||||
private val isBotPattern = {
|
||||
"""(?i).*(googlebot|googlebot-mobile|googlebot-image|mediapartners-google|bingbot|slurp|java|wget|curl|commons-httpclient|python-urllib|libwww|httpunit|nutch|phpcrawl|msnbot|adidxbot|blekkobot|teoma|ia_archiver|gingercrawler|webmon|httrack|webcrawler|fast-webcrawler|fastenterprisecrawler|convera|biglotron|grub\.org|usinenouvellecrawler|antibot|netresearchserver|speedy|fluffy|jyxobot|bibnum\.bnf|findlink|exabot|gigabot|msrbot|seekbot|ngbot|panscient|yacybot|aisearchbot|ioi|ips-agent|tagoobot|mj12bot|dotbot|woriobot|yanga|buzzbot|mlbot|purebot|lingueebot|yandex\.com/bots|""" +
|
||||
val isBot = UaMatcher {
|
||||
("""(?i).*(googlebot|googlebot-mobile|googlebot-image|mediapartners-google|bingbot|slurp|java|wget|curl|commons-httpclient|python-urllib|libwww|httpunit|nutch|phpcrawl|msnbot|adidxbot|blekkobot|teoma|ia_archiver|gingercrawler|webmon|httrack|webcrawler|fast-webcrawler|fastenterprisecrawler|convera|biglotron|grub\.org|usinenouvellecrawler|antibot|netresearchserver|speedy|fluffy|jyxobot|bibnum\.bnf|findlink|exabot|gigabot|msrbot|seekbot|ngbot|panscient|yacybot|aisearchbot|ioi|ips-agent|tagoobot|mj12bot|dotbot|woriobot|yanga|buzzbot|mlbot|purebot|lingueebot|yandex\.com/bots|""" +
|
||||
"""voyager|cyberpatrol|voilabot|baiduspider|citeseerxbot|spbot|twengabot|postrank|turnitinbot|scribdbot|page2rss|sitebot|linkdex|ezooms|dotbot|mail\.ru|discobot|zombie\.js|heritrix|findthatfile|europarchive\.org|nerdbynature\.bot|sistrixcrawler|ahrefsbot|aboundex|domaincrawler|wbsearchbot|summify|ccbot|edisterbot|seznambot|ec2linkfinder|gslfbot|aihitbot|intelium_bot|yeti|retrevopageanalyzer|lb-spider|sogou|lssbot|careerbot|wotbox|wocbot|ichiro|duckduckbot|lssrocketcrawler|drupact|webcompanycrawler|acoonbot|openindexspider|gnamgnamspider|web-archive-net\.com\.bot|backlinkcrawler|""" +
|
||||
"""coccoc|integromedb|contentcrawlerspider|toplistbot|seokicks-robot|it2media-domain-crawler|ip-web-crawler\.com|siteexplorer\.info|elisabot|proximic|changedetection|blexbot|arabot|wesee:search|niki-bot|crystalsemanticsbot|rogerbot|360spider|psbot|interfaxscanbot|lipperheyseoservice|ccmetadatascaper|g00g1e\.net|grapeshotcrawler|urlappendbot|brainobot|fr-crawler|binlar|simplecrawler|simplecrawler|livelapbot|twitterbot|cxensebot|smtbot|facebookexternalhit).*"""
|
||||
}.r.pattern
|
||||
"""coccoc|integromedb|contentcrawlerspider|toplistbot|seokicks-robot|it2media-domain-crawler|ip-web-crawler\.com|siteexplorer\.info|elisabot|proximic|changedetection|blexbot|arabot|wesee:search|niki-bot|crystalsemanticsbot|rogerbot|360spider|psbot|interfaxscanbot|lipperheyseoservice|ccmetadatascaper|g00g1e\.net|grapeshotcrawler|urlappendbot|brainobot|fr-crawler|binlar|simplecrawler|simplecrawler|livelapbot|twitterbot|cxensebot|smtbot|facebookexternalhit).*""").r
|
||||
}
|
||||
|
||||
def isBot(req: RequestHeader): Boolean = userAgent(req) ?? { ua =>
|
||||
isBotPattern.matcher(ua).matches
|
||||
private def UaMatcher(regex: scala.util.matching.Regex): RequestHeader => Boolean = {
|
||||
val pattern = regex.pattern
|
||||
req => {
|
||||
userAgent(req) ?? { ua => pattern.matcher(ua).matches }
|
||||
}
|
||||
}
|
||||
|
||||
def isHuman(req: RequestHeader) = !isBot(req)
|
||||
|
|
Loading…
Reference in New Issue