1
0
mirror of https://shylinux.com/x/icebergs synced 2025-04-26 09:34:05 +08:00

opt m.FormatMeta

This commit is contained in:
IT 老营长 @云轩领航-创始人 2023-12-09 08:31:58 +08:00
parent c434e334a9
commit b2e8e5b28f
5 changed files with 42 additions and 28 deletions

View File

@ -71,7 +71,12 @@ func Render(m *ice.Message, cmd string, args ...ice.Any) bool {
default: default:
kit.If(cmd != "" && cmd != ice.RENDER_RAW, func() { m.Echo(kit.Format(cmd, args...)) }) kit.If(cmd != "" && cmd != ice.RENDER_RAW, func() { m.Echo(kit.Format(cmd, args...)) })
RenderType(m.W, nfs.JSON, "") RenderType(m.W, nfs.JSON, "")
m.FormatsMeta(m.W) m.FormatsMeta(m.W, ice.MSG_USERIP, ice.MSG_USERUA, ice.MSG_METHOD,
ice.MSG_USERWEB, ice.MSG_REFERER, ice.MSG_DAEMON, ice.MSG_USERPOD,
ice.MSG_LANGUAGE, ice.MSG_THEME, ice.MSG_BG, ice.MSG_FG,
ice.MSG_RIVER, ice.MSG_STORM, ice.MSG_INDEX, ice.MSG_FIELDS,
ice.MSG_SOURCE, ice.MSG_TARGET,
)
} }
m.Render(ice.RENDER_VOID) m.Render(ice.RENDER_VOID)
return true return true

View File

@ -111,13 +111,13 @@ func _serve_handle(key string, cmd *ice.Command, m *ice.Message, w http.Response
case SHARE: case SHARE:
add(arg[0], arg[1]) add(arg[0], arg[1])
} }
kit.For(u.Query(), func(k string, v []string) { _log(ctx.ARGS, k, v).Optionv(k, v) }) kit.For(u.Query(), func(k string, v []string) { m.Optionv(k, v) })
} }
kit.For(kit.ParseQuery(r.URL.RawQuery), func(k string, v []string) { m.Optionv(k, v) }) kit.For(kit.ParseQuery(r.URL.RawQuery), func(k string, v []string) { m.Optionv(k, v) })
if r.Method == http.MethodGet && m.Option(ice.MSG_CMDS) != "" { if r.Method == http.MethodGet && m.Option(ice.MSG_CMDS) != "" {
_log(ctx.ARGS, ice.MSG_CMDS, m.Optionv(ice.MSG_CMDS)) _log(ctx.ARGS, ice.MSG_CMDS, m.Optionv(ice.MSG_CMDS))
} }
switch r.Header.Get(ContentType) { switch kit.Select("", kit.Split(r.Header.Get(ContentType)), 0) {
case ApplicationJSON: case ApplicationJSON:
kit.For(kit.UnMarshal(r.Body), func(k string, v ice.Any) { m.Optionv(k, v) }) kit.For(kit.UnMarshal(r.Body), func(k string, v ice.Any) { m.Optionv(k, v) })
default: default:
@ -125,8 +125,8 @@ func _serve_handle(key string, cmd *ice.Command, m *ice.Message, w http.Response
kit.For(r.PostForm, func(k string, v []string) { _log(FORM, k, kit.Join(v, lex.SP)).Optionv(k, v) }) kit.For(r.PostForm, func(k string, v []string) { _log(FORM, k, kit.Join(v, lex.SP)).Optionv(k, v) })
} }
kit.For(r.Cookies(), func(k, v string) { m.Optionv(k, v) }) kit.For(r.Cookies(), func(k, v string) { m.Optionv(k, v) })
m.Options(ice.MSG_REFERER, r.Header.Get(Referer))
m.Options(ice.MSG_METHOD, r.Method, ice.MSG_COUNT, "0") m.Options(ice.MSG_METHOD, r.Method, ice.MSG_COUNT, "0")
m.Options(ice.MSG_REFERER, r.Header.Get(Referer))
m.Options(ice.MSG_USERWEB, _serve_domain(m), ice.MSG_USERPOD, m.Option(ice.POD)) m.Options(ice.MSG_USERWEB, _serve_domain(m), ice.MSG_USERPOD, m.Option(ice.POD))
m.Options(ice.MSG_USERUA, r.Header.Get(UserAgent), ice.MSG_USERIP, r.Header.Get(ice.MSG_USERIP)) m.Options(ice.MSG_USERUA, r.Header.Get(UserAgent), ice.MSG_USERIP, r.Header.Get(ice.MSG_USERIP))
m.Options(ice.MSG_SESSID, kit.Select(m.Option(ice.MSG_SESSID), m.Option(CookieName(m.Option(ice.MSG_USERWEB))))) m.Options(ice.MSG_SESSID, kit.Select(m.Option(ice.MSG_SESSID), m.Option(CookieName(m.Option(ice.MSG_USERWEB)))))
@ -139,6 +139,7 @@ func _serve_handle(key string, cmd *ice.Command, m *ice.Message, w http.Response
defer func() { defer func() {
kit.If(m.Option(ice.MSG_STATUS) == "", func() { m.StatusTimeCount() }) kit.If(m.Option(ice.MSG_STATUS) == "", func() { m.StatusTimeCount() })
m.Cost(kit.Format("%s: %s %v", r.Method, r.URL.String(), m.FormatSize())) m.Cost(kit.Format("%s: %s %v", r.Method, r.URL.String(), m.FormatSize()))
m.Options(ice.MSG_COST, m.FormatCost(), ice.MSG_OPTION, kit.Simple(m.Optionv(ice.MSG_OPTION), ice.MSG_COST))
}() }()
m.Option(ice.MSG_OPTS, kit.Simple(m.Optionv(ice.MSG_OPTION), func(k string) bool { return !strings.HasPrefix(k, ice.MSG_SESSID) })) m.Option(ice.MSG_OPTS, kit.Simple(m.Optionv(ice.MSG_OPTION), func(k string) bool { return !strings.HasPrefix(k, ice.MSG_SESSID) }))
if m.Detailv(m.PrefixKey(), cmds); len(cmds) > 1 && cmds[0] == ctx.ACTION && cmds[1] != ctx.ACTION { if m.Detailv(m.PrefixKey(), cmds); len(cmds) > 1 && cmds[0] == ctx.ACTION && cmds[1] != ctx.ACTION {

11
conf.go
View File

@ -186,10 +186,10 @@ const ( // DIR
) )
const ( // MSG const ( // MSG
MSG_CMDS = "cmds" MSG_CMDS = "cmds"
MSG_DEBUG = "debug"
MSG_FIELDS = "fields" MSG_FIELDS = "fields"
MSG_SESSID = "sessid"
MSG_METHOD = "method" MSG_METHOD = "method"
MSG_SESSID = "sessid"
MSG_DEBUG = "debug"
MSG_DETAIL = "detail" MSG_DETAIL = "detail"
MSG_OPTION = "option" MSG_OPTION = "option"
@ -228,6 +228,7 @@ const ( // MSG
MSG_BG = "sess.bg" MSG_BG = "sess.bg"
MSG_FG = "sess.fg" MSG_FG = "sess.fg"
MSG_COST = "sess.cost"
MSG_MODE = "sess.mode" MSG_MODE = "sess.mode"
MSG_THEME = "sess.theme" MSG_THEME = "sess.theme"
MSG_TITLE = "sess.title" MSG_TITLE = "sess.title"
@ -237,12 +238,14 @@ const ( // MSG
MSG_DAEMON = "sess.daemon" MSG_DAEMON = "sess.daemon"
MSG_REFERER = "sess.referer" MSG_REFERER = "sess.referer"
MSG_FILES = "file.system" MSG_FILES = "file.system"
LOG_DISABLE = "log.disable" MSG_CHECKER = "aaa.checker"
LOG_TRACEID = "log.id"
YAC_MESSAGE = "yac.message" YAC_MESSAGE = "yac.message"
YAC_STACK = "yac.stack" YAC_STACK = "yac.stack"
SSH_ALIAS = "ssh.alias" SSH_ALIAS = "ssh.alias"
SSH_TARGET = "ssh.target" SSH_TARGET = "ssh.target"
LOG_DISABLE = "log.disable"
LOG_TRACEID = "log.id"
TOAST_DURATION = "toast.duration" TOAST_DURATION = "toast.duration"
) )
const ( // RENDER const ( // RENDER

View File

@ -73,6 +73,7 @@ func (m *Message) setDetail(key string, arg ...string) *Message {
return m return m
} }
func (m *Message) Optionv(key string, arg ...Any) Any { func (m *Message) Optionv(key string, arg ...Any) Any {
key = kit.Select(MSG_OPTION, key)
var unlock func() var unlock func()
if len(arg) > 0 { if len(arg) > 0 {
unlock = m.lock.Lock() unlock = m.lock.Lock()

14
logs.go
View File

@ -178,7 +178,9 @@ func (m *Message) FormatShip(traceid ...string) string {
return kit.Format("%s%02d %4s->%-4s", _traceid, m.code, m.source.Name, m.target.Name) return kit.Format("%s%02d %4s->%-4s", _traceid, m.code, m.source.Name, m.target.Name)
} }
func (m *Message) FormatSize() string { func (m *Message) FormatSize() string {
return kit.Format("%dx%d %v %v", m.Length(), len(m.value(MSG_APPEND)), kit.Simple(m.value(MSG_APPEND)), kit.FmtSize(len(m.Result()))) n := len(m.value(MSG_APPEND))
kit.If(m.FieldsIsDetail(), func() { n = len(m.value(KEY)) })
return kit.Format("%dx%d %v %v", m.Length(), n, kit.Simple(m.value(MSG_APPEND)), kit.FmtSize(len(m.Result())))
} }
func (m *Message) FormatCost() string { return kit.FmtDuration(time.Since(m.time)) } func (m *Message) FormatCost() string { return kit.FmtDuration(time.Since(m.time)) }
func (m *Message) FormatMeta() string { func (m *Message) FormatMeta() string {
@ -195,17 +197,19 @@ func (m *Message) FormatsMeta(w io.Writer, arg ...string) (res string) {
ls := m.value(k) ls := m.value(k)
kit.If(len(ls) == 0 || len(ls) == 1 && ls[0] == "", func() { m.index(MSG_OPTION, i, "") }) kit.If(len(ls) == 0 || len(ls) == 1 && ls[0] == "", func() { m.index(MSG_OPTION, i, "") })
}) })
m.value(MSG_OPTION, kit.Filters(m.value(MSG_OPTION), MSG_CMDS, MSG_FIELDS, MSG_SESSID, MSG_OPTS, MSG_INDEX, "", "aaa.checker")...) kit.For(m.Optionv(""), func(key string) { kit.If(strings.HasPrefix(key, "sessid_"), func() { arg = append(arg, key) }) })
kit.If(len(arg) == 0 && m.Option(DEBUG) == TRUE, func() { arg = []string{SP, SP, NL} }) m.value(MSG_OPTION, kit.Filters(m.value(MSG_OPTION), kit.Simple(MSG_CMDS, MSG_SESSID, MSG_OPTS, "", MSG_COUNT, MSG_CHECKER, arg)...)...)
bio, count, NL := bufio.NewWriter(w), 0, kit.Select("", arg, 2) bio, count := bufio.NewWriter(w), 0
defer bio.Flush() defer bio.Flush()
SP, NL := SP, NL
kit.If(m.Option(MSG_DEBUG) != TRUE, func() { SP, NL = "", "" })
echo := func(arg ...Any) { fmt.Fprint(bio, arg...) } echo := func(arg ...Any) { fmt.Fprint(bio, arg...) }
push := func(k string) { push := func(k string) {
if len(m.value(k)) == 0 { if len(m.value(k)) == 0 {
return return
} }
kit.If(count > 0, func() { echo(FS, NL) }) kit.If(count > 0, func() { echo(FS, NL) })
echo(kit.Format("%s%q:%s", kit.Select("", arg, 0), k, kit.Select("", arg, 1))) echo(kit.Format("%s%q:%s", SP, k, SP))
b, _ := json.Marshal(m.value(k)) b, _ := json.Marshal(m.value(k))
bio.Write(b) bio.Write(b)
count++ count++