take advantage of play 2.2 json improvements in wiki module
This commit is contained in:
parent
761e92a04f
commit
164b252e1b
|
@ -2,6 +2,7 @@ package lila.wiki
|
|||
|
||||
import lila.db.Types.Coll
|
||||
import lila.db.api._
|
||||
import tube._
|
||||
import play.api.libs.concurrent.Execution.Implicits._
|
||||
|
||||
final class Api(implicit coll: Coll) {
|
||||
|
|
|
@ -2,6 +2,7 @@ package lila.wiki
|
|||
|
||||
import lila.db.Types.Coll
|
||||
import lila.db.api._
|
||||
import tube._
|
||||
|
||||
import java.io.File
|
||||
import com.google.common.io.Files
|
||||
|
@ -24,7 +25,7 @@ private[wiki] final class Fetch(gitUrl: String)(implicit coll: Coll) {
|
|||
|
||||
private def filePage(file: File): Option[Page] = {
|
||||
val name = """^(.+)\.md$""".r.replaceAllIn(file.getName, _ group 1)
|
||||
(name != "Home") option Pages(name, toHtml(fileContent(file)))
|
||||
(name != "Home") option Page.make(name, toHtml(fileContent(file)))
|
||||
}
|
||||
|
||||
private def getFiles: Fu[List[File]] = Future {
|
||||
|
|
|
@ -5,17 +5,22 @@ case class Page(id: String, name: String, title: String, body: String) {
|
|||
def slug = id
|
||||
}
|
||||
|
||||
object Pages {
|
||||
object Page {
|
||||
|
||||
import java.text.Normalizer
|
||||
import java.util.regex.Matcher.quoteReplacement
|
||||
|
||||
def apply(name: String, body: String): Page = new Page(
|
||||
def make(name: String, body: String): Page = new Page(
|
||||
id = dropNumber(slugify(name)),
|
||||
name = name,
|
||||
title = dropNumber(name.replace("-", " ")),
|
||||
body = body)
|
||||
|
||||
import lila.db.Tube
|
||||
import play.api.libs.json._
|
||||
|
||||
val tube = Tube(Json.reads[Page], Json.writes[Page])
|
||||
|
||||
// does not lowercase
|
||||
private def slugify(input: String) = {
|
||||
val nowhitespace = input.replace(" ", "_")
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
package lila
|
||||
|
||||
import lila.db._
|
||||
import play.api.libs.json._
|
||||
|
||||
package object wiki extends PackageObject with WithPlay {
|
||||
|
||||
implicit lazy val pageTube = Tube(
|
||||
Json.reads[Page],
|
||||
Json.writes[Page]
|
||||
) inColl Env.current.pageColl
|
||||
object tube {
|
||||
|
||||
implicit lazy val pageTube = Page.tube inColl Env.current.pageColl
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue