mirror of
https://shylinux.com/x/icebergs
synced 2025-05-01 19:19:24 +08:00
add pushsearch
This commit is contained in:
parent
9e8c89d1f9
commit
b789664740
@ -172,30 +172,9 @@ func _space_handle(m *ice.Message, safe bool, send map[string]*ice.Message, c *w
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
func _space_search(m *ice.Message, kind, name, text string, arg ...string) {
|
func _space_search(m *ice.Message, kind, name, text string, arg ...string) {
|
||||||
fields := kit.Split(m.Option(mdb.FIELDS))
|
|
||||||
m.Richs(SPACE, nil, kit.MDB_FOREACH, func(key string, val map[string]interface{}) {
|
m.Richs(SPACE, nil, kit.MDB_FOREACH, func(key string, val map[string]interface{}) {
|
||||||
val = kit.GetMeta(val)
|
if val = kit.GetMeta(val); strings.Contains(kit.Format(val["name"]), name) {
|
||||||
for _, k := range fields {
|
m.PushSearch("cmd", SPACE, val)
|
||||||
switch k {
|
|
||||||
case kit.SSH_POD:
|
|
||||||
m.Push(k, m.Option(ice.MSG_USERPOD))
|
|
||||||
case kit.SSH_CTX:
|
|
||||||
m.Push(k, m.Prefix())
|
|
||||||
case kit.SSH_CMD:
|
|
||||||
m.Push(k, SPACE)
|
|
||||||
case kit.MDB_TIME:
|
|
||||||
m.Push(k, m.Time())
|
|
||||||
case kit.MDB_SIZE:
|
|
||||||
m.Push(k, "")
|
|
||||||
case kit.MDB_TYPE:
|
|
||||||
m.Push(k, val[kit.MDB_TYPE])
|
|
||||||
case kit.MDB_NAME:
|
|
||||||
m.Push(k, val[kit.MDB_NAME])
|
|
||||||
case kit.MDB_TEXT:
|
|
||||||
m.Push(k, val[kit.MDB_TEXT])
|
|
||||||
default:
|
|
||||||
m.Push(k, "")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
26
misc.go
26
misc.go
@ -110,6 +110,32 @@ func (m *Message) PushAction(list ...interface{}) {
|
|||||||
m.PushRender(kit.MDB_ACTION, kit.MDB_BUTTON, strings.Join(kit.Simple(list...), ","))
|
m.PushRender(kit.MDB_ACTION, kit.MDB_BUTTON, strings.Join(kit.Simple(list...), ","))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
func (m *Message) PushSearch(args ...interface{}) *Message {
|
||||||
|
data := kit.Dict(args...)
|
||||||
|
for _, k := range kit.Split(m.Option("fields")) {
|
||||||
|
switch k {
|
||||||
|
case kit.SSH_POD:
|
||||||
|
m.Push(k, kit.Select(m.Option(MSG_USERPOD), data[kit.SSH_POD]))
|
||||||
|
case kit.SSH_CTX:
|
||||||
|
m.Push(k, m.Prefix())
|
||||||
|
case kit.SSH_CMD:
|
||||||
|
m.Push(k, data[kit.SSH_CMD])
|
||||||
|
case kit.MDB_TIME:
|
||||||
|
m.Push(k, m.Time())
|
||||||
|
case kit.MDB_SIZE:
|
||||||
|
m.Push(k, "")
|
||||||
|
case kit.MDB_TYPE:
|
||||||
|
m.Push(k, data[kit.MDB_TYPE])
|
||||||
|
case kit.MDB_NAME:
|
||||||
|
m.Push(k, data[kit.MDB_NAME])
|
||||||
|
case kit.MDB_TEXT:
|
||||||
|
m.Push(k, data[kit.MDB_TEXT])
|
||||||
|
default:
|
||||||
|
m.Push(k, data[k])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
|
||||||
func (m *Message) SortStr(key string) { m.Sort(key, "str") }
|
func (m *Message) SortStr(key string) { m.Sort(key, "str") }
|
||||||
func (m *Message) SortStrR(key string) { m.Sort(key, "str_r") }
|
func (m *Message) SortStrR(key string) { m.Sort(key, "str_r") }
|
||||||
|
@ -26,9 +26,7 @@ func _alpha_find(m *ice.Message, method, word string) *ice.Message {
|
|||||||
if value["word"] == "" {
|
if value["word"] == "" {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
for _, k := range []string{"id", "word", "translation", "definition"} {
|
m.PushSearch("cmd", ALPHA, "type", method, "name", value["word"], "text", value["translation"], value)
|
||||||
m.Push(k, value[k])
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
@ -66,14 +64,21 @@ var Index = &ice.Context{Name: ALPHA, Help: "英汉词典",
|
|||||||
)},
|
)},
|
||||||
},
|
},
|
||||||
Commands: map[string]*ice.Command{
|
Commands: map[string]*ice.Command{
|
||||||
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Load() }},
|
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
|
m.Cmd(mdb.SEARCH, mdb.CREATE, ALPHA, m.Prefix(ALPHA))
|
||||||
|
m.Load()
|
||||||
|
}},
|
||||||
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Save() }},
|
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Save() }},
|
||||||
|
|
||||||
ALPHA: {Name: "alpha method=word,line word auto", Help: "英汉", Action: map[string]*ice.Action{
|
ALPHA: {Name: "alpha method=word,line word auto", Help: "英汉", Action: map[string]*ice.Action{
|
||||||
mdb.IMPORT: {Name: "import file=usr/word-dict/ecdict name", Help: "加载词库", Hand: func(m *ice.Message, arg ...string) {
|
mdb.IMPORT: {Name: "import file=usr/word-dict/ecdict name", Help: "加载词库", Hand: func(m *ice.Message, arg ...string) {
|
||||||
_alpha_load(m, m.Option(kit.MDB_FILE), kit.Select(path.Base(m.Option(kit.MDB_FILE)), m.Option(kit.MDB_NAME)))
|
_alpha_load(m, m.Option(kit.MDB_FILE), kit.Select(path.Base(m.Option(kit.MDB_FILE)), m.Option(kit.MDB_NAME)))
|
||||||
}},
|
}},
|
||||||
|
mdb.SEARCH: {Name: "search type name text", Help: "搜索", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
_alpha_find(m, kit.Select("word", arg, 2), arg[1])
|
||||||
|
}},
|
||||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
|
m.Option(mdb.FIELDS, "id,word,translation,definition")
|
||||||
_alpha_find(m, arg[0], arg[1])
|
_alpha_find(m, arg[0], arg[1])
|
||||||
}},
|
}},
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user