diff --git a/src/contexts/ctx/ctx_type.go b/src/contexts/ctx/ctx_type.go index 923840b2..2aca8c2a 100644 --- a/src/contexts/ctx/ctx_type.go +++ b/src/contexts/ctx/ctx_type.go @@ -295,6 +295,7 @@ type Message struct { } func (m *Message) Spawn(arg ...interface{}) *Message { + temp := false c := m.target if len(arg) > 0 { switch v := arg[0].(type) { @@ -302,6 +303,8 @@ func (m *Message) Spawn(arg ...interface{}) *Message { c = v case *Message: c = v.target + case string: + temp = kit.Right(v) } } @@ -314,6 +317,10 @@ func (m *Message) Spawn(arg ...interface{}) *Message { root: m.root, } + if temp { + return msg + } + m.messages = append(m.messages, msg) return msg } diff --git a/src/contexts/web/web.go b/src/contexts/web/web.go index b5244c3b..6260f4ec 100644 --- a/src/contexts/web/web.go +++ b/src/contexts/web/web.go @@ -133,7 +133,8 @@ func (web *WEB) Login(msg *ctx.Message, w http.ResponseWriter, r *http.Request) } func (web *WEB) HandleCmd(m *ctx.Message, key string, cmd *ctx.Command) { web.HandleFunc(key, func(w http.ResponseWriter, r *http.Request) { - m.TryCatch(m.Spawn(), true, func(msg *ctx.Message) { + + m.TryCatch(m.Spawn(m.Conf("serve", "autofree")), true, func(msg *ctx.Message) { msg.Option("remote_addr", r.RemoteAddr) msg.Option("remote_ip", r.Header.Get("remote_ip")) msg.Option("index_url", r.Header.Get("index_url")) @@ -375,6 +376,7 @@ var Index = &ctx.Context{Name: "web", Help: "应用中心", }, }, Help: "爬虫配置"}, "serve": &ctx.Config{Name: "serve", Value: map[string]interface{}{ + "autofree": false, "logheaders": false, "form_size": "102400", "directory": "usr",