forked from ProjectWIND/ProjectWIND
74 lines
2.0 KiB
Go
74 lines
2.0 KiB
Go
package wba
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
type WindStandardTools interface {
|
|
// MsgUnmarshal 解析消息JSON字符串为 MessageEventInfo 结构体。
|
|
//
|
|
// 参数:
|
|
//
|
|
// - message: 要解析的消息字符串。
|
|
//
|
|
// 返回值:
|
|
//
|
|
// - msg: 解析后的消息结构体。
|
|
MsgUnmarshal(message string) (msg MessageEventInfo)
|
|
// LogWith 使用指定日志级别记录日志,支持可变参数占位符。
|
|
// 参数:
|
|
// - level: 日志级别: "trace", "debug", "info", "notice", "warn", "error"。
|
|
// - log: 日志内容。
|
|
// - args: 可变参数,用于格式化日志内容。
|
|
LogWith(level string, log string, args ...interface{})
|
|
|
|
// Log 记录日志,级别为 "info",支持可变参数占位符。
|
|
// 参数:
|
|
// - log: 日志内容。
|
|
// - args: 可变参数,用于格式化日志内容。
|
|
Log(log string, args ...interface{})
|
|
}
|
|
|
|
func (v VersionInfo) String() string {
|
|
return fmt.Sprintf("%d.%d.%d", v.BigVersion, v.SmallVersion, v.FixVersion)
|
|
}
|
|
|
|
func VersionLabelAnalysis(versionLabel VersionLabel) VersionInfo {
|
|
version := strings.Split(versionLabel, ".")
|
|
bigVersion, err := strconv.ParseUint(version[0], 10, 8)
|
|
if err != nil {
|
|
return VersionInfo{}
|
|
}
|
|
smallVersion, err := strconv.ParseUint(version[1], 10, 8)
|
|
if err != nil {
|
|
return VersionInfo{}
|
|
}
|
|
fixVersion, err := strconv.ParseUint(version[2], 10, 8)
|
|
if err != nil {
|
|
return VersionInfo{}
|
|
}
|
|
return VersionInfo{
|
|
BigVersion: uint8(bigVersion),
|
|
SmallVersion: uint8(smallVersion),
|
|
FixVersion: uint8(fixVersion),
|
|
}
|
|
}
|
|
|
|
func SessionLabelAnalysis(sessionLabel SessionLabel) SessionInfo {
|
|
platform := strings.Split(sessionLabel, ":")[0]
|
|
sessionTypeAndId := strings.Split(sessionLabel, ":")[1]
|
|
sessionType := strings.Split(sessionTypeAndId, "-")[0]
|
|
sessionId := strings.Split(sessionTypeAndId, "-")[1]
|
|
Id, err := strconv.ParseInt(sessionId, 10, 64)
|
|
if err != nil {
|
|
return SessionInfo{}
|
|
}
|
|
return SessionInfo{
|
|
Platform: platform,
|
|
SessionType: sessionType,
|
|
SessionId: Id,
|
|
}
|
|
}
|