mirror of
https://github.com/Mrs4s/go-cqhttp.git
synced 2025-05-05 03:23:49 +08:00
fix: 在登录时不禁用快速编辑
This commit is contained in:
parent
07b1e6b72e
commit
291942357b
@ -71,8 +71,8 @@ func InitBase() {
|
|||||||
base.Init()
|
base.Init()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Main 启动主程序,必须在 InitBase 之后执行
|
// PrepareData 准备 log, 缓存, 数据库, 必须在 InitBase 之后执行
|
||||||
func Main() {
|
func PrepareData() {
|
||||||
rotateOptions := []rotatelogs.Option{
|
rotateOptions := []rotatelogs.Option{
|
||||||
rotatelogs.WithRotationTime(time.Hour * 24),
|
rotatelogs.WithRotationTime(time.Hour * 24),
|
||||||
}
|
}
|
||||||
@ -108,7 +108,10 @@ func Main() {
|
|||||||
if err := db.Open(); err != nil {
|
if err := db.Open(); err != nil {
|
||||||
log.Fatalf("打开数据库失败: %v", err)
|
log.Fatalf("打开数据库失败: %v", err)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// LoginInteract 登录交互, 可能需要键盘输入, 必须在 InitBase, PrepareData 之后执行
|
||||||
|
func LoginInteract() {
|
||||||
var byteKey []byte
|
var byteKey []byte
|
||||||
arg := os.Args
|
arg := os.Args
|
||||||
if len(arg) > 1 {
|
if len(arg) > 1 {
|
||||||
@ -336,7 +339,13 @@ func Main() {
|
|||||||
servers.Run(coolq.NewQQBot(cli))
|
servers.Run(coolq.NewQQBot(cli))
|
||||||
log.Info("资源初始化完成, 开始处理信息.")
|
log.Info("资源初始化完成, 开始处理信息.")
|
||||||
log.Info("アトリは、高性能ですから!")
|
log.Info("アトリは、高性能ですから!")
|
||||||
|
}
|
||||||
|
|
||||||
|
// WaitSignal 在新线程检查更新和网络并等待信号, 必须在 InitBase, PrepareData, LoginInteract 之后执行
|
||||||
|
//
|
||||||
|
// - 直接返回: os.Interrupt, syscall.SIGTERM
|
||||||
|
// - dump stack: syscall.SIGQUIT, syscall.SIGUSR1
|
||||||
|
func WaitSignal() {
|
||||||
go func() {
|
go func() {
|
||||||
selfupdate.CheckUpdate()
|
selfupdate.CheckUpdate()
|
||||||
selfdiagnosis.NetworkDiagnosis(cli)
|
selfdiagnosis.NetworkDiagnosis(cli)
|
||||||
|
@ -14,9 +14,9 @@ import (
|
|||||||
func SetupMainSignalHandler() <-chan struct{} {
|
func SetupMainSignalHandler() <-chan struct{} {
|
||||||
mainOnce.Do(func() {
|
mainOnce.Do(func() {
|
||||||
mainStopCh = make(chan struct{})
|
mainStopCh = make(chan struct{})
|
||||||
mc := make(chan os.Signal, 3)
|
mc := make(chan os.Signal, 4)
|
||||||
closeOnce := sync.Once{}
|
closeOnce := sync.Once{}
|
||||||
signal.Notify(mc, os.Interrupt, syscall.SIGTERM, syscall.SIGUSR1)
|
signal.Notify(mc, os.Interrupt, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGUSR1)
|
||||||
go func() {
|
go func() {
|
||||||
for {
|
for {
|
||||||
switch <-mc {
|
switch <-mc {
|
||||||
@ -24,7 +24,7 @@ func SetupMainSignalHandler() <-chan struct{} {
|
|||||||
closeOnce.Do(func() {
|
closeOnce.Do(func() {
|
||||||
close(mainStopCh)
|
close(mainStopCh)
|
||||||
})
|
})
|
||||||
case syscall.SIGUSR1:
|
case syscall.SIGQUIT, syscall.SIGUSR1:
|
||||||
dumpStack()
|
dumpStack()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
4
main.go
4
main.go
@ -15,8 +15,10 @@ import (
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
gocq.InitBase()
|
gocq.InitBase()
|
||||||
|
gocq.PrepareData()
|
||||||
|
gocq.LoginInteract()
|
||||||
_ = terminal.DisableQuickEdit()
|
_ = terminal.DisableQuickEdit()
|
||||||
_ = terminal.EnableVT100()
|
_ = terminal.EnableVT100()
|
||||||
gocq.Main()
|
gocq.WaitSignal()
|
||||||
_ = terminal.RestoreInputMode()
|
_ = terminal.RestoreInputMode()
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user