Commit 1437ad70 authored by jiahua.liu's avatar jiahua.liu

ktorNMSL

parent 7189e620
...@@ -11,10 +11,15 @@ package net.mamoe.mirai.api.http ...@@ -11,10 +11,15 @@ package net.mamoe.mirai.api.http
import io.ktor.application.Application import io.ktor.application.Application
import io.ktor.server.cio.CIO import io.ktor.server.cio.CIO
import io.ktor.server.engine.applicationEngineEnvironment
import io.ktor.server.engine.connector
import io.ktor.server.engine.embeddedServer import io.ktor.server.engine.embeddedServer
import io.ktor.util.KtorExperimentalAPI import io.ktor.util.KtorExperimentalAPI
import net.mamoe.mirai.api.http.route.mirai import net.mamoe.mirai.api.http.route.mirai
import net.mamoe.mirai.utils.DefaultLogger import net.mamoe.mirai.utils.DefaultLogger
import org.slf4j.LoggerFactory
import org.slf4j.helpers.NOPLogger
import org.slf4j.helpers.NOPLoggerFactory
object MiraiHttpAPIServer { object MiraiHttpAPIServer {
...@@ -39,7 +44,14 @@ object MiraiHttpAPIServer { ...@@ -39,7 +44,14 @@ object MiraiHttpAPIServer {
// TODO: start是无阻塞的,理应获取启动状态后再执行后续代码 // TODO: start是无阻塞的,理应获取启动状态后再执行后续代码
try { try {
embeddedServer(CIO, port, module = Application::mirai).start() embeddedServer(CIO, environment = applicationEngineEnvironment {
this.log = NOPLoggerFactory().getLogger("NMYSL")
this.module(Application::mirai)
connector {
this.port = port
}
}).start()
logger.info("Http api server is running with authKey: ${SessionManager.authKey}") logger.info("Http api server is running with authKey: ${SessionManager.authKey}")
callback?.invoke() callback?.invoke()
......
...@@ -35,11 +35,18 @@ import net.mamoe.mirai.api.http.data.common.DTO ...@@ -35,11 +35,18 @@ import net.mamoe.mirai.api.http.data.common.DTO
import net.mamoe.mirai.api.http.data.common.VerifyDTO import net.mamoe.mirai.api.http.data.common.VerifyDTO
import net.mamoe.mirai.api.http.util.jsonParseOrNull import net.mamoe.mirai.api.http.util.jsonParseOrNull
import net.mamoe.mirai.api.http.util.toJson import net.mamoe.mirai.api.http.util.toJson
import org.slf4j.Logger
import org.slf4j.helpers.NOPLogger
import org.slf4j.helpers.NOPLoggerFactory
import org.slf4j.impl.SimpleLogger
import org.slf4j.impl.SimpleLoggerFactory
fun Application.mirai() { fun Application.mirai() {
install(DefaultHeaders) install(DefaultHeaders)
install(CallLogging) install(CallLogging) {
logger = NOPLoggerFactory().getLogger("NMSL")
}
authModule() authModule()
messageModule() messageModule()
infoModule() infoModule()
......
...@@ -19,6 +19,7 @@ import net.mamoe.mirai.api.http.generateSessionKey ...@@ -19,6 +19,7 @@ import net.mamoe.mirai.api.http.generateSessionKey
import net.mamoe.mirai.contact.sendMessage import net.mamoe.mirai.contact.sendMessage
import net.mamoe.mirai.utils.MiraiLogger import net.mamoe.mirai.utils.MiraiLogger
import java.io.File import java.io.File
import java.io.PrintStream
import kotlin.concurrent.thread import kotlin.concurrent.thread
object MiraiConsole { object MiraiConsole {
...@@ -280,6 +281,7 @@ class MiraiConsoleLoader { ...@@ -280,6 +281,7 @@ class MiraiConsoleLoader {
companion object { companion object {
@JvmStatic @JvmStatic
fun main(args: Array<String>) { fun main(args: Array<String>) {
MiraiConsole.start() MiraiConsole.start()
Runtime.getRuntime().addShutdownHook(thread(start = false) { Runtime.getRuntime().addShutdownHook(thread(start = false) {
MiraiConsole.stop() MiraiConsole.stop()
......
...@@ -11,6 +11,8 @@ import com.googlecode.lanterna.terminal.Terminal ...@@ -11,6 +11,8 @@ import com.googlecode.lanterna.terminal.Terminal
import com.googlecode.lanterna.terminal.TerminalResizeListener import com.googlecode.lanterna.terminal.TerminalResizeListener
import com.googlecode.lanterna.terminal.swing.SwingTerminal import com.googlecode.lanterna.terminal.swing.SwingTerminal
import com.googlecode.lanterna.terminal.swing.SwingTerminalFrame import com.googlecode.lanterna.terminal.swing.SwingTerminalFrame
import java.io.OutputStream
import java.io.PrintStream
import java.lang.StringBuilder import java.lang.StringBuilder
import java.util.* import java.util.*
import kotlin.concurrent.thread import kotlin.concurrent.thread
...@@ -138,7 +140,7 @@ object MiraiConsoleUI { ...@@ -138,7 +140,7 @@ object MiraiConsoleUI {
val height = terminal.terminalSize.rows val height = terminal.terminalSize.rows
terminal.setBackgroundColor(TextColor.ANSI.DEFAULT) terminal.setBackgroundColor(TextColor.ANSI.DEFAULT)
if (!inited) { if (!inited) {
val mainTitle = "Mirai Console v0.01 Core v0.14" val mainTitle = "Mirai Console v0.01 Core v0.15"
textGraphics.foregroundColor = TextColor.ANSI.WHITE textGraphics.foregroundColor = TextColor.ANSI.WHITE
textGraphics.backgroundColor = TextColor.ANSI.GREEN textGraphics.backgroundColor = TextColor.ANSI.GREEN
textGraphics.putString((width - mainTitle.length) / 2, 1, mainTitle, SGR.BOLD) textGraphics.putString((width - mainTitle.length) / 2, 1, mainTitle, SGR.BOLD)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment