mirror of
https://github.com/AynaLivePlayer/AynaLivePlayer.git
synced 2026-05-19 09:15:47 +08:00
113 lines
3.0 KiB
Go
113 lines
3.0 KiB
Go
package main
|
|
|
|
import (
|
|
"AynaLivePlayer/core/model"
|
|
"AynaLivePlayer/global"
|
|
"AynaLivePlayer/gui"
|
|
"AynaLivePlayer/internal"
|
|
"AynaLivePlayer/pkg/config"
|
|
"AynaLivePlayer/pkg/event"
|
|
"AynaLivePlayer/pkg/i18n"
|
|
"AynaLivePlayer/pkg/logger"
|
|
loggerRepo "AynaLivePlayer/pkg/logger/repository"
|
|
"flag"
|
|
)
|
|
|
|
var dev = flag.Bool("dev", false, "dev")
|
|
|
|
type _LogConfig struct {
|
|
config.BaseConfig
|
|
Path string
|
|
Level logger.LogLevel
|
|
RedirectStderr bool
|
|
MaxSize int64
|
|
}
|
|
|
|
func (c *_LogConfig) Name() string {
|
|
return "Log"
|
|
}
|
|
|
|
var Log = &_LogConfig{
|
|
Path: "./log.txt",
|
|
Level: logger.LogLevelInfo,
|
|
RedirectStderr: false, // this should be true if it is in production mode.
|
|
MaxSize: 5,
|
|
}
|
|
|
|
//func createController(log adapter.ILogger) adapter.IControlBridge {
|
|
// logbridge := log.WithModule("ControlBridge")
|
|
// em := event.MainManager.NewChildManager()
|
|
// liveroom := internal.NewLiveRoomController(
|
|
// logbridge)
|
|
// lyric := internal.NewLyricLoader()
|
|
// provider := internal.NewProviderController(logbridge)
|
|
// playlist := internal.NewPlaylistController(em, logbridge, provider)
|
|
// plugin := internal.NewPluginController(logbridge)
|
|
// mpvPlayer := player.NewMpvPlayer(em, logbridge)
|
|
// playControl := internal.NewPlayerController(mpvPlayer, playlist, lyric, provider, logbridge)
|
|
// ctr := internal.NewController(
|
|
// liveroom, playControl, playlist, provider, plugin,
|
|
// logbridge,
|
|
// )
|
|
// return ctr
|
|
//}
|
|
|
|
func setupGlobal() {
|
|
global.EventManager = event.NewManger(128, 16)
|
|
global.Logger = loggerRepo.NewZapColoredLogger()
|
|
global.Logger.SetLogLevel(Log.Level)
|
|
}
|
|
|
|
func main() {
|
|
flag.Parse()
|
|
config.LoadFromFile(config.ConfigPath)
|
|
config.LoadConfig(Log)
|
|
i18n.LoadLanguage(config.General.Language)
|
|
setupGlobal()
|
|
global.Logger.Info("================Program Start================")
|
|
global.Logger.Infof("================Current Version: %s================", model.Version(config.Version))
|
|
//mainController := createController(log)
|
|
internal.Initialize()
|
|
gui.Initialize()
|
|
global.EventManager.Start()
|
|
//plugins := []adapter.Plugin{diange.NewDiange(mainController), qiege.NewQiege(mainController),
|
|
// textinfo.NewTextInfo(mainController), webinfo.NewWebInfo(mainController),
|
|
// wylogin.NewWYLogin(mainController)}
|
|
//mainController.LoadPlugins(plugins...)
|
|
gui.MainWindow.ShowAndRun()
|
|
internal.Stop()
|
|
global.EventManager.Stop()
|
|
if *dev {
|
|
i18n.SaveTranslation()
|
|
}
|
|
_ = config.SaveToConfigFile(config.ConfigPath)
|
|
global.Logger.Info("================Program End================")
|
|
}
|
|
|
|
////go:embed all:../webgui/frontend/dist
|
|
//var assets embed.FS
|
|
//
|
|
//func main() {
|
|
// // Create an instance of the app structure
|
|
// app := webgui.NewApp()
|
|
//
|
|
// // Create application with options
|
|
// err := wails.Run(&options.App{
|
|
// Title: "AynaLivePlayer",
|
|
// Width: 1024,
|
|
// Height: 768,
|
|
// AssetServer: &assetserver.Options{
|
|
// Assets: assets,
|
|
// },
|
|
// BackgroundColour: &options.RGBA{R: 27, G: 38, B: 54, A: 1},
|
|
// OnStartup: app.Startup,
|
|
// Bind: []interface{}{
|
|
// app,
|
|
// },
|
|
// })
|
|
//
|
|
// if err != nil {
|
|
// println("Error:", err.Error())
|
|
// }
|
|
//}
|