private fun startTheApplication(
user: String,
listName: String,
items: List<String>
) {
val toDoList = ToDoList(ListName(listName), items.map(::ToDoItem))
val lists = mapOf(User(user) to listOf(toDoList) )
val server = Zettai(lists).asServer(Jetty(8081)) // 메인 함수와는 다른 포트 사용
server.start()
}
이제 응답을 제대로 파싱할 수 있다. 나중에 더 잘 처리하겠지만, 지금은 몇 가지 정규표현식을 사용해 HTML에서 이름을 추출할 수 있다.
private fun parseResponse(html: String): ToDoList {
val nameRegex = "<h2>.*<".toRegex()
val listName = ListName(extractListName(nameRegex, html))
val itemsRegex = "<td>.*?<".toRegex()
val items = itemsRegex.findAll(html)
.map { ToDoItem(extractItemDesc(it)) }.toList()
return ToDoList(listName,items)
}