mirror of
https://shylinux.com/x/icebergs
synced 2025-04-26 09:34:05 +08:00
opt some
This commit is contained in:
parent
11c02de670
commit
fd4486d3db
@ -11,8 +11,6 @@ import (
|
|||||||
"path"
|
"path"
|
||||||
)
|
)
|
||||||
|
|
||||||
var CACHE = ice.Name("cache", Index)
|
|
||||||
|
|
||||||
func _cache_list(m *ice.Message, key string) {
|
func _cache_list(m *ice.Message, key string) {
|
||||||
if key == "" {
|
if key == "" {
|
||||||
m.Grows(CACHE, nil, "", "", func(index int, value map[string]interface{}) {
|
m.Grows(CACHE, nil, "", "", func(index int, value map[string]interface{}) {
|
||||||
@ -168,6 +166,9 @@ func CacheCatch(m *ice.Message, kind, name string) *ice.Message {
|
|||||||
_cache_save(m, arg[0], arg[1], arg[2], arg[3], arg[4:]...)
|
_cache_save(m, arg[0], arg[1], arg[2], arg[3], arg[4:]...)
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const CACHE = "cache"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.Merge(&ice.Context{
|
Index.Merge(&ice.Context{
|
||||||
Configs: map[string]*ice.Config{
|
Configs: map[string]*ice.Config{
|
||||||
@ -180,6 +181,10 @@ func init() {
|
|||||||
kit.MDB_CREATE: {Name: "create type name text arg...", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
kit.MDB_CREATE: {Name: "create type name text arg...", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_cache_save(m, "add", arg[0], arg[1], arg[2], arg[3:]...)
|
_cache_save(m, "add", arg[0], arg[1], arg[2], arg[3:]...)
|
||||||
}},
|
}},
|
||||||
|
kit.MDB_INSERT: {Name: "insert type name", Help: "插入", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
arg = _cache_catch(m, arg[0], arg[1])
|
||||||
|
_cache_save(m, arg[0], arg[1], arg[2], arg[3], arg[4:]...)
|
||||||
|
}},
|
||||||
kit.MDB_SHOW: {Name: "show type name text arg...", Help: "运行", Hand: func(m *ice.Message, arg ...string) {
|
kit.MDB_SHOW: {Name: "show type name text arg...", Help: "运行", Hand: func(m *ice.Message, arg ...string) {
|
||||||
if len(arg) > 2 {
|
if len(arg) > 2 {
|
||||||
_cache_show(m, arg[0], arg[1], arg[2], arg[3:]...)
|
_cache_show(m, arg[0], arg[1], arg[2], arg[3:]...)
|
||||||
@ -187,10 +192,6 @@ func init() {
|
|||||||
_cache_show(m, "", "", "")
|
_cache_show(m, "", "", "")
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
kit.MDB_INSERT: {Name: "insert type name", Help: "插入", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
arg = _cache_catch(m, arg[0], arg[1])
|
|
||||||
_cache_save(m, arg[0], arg[1], arg[2], arg[3], arg[4:]...)
|
|
||||||
}},
|
|
||||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
if len(arg) == 0 {
|
if len(arg) == 0 {
|
||||||
_cache_list(m, "")
|
_cache_list(m, "")
|
||||||
|
@ -2,15 +2,59 @@ package web
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
ice "github.com/shylinux/icebergs"
|
ice "github.com/shylinux/icebergs"
|
||||||
|
cli "github.com/shylinux/icebergs/base/cli"
|
||||||
kit "github.com/shylinux/toolkits"
|
kit "github.com/shylinux/toolkits"
|
||||||
|
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func _dream_list(m *ice.Message) {
|
||||||
|
// 任务列表
|
||||||
|
m.Cmdy("nfs.dir", m.Conf(DREAM, "meta.path"), "time name").Table(func(index int, value map[string]string, head []string) {
|
||||||
|
if m.Richs(SPACE, nil, value[kit.MDB_NAME], func(key string, value map[string]interface{}) {
|
||||||
|
m.Push(kit.MDB_TYPE, value[kit.MDB_TYPE])
|
||||||
|
m.Push(kit.MDB_STATUS, "start")
|
||||||
|
}) == nil {
|
||||||
|
m.Push(kit.MDB_TYPE, "none")
|
||||||
|
m.Push(kit.MDB_STATUS, "stop")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
m.Sort(kit.MDB_NAME)
|
||||||
|
}
|
||||||
|
func _dream_show(m *ice.Message, name string) {
|
||||||
|
// 规范命名
|
||||||
|
if !strings.Contains(name, "-") || !strings.HasPrefix(name, "20") {
|
||||||
|
name = m.Time("20060102-") + name
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建目录
|
||||||
|
p := path.Join(m.Conf(DREAM, "meta.path"), name)
|
||||||
|
os.MkdirAll(p, 0777)
|
||||||
|
|
||||||
|
if b, e := ioutil.ReadFile(path.Join(p, m.Conf(ice.GDB_SIGNAL, "meta.pid"))); e == nil {
|
||||||
|
if s, e := os.Stat("/proc/" + string(b)); e == nil && s.IsDir() {
|
||||||
|
m.Info("already exists %v", string(b))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Richs(SPACE, nil, name, nil) == nil {
|
||||||
|
// 启动任务
|
||||||
|
m.Option(cli.CMD_TYPE, "daemon")
|
||||||
|
m.Option(cli.CMD_DIR, p)
|
||||||
|
m.Optionv(cli.CMD_ENV,
|
||||||
|
"ctx_dev", m.Conf(cli.RUNTIME, "conf.ctx_dev"),
|
||||||
|
"ctx_log", "boot.log", "ctx_mod", "ctx,log,gdb,ssh",
|
||||||
|
"PATH", kit.Path(path.Join(p, "bin"))+":"+os.Getenv("PATH"),
|
||||||
|
)
|
||||||
|
m.Cmd(m.Confv(DREAM, "meta.cmd"), "self", name)
|
||||||
|
}
|
||||||
|
m.Cmdy("nfs.dir", p)
|
||||||
|
}
|
||||||
|
|
||||||
const DREAM = "dream"
|
const DREAM = "dream"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -22,67 +66,19 @@ func init() {
|
|||||||
)},
|
)},
|
||||||
},
|
},
|
||||||
Commands: map[string]*ice.Command{
|
Commands: map[string]*ice.Command{
|
||||||
ice.WEB_DREAM: {Name: "dream name auto", Help: "梦想家", Meta: kit.Dict(
|
ice.WEB_DREAM: {Name: "dream [name] auto", Help: "梦想家", Meta: kit.Dict("detail", []interface{}{"启动", "停止"}), Action: map[string]*ice.Action{
|
||||||
"exports", []string{"you", "name"}, "detail", []interface{}{"启动", "停止"},
|
"start": {Name: "start", Help: "启动", Hand: func(m *ice.Message, arg ...string) {
|
||||||
), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
_dream_show(m, m.Option(kit.MDB_NAME))
|
||||||
if len(arg) > 1 && arg[0] == "action" {
|
}},
|
||||||
switch arg[1] {
|
"stop": {Name: "stop", Help: "停止", Hand: func(m *ice.Message, arg ...string) {
|
||||||
case "启动", "start":
|
m.Cmd(SPACE, m.Option("name"), "exit", "1")
|
||||||
arg = []string{arg[4]}
|
}},
|
||||||
case "停止", "stop":
|
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.Cmd(ice.WEB_SPACE, kit.Select(m.Option("name"), arg, 4), "exit", "1")
|
|
||||||
m.Event(ice.DREAM_CLOSE, arg[4])
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(arg) == 0 {
|
if len(arg) == 0 {
|
||||||
// 任务列表
|
_dream_list(m)
|
||||||
m.Cmdy("nfs.dir", m.Conf(ice.WEB_DREAM, "meta.path"), "time name")
|
|
||||||
m.Table(func(index int, value map[string]string, head []string) {
|
|
||||||
if m.Richs(ice.WEB_SPACE, nil, value["name"], func(key string, value map[string]interface{}) {
|
|
||||||
m.Push("type", value["type"])
|
|
||||||
m.Push("status", "start")
|
|
||||||
}) == nil {
|
|
||||||
m.Push("type", "none")
|
|
||||||
m.Push("status", "stop")
|
|
||||||
}
|
|
||||||
})
|
|
||||||
m.Sort("name")
|
|
||||||
m.Sort("status")
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
_dream_show(m, arg[0])
|
||||||
// 规范命名
|
|
||||||
if !strings.Contains(arg[0], "-") || !strings.HasPrefix(arg[0], "20") {
|
|
||||||
arg[0] = m.Time("20060102-") + arg[0]
|
|
||||||
}
|
|
||||||
|
|
||||||
// 创建目录
|
|
||||||
p := path.Join(m.Conf(ice.WEB_DREAM, "meta.path"), arg[0])
|
|
||||||
os.MkdirAll(p, 0777)
|
|
||||||
|
|
||||||
if b, e := ioutil.ReadFile(path.Join(p, m.Conf(ice.GDB_SIGNAL, "meta.pid"))); e == nil {
|
|
||||||
if s, e := os.Stat("/proc/" + string(b)); e == nil && s.IsDir() {
|
|
||||||
m.Info("already exists %v", string(b))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if m.Richs(ice.WEB_SPACE, nil, arg[0], nil) == nil {
|
|
||||||
// 启动任务
|
|
||||||
m.Option("cmd_dir", p)
|
|
||||||
m.Option("cmd_type", "daemon")
|
|
||||||
m.Optionv("cmd_env",
|
|
||||||
"ctx_dev", m.Conf(ice.CLI_RUNTIME, "conf.ctx_dev"),
|
|
||||||
"ctx_log", "boot.log", "ctx_mod", "ctx,log,gdb,ssh",
|
|
||||||
"PATH", kit.Path(path.Join(p, "bin"))+":"+os.Getenv("PATH"),
|
|
||||||
)
|
|
||||||
m.Cmd(m.Confv(ice.WEB_DREAM, "meta.cmd"), "self", arg[0])
|
|
||||||
time.Sleep(time.Second * 1)
|
|
||||||
m.Event(ice.DREAM_START, arg...)
|
|
||||||
}
|
|
||||||
m.Cmdy("nfs.dir", p)
|
|
||||||
}},
|
}},
|
||||||
},
|
},
|
||||||
}, nil)
|
}, nil)
|
||||||
|
@ -243,10 +243,10 @@ func FavorShow(m *ice.Message, kind string, name, text interface{}, arg ...strin
|
|||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
EXPORT = "usr/export/web.favor/favor.csv"
|
_EXPORT = "usr/export/web.favor/favor.csv"
|
||||||
)
|
)
|
||||||
|
|
||||||
var FAVOR = ice.Name("favor", Index)
|
const FAVOR = "favor"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.Merge(&ice.Context{
|
Index.Merge(&ice.Context{
|
||||||
@ -260,10 +260,10 @@ func init() {
|
|||||||
"detail", []string{"编辑", "收藏", "收录", "导出", "删除"},
|
"detail", []string{"编辑", "收藏", "收录", "导出", "删除"},
|
||||||
), Action: map[string]*ice.Action{
|
), Action: map[string]*ice.Action{
|
||||||
kit.MDB_EXPORT: {Name: "export file", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
kit.MDB_EXPORT: {Name: "export file", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_favor_export(m, kit.Select(EXPORT, arg, 0))
|
_favor_export(m, kit.Select(_EXPORT, arg, 0))
|
||||||
}},
|
}},
|
||||||
kit.MDB_IMPORT: {Name: "import file", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
kit.MDB_IMPORT: {Name: "import file", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_favor_import(m, kit.Select(EXPORT, arg, 0))
|
_favor_import(m, kit.Select(_EXPORT, arg, 0))
|
||||||
}},
|
}},
|
||||||
kit.MDB_CREATE: {Name: "create zone", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
kit.MDB_CREATE: {Name: "create zone", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_favor_create(m, arg[0])
|
_favor_create(m, arg[0])
|
||||||
|
@ -14,7 +14,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Login(msg *ice.Message, w http.ResponseWriter, r *http.Request) bool {
|
func _serve_login(msg *ice.Message, w http.ResponseWriter, r *http.Request) bool {
|
||||||
msg.Option(ice.MSG_USERNAME, "")
|
msg.Option(ice.MSG_USERNAME, "")
|
||||||
msg.Option(ice.MSG_USERROLE, "")
|
msg.Option(ice.MSG_USERROLE, "")
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ func Login(msg *ice.Message, w http.ResponseWriter, r *http.Request) bool {
|
|||||||
|
|
||||||
return msg.Option(ice.MSG_USERURL) != ""
|
return msg.Option(ice.MSG_USERURL) != ""
|
||||||
}
|
}
|
||||||
func HandleCmd(key string, cmd *ice.Command, msg *ice.Message, w http.ResponseWriter, r *http.Request) {
|
func _serve_handle(key string, cmd *ice.Command, msg *ice.Message, w http.ResponseWriter, r *http.Request) {
|
||||||
defer func() { msg.Cost("%s %v %v", r.URL.Path, msg.Optionv("cmds"), msg.Format("append")) }()
|
defer func() { msg.Cost("%s %v %v", r.URL.Path, msg.Optionv("cmds"), msg.Format("append")) }()
|
||||||
if u, e := url.Parse(r.Header.Get("Referer")); e == nil {
|
if u, e := url.Parse(r.Header.Get("Referer")); e == nil {
|
||||||
for k, v := range u.Query() {
|
for k, v := range u.Query() {
|
||||||
@ -122,7 +122,7 @@ func HandleCmd(key string, cmd *ice.Command, msg *ice.Message, w http.ResponseWr
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 执行命令
|
// 执行命令
|
||||||
if cmds := kit.Simple(msg.Optionv("cmds")); Login(msg, w, r) {
|
if cmds := kit.Simple(msg.Optionv("cmds")); _serve_login(msg, w, r) {
|
||||||
msg.Option("_option", msg.Optionv(ice.MSG_OPTION))
|
msg.Option("_option", msg.Optionv(ice.MSG_OPTION))
|
||||||
msg.Target().Run(msg, cmd, msg.Option(ice.MSG_USERURL), cmds...)
|
msg.Target().Run(msg, cmd, msg.Option(ice.MSG_USERURL), cmds...)
|
||||||
}
|
}
|
||||||
@ -131,9 +131,7 @@ func HandleCmd(key string, cmd *ice.Command, msg *ice.Message, w http.ResponseWr
|
|||||||
_args, _ := msg.Optionv(ice.MSG_ARGS).([]interface{})
|
_args, _ := msg.Optionv(ice.MSG_ARGS).([]interface{})
|
||||||
Render(msg, msg.Option(ice.MSG_OUTPUT), _args...)
|
Render(msg, msg.Option(ice.MSG_OUTPUT), _args...)
|
||||||
}
|
}
|
||||||
func (web *Frame) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
func _serve_main(m *ice.Message, w http.ResponseWriter, r *http.Request) bool {
|
||||||
m := web.m
|
|
||||||
|
|
||||||
if r.Header.Get("index.module") == "" {
|
if r.Header.Get("index.module") == "" {
|
||||||
// 解析地址
|
// 解析地址
|
||||||
if ip := r.Header.Get("X-Forwarded-For"); ip != "" {
|
if ip := r.Header.Get("X-Forwarded-For"); ip != "" {
|
||||||
@ -184,8 +182,9 @@ func (web *Frame) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||||||
} else if r.URL.Path == "/share" && r.Method == "GET" {
|
} else if r.URL.Path == "/share" && r.Method == "GET" {
|
||||||
http.ServeFile(w, r, m.Conf(SERVE, "meta.page.share"))
|
http.ServeFile(w, r, m.Conf(SERVE, "meta.page.share"))
|
||||||
} else {
|
} else {
|
||||||
web.ServeMux.ServeHTTP(w, r)
|
return true
|
||||||
}
|
}
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
const SERVE = "serve"
|
const SERVE = "serve"
|
||||||
@ -229,7 +228,7 @@ func init() {
|
|||||||
if cli.NodeType(m, ice.WEB_SERVER, cli.HostName); len(arg) > 0 && arg[0] == "random" {
|
if cli.NodeType(m, ice.WEB_SERVER, cli.HostName); len(arg) > 0 && arg[0] == "random" {
|
||||||
cli.NodeType(m, ice.WEB_SERVER, cli.PathName)
|
cli.NodeType(m, ice.WEB_SERVER, cli.PathName)
|
||||||
// 随机端口
|
// 随机端口
|
||||||
SpideCreate(m, "self", "http://random")
|
m.Cmd(SPIDE, kit.MDB_CREATE, "self", "http://random")
|
||||||
arg = arg[1:]
|
arg = arg[1:]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ func _space_dial(m *ice.Message, dev, name string, arg ...string) {
|
|||||||
|
|
||||||
host := kit.Format(client["hostname"])
|
host := kit.Format(client["hostname"])
|
||||||
proto := kit.Select("ws", "wss", client["protocol"] == "https")
|
proto := kit.Select("ws", "wss", client["protocol"] == "https")
|
||||||
uri := kit.MergeURL(proto+"://"+host+"/space/", "name", name, "type", m.Conf(cli.RUNTIME, "node.type"))
|
uri := kit.MergeURL(proto+"://"+host+"/space/", "name", name, "type", cli.NodeType)
|
||||||
if u, e := url.Parse(uri); m.Assert(e) {
|
if u, e := url.Parse(uri); m.Assert(e) {
|
||||||
|
|
||||||
task.Put(dev, func(task *task.Task) error {
|
task.Put(dev, func(task *task.Task) error {
|
||||||
@ -62,7 +62,7 @@ func _space_dial(m *ice.Message, dev, name string, arg ...string) {
|
|||||||
m.Log_CREATE("space", dev, "retry", i, "uri", uri)
|
m.Log_CREATE("space", dev, "retry", i, "uri", uri)
|
||||||
|
|
||||||
m = m.Spawns()
|
m = m.Spawns()
|
||||||
if i = 0; HandleWSS(m, true, web.send, s, dev) {
|
if i = 0; _space_handle(m, true, web.send, s, dev) {
|
||||||
// 连接关闭
|
// 连接关闭
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
@ -128,7 +128,7 @@ func _space_exec(msg *ice.Message, source, target []string, c *websocket.Conn, n
|
|||||||
_space_echo(msg, []string{}, kit.Revert(source)[1:], c, name)
|
_space_echo(msg, []string{}, kit.Revert(source)[1:], c, name)
|
||||||
msg.Cost("%v->%v %v %v", source, target, msg.Detailv(), msg.Format("append"))
|
msg.Cost("%v->%v %v %v", source, target, msg.Detailv(), msg.Format("append"))
|
||||||
}
|
}
|
||||||
func HandleWSS(m *ice.Message, safe bool, send map[string]*ice.Message, c *websocket.Conn, name string) bool {
|
func _space_handle(m *ice.Message, safe bool, send map[string]*ice.Message, c *websocket.Conn, name string) bool {
|
||||||
for running := true; running; {
|
for running := true; running; {
|
||||||
if t, b, e := c.ReadMessage(); m.Warn(e != nil, "space recv %d msg %v", t, e) {
|
if t, b, e := c.ReadMessage(); m.Warn(e != nil, "space recv %d msg %v", t, e) {
|
||||||
// 解析失败
|
// 解析失败
|
||||||
@ -226,7 +226,7 @@ func init() {
|
|||||||
task.Put(name, func(task *task.Task) error {
|
task.Put(name, func(task *task.Task) error {
|
||||||
// 监听消息
|
// 监听消息
|
||||||
m.Event(ice.SPACE_START, ice.WEB_WORKER, name)
|
m.Event(ice.SPACE_START, ice.WEB_WORKER, name)
|
||||||
HandleWSS(m, false, m.Target().Server().(*Frame).send, s, name)
|
_space_handle(m, false, m.Target().Server().(*Frame).send, s, name)
|
||||||
m.Log(ice.LOG_CLOSE, "%s: %s", name, kit.Format(m.Confv(SPACE, kit.Keys(kit.MDB_HASH, h))))
|
m.Log(ice.LOG_CLOSE, "%s: %s", name, kit.Format(m.Confv(SPACE, kit.Keys(kit.MDB_HASH, h))))
|
||||||
m.Event(ice.SPACE_CLOSE, ice.WEB_WORKER, name)
|
m.Event(ice.SPACE_CLOSE, ice.WEB_WORKER, name)
|
||||||
m.Confv(SPACE, kit.Keys(kit.MDB_HASH, h), "")
|
m.Confv(SPACE, kit.Keys(kit.MDB_HASH, h), "")
|
||||||
|
@ -81,10 +81,6 @@ func _spide_create(m *ice.Message, name, address string, arg ...string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func SpideCreate(m *ice.Message, name, address string, arg ...string) {
|
|
||||||
_spide_create(m, name, address, arg...)
|
|
||||||
}
|
|
||||||
|
|
||||||
const SPIDE = "spide"
|
const SPIDE = "spide"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -10,8 +10,6 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
var STORY = ice.Name("story", Index)
|
|
||||||
|
|
||||||
func _story_share(m *ice.Message, story string, list string, arg ...string) {
|
func _story_share(m *ice.Message, story string, list string, arg ...string) {
|
||||||
if m.Echo("share: "); list == "" {
|
if m.Echo("share: "); list == "" {
|
||||||
msg := m.Cmd(STORY, ice.STORY_INDEX, story)
|
msg := m.Cmd(STORY, ice.STORY_INDEX, story)
|
||||||
@ -385,6 +383,8 @@ func StoryAdd(m *ice.Message, mime string, name string, text string, arg ...stri
|
|||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const STORY = "story"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Index.Merge(&ice.Context{
|
Index.Merge(&ice.Context{
|
||||||
Configs: map[string]*ice.Config{
|
Configs: map[string]*ice.Config{
|
||||||
|
@ -87,6 +87,11 @@ func Render(msg *ice.Message, cmd string, args ...interface{}) {
|
|||||||
msg.Append(ice.MSG_OUTPUT, ice.RENDER_OUTPUT)
|
msg.Append(ice.MSG_OUTPUT, ice.RENDER_OUTPUT)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (web *Frame) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||||
|
if _serve_main(web.m, w, r) {
|
||||||
|
web.ServeMux.ServeHTTP(w, r)
|
||||||
|
}
|
||||||
|
}
|
||||||
func (web *Frame) Spawn(m *ice.Message, c *ice.Context, arg ...string) ice.Server {
|
func (web *Frame) Spawn(m *ice.Message, c *ice.Context, arg ...string) ice.Server {
|
||||||
return &Frame{}
|
return &Frame{}
|
||||||
}
|
}
|
||||||
@ -122,7 +127,7 @@ func (web *Frame) Start(m *ice.Message, arg ...string) bool {
|
|||||||
msg.Log("route", "%s <- %s", s.Name, k)
|
msg.Log("route", "%s <- %s", s.Name, k)
|
||||||
w.HandleFunc(k, func(w http.ResponseWriter, r *http.Request) {
|
w.HandleFunc(k, func(w http.ResponseWriter, r *http.Request) {
|
||||||
m.TryCatch(msg.Spawns(), true, func(msg *ice.Message) {
|
m.TryCatch(msg.Spawns(), true, func(msg *ice.Message) {
|
||||||
HandleCmd(k, x, msg, w, r)
|
_serve_handle(k, x, msg, w, r)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -157,9 +162,9 @@ var Index = &ice.Context{Name: "web", Help: "网络模块",
|
|||||||
ice.ICE_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
ice.ICE_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.Load()
|
m.Load()
|
||||||
|
|
||||||
SpideCreate(m, "self", kit.Select("http://:9020", m.Conf(ice.CLI_RUNTIME, "conf.ctx_self")))
|
m.Cmd(SPIDE, kit.MDB_CREATE, "self", kit.Select("http://:9020", m.Conf(ice.CLI_RUNTIME, "conf.ctx_self")))
|
||||||
SpideCreate(m, "dev", kit.Select("http://:9020", m.Conf(ice.CLI_RUNTIME, "conf.ctx_dev")))
|
m.Cmd(SPIDE, kit.MDB_CREATE, "dev", kit.Select("http://:9020", m.Conf(ice.CLI_RUNTIME, "conf.ctx_dev")))
|
||||||
SpideCreate(m, "shy", kit.Select("https://shylinux.com:443", m.Conf(ice.CLI_RUNTIME, "conf.ctx_shy")))
|
m.Cmd(SPIDE, kit.MDB_CREATE, "shy", kit.Select("https://shylinux.com:443", m.Conf(ice.CLI_RUNTIME, "conf.ctx_shy")))
|
||||||
|
|
||||||
m.Cmd(ice.APP_SEARCH, "add", "favor", "base", m.AddCmd(&ice.Command{Name: "search word", Help: "搜索引擎", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
m.Cmd(ice.APP_SEARCH, "add", "favor", "base", m.AddCmd(&ice.Command{Name: "search word", Help: "搜索引擎", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
switch arg[0] {
|
switch arg[0] {
|
||||||
@ -265,5 +270,6 @@ var Index = &ice.Context{Name: "web", Help: "网络模块",
|
|||||||
func init() {
|
func init() {
|
||||||
ice.Index.Register(Index, &Frame{},
|
ice.Index.Register(Index, &Frame{},
|
||||||
SPIDE, SERVE, SPACE, DREAM,
|
SPIDE, SERVE, SPACE, DREAM,
|
||||||
|
CACHE, FAVOR, STORY, SHARE,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user