mirror of
https://github.com/cnsilvan/UnblockNeteaseMusic.git
synced 2025-01-07 03:27:15 +08:00
88 lines
2.6 KiB
Go
88 lines
2.6 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"os/signal"
|
|
"runtime/debug"
|
|
"syscall"
|
|
|
|
"github.com/cnsilvan/UnblockNeteaseMusic/config"
|
|
"github.com/cnsilvan/UnblockNeteaseMusic/provider"
|
|
"github.com/cnsilvan/UnblockNeteaseMusic/version"
|
|
|
|
//_ "github.com/mkevac/debugcharts" // 可选,添加后可以查看几个实时图表数据
|
|
//_ "net/http/pprof" // 必须,引入 pprof 模块
|
|
|
|
"github.com/cnsilvan/UnblockNeteaseMusic/host"
|
|
"github.com/cnsilvan/UnblockNeteaseMusic/proxy"
|
|
)
|
|
|
|
func main() {
|
|
//log.Println("--------------------Version--------------------")
|
|
//fmt.Println(version.AppVersion())
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
log.Println("Recover panic : "+"\n"+string(debug.Stack()), r)
|
|
restoreHosts()
|
|
}
|
|
}()
|
|
if config.ValidParams() {
|
|
log.Println(version.AppVersion())
|
|
log.Println("--------------------Config--------------------")
|
|
log.Println("port=", *config.Port)
|
|
log.Println("tlsPort=", *config.TLSPort)
|
|
log.Println("source=", *config.Source)
|
|
log.Println("certFile=", *config.CertFile)
|
|
log.Println("keyFile=", *config.KeyFile)
|
|
log.Println("logFile=", *config.LogFile)
|
|
log.Println("mode=", *config.Mode)
|
|
log.Println("endPoint=", *config.EndPoint)
|
|
log.Println("forceBestQuality=", *config.ForceBestQuality)
|
|
log.Println("searchLimit=", *config.SearchLimit)
|
|
log.Println("blockUpdate=", *config.BlockUpdate)
|
|
log.Println("BlockAds=", *config.BlockAds)
|
|
log.Println("EnableLocalVip=", *config.EnableLocalVip)
|
|
log.Println("UnlockSoundEffects=", *config.UnlockSoundEffects)
|
|
log.Println("QQCookieFile=", *config.QQCookieFile)
|
|
log.Println("LogWebTraffic=", *config.LogWebTraffic)
|
|
if host.InitHosts() == nil {
|
|
//go func() {
|
|
// // // terminal: $ go tool pprof -http=:8081 http://localhost:6060/debug/pprof/heap
|
|
// // // web:
|
|
// // // 1、http://localhost:8081/ui
|
|
// // // 2、http://localhost:6060/debug/charts
|
|
// // // 3、http://localhost:6060/debug/pprof
|
|
// // log.Println("start 6060...")
|
|
// log.Println(http.ListenAndServe("0.0.0.0:6060", nil))
|
|
//}()
|
|
|
|
signalChan := make(chan os.Signal, 1)
|
|
exit := make(chan bool, 1)
|
|
go func() {
|
|
sig := <-signalChan
|
|
log.Println("\nreceive signal:", sig)
|
|
restoreHosts()
|
|
exit <- true
|
|
}()
|
|
signal.Notify(signalChan, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT, syscall.SIGSEGV, syscall.SIGKILL)
|
|
proxy.InitProxy()
|
|
provider.Init()
|
|
<-exit
|
|
log.Println("exiting UnblockNeteaseMusic")
|
|
}
|
|
} else {
|
|
fmt.Println(version.AppVersion())
|
|
}
|
|
}
|
|
func restoreHosts() {
|
|
if *config.Mode == 1 {
|
|
log.Println("restoreHosts...")
|
|
err := host.RestoreHosts()
|
|
if err != nil {
|
|
log.Println("restoreHosts error:", err)
|
|
}
|
|
}
|
|
}
|