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

opt chrome

This commit is contained in:
shaoying 2021-08-10 09:19:43 +08:00
parent 66b6ba2276
commit c555545cea
13 changed files with 169 additions and 107 deletions

View File

@ -143,8 +143,19 @@ func _hash_inputs(m *ice.Message, prefix, chain string, field, value string) {
m.SortIntR(kit.MDB_COUNT)
}
func selectAction(list map[string]*ice.Action, fields ...string) map[string]*ice.Action {
if len(fields) == 0 {
return list
}
res := map[string]*ice.Action{}
for _, field := range fields {
res[field] = list[field]
}
return res
}
func HashAction(fields ...string) map[string]*ice.Action {
list := map[string]*ice.Action{
return selectAction(map[string]*ice.Action{
MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(MODIFY, m.PrefixKey(), "", HASH, m.OptionSimple(kit.MDB_HASH), arg)
}},
@ -172,16 +183,7 @@ func HashAction(fields ...string) map[string]*ice.Action {
INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(INPUTS, m.PrefixKey(), "", HASH, arg)
}},
}
if len(fields) == 0 {
return list
}
res := map[string]*ice.Action{}
for _, field := range fields {
res[field] = list[field]
}
return res
})
}
const HASH = "hash"

View File

@ -131,3 +131,35 @@ func _list_inputs(m *ice.Message, prefix, chain string, field, value string) {
}
const LIST = "list"
func ListAction(fields ...string) map[string]*ice.Action {
return selectAction(map[string]*ice.Action{
INSERT: {Name: "insert type=go name=hi text=hello", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(INSERT, m.PrefixKey(), "", LIST, arg)
}},
MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(MODIFY, m.PrefixKey(), "", LIST, m.OptionSimple(kit.MDB_ID), arg)
}},
REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(DELETE, m.PrefixKey(), "", LIST, m.OptionSimple(kit.MDB_ID))
}},
EXPORT: {Name: "export", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
m.OptionFields(m.Conf(m.PrefixKey(), kit.META_FIELD))
m.Cmdy(EXPORT, m.PrefixKey(), "", LIST)
m.Conf(m.PrefixKey(), kit.MDB_LIST, "")
m.Conf(m.PrefixKey(), kit.Keym(kit.MDB_COUNT), 0)
}},
IMPORT: {Name: "import", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(IMPORT, m.PrefixKey(), "", LIST)
}},
INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(INPUTS, m.PrefixKey(), "", LIST, arg)
}},
PREV: {Name: "prev", Help: "上一页", Hand: func(m *ice.Message, arg ...string) {
PrevPage(m, m.Conf(m.PrefixKey(), kit.Keym(kit.MDB_COUNT)), kit.Slice(arg, 1)...)
}},
NEXT: {Name: "next", Help: "下一页", Hand: func(m *ice.Message, arg ...string) {
NextPage(m, m.Conf(m.PrefixKey(), kit.Keym(kit.MDB_COUNT)), kit.Slice(arg, 1)...)
}},
}, fields...)
}

View File

@ -5,11 +5,13 @@ import (
kit "github.com/shylinux/toolkits"
)
const ZONE_FIELD = "time,zone,count"
func ZoneAction(fields ...string) map[string]*ice.Action {
_zone := func(m *ice.Message) string {
return kit.Select(kit.MDB_ZONE, m.Conf(m.PrefixKey(), kit.Keym(kit.MDB_SHORT)))
}
list := map[string]*ice.Action{
return selectAction(map[string]*ice.Action{
CREATE: {Name: "create zone", Help: "创建", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(INSERT, m.PrefixKey(), "", HASH, arg)
}},
@ -40,14 +42,5 @@ func ZoneAction(fields ...string) map[string]*ice.Action {
m.Cmdy(INPUTS, m.PrefixKey(), "", ZONE, m.Option(_zone(m)), arg)
}
}},
}
if len(fields) == 0 {
return list
}
res := map[string]*ice.Action{}
for _, field := range fields {
res[field] = list[field]
}
return res
}, fields...)
}

11
misc.go
View File

@ -444,3 +444,14 @@ func MergeAction(list ...map[string]*Action) map[string]*Action {
}
return list[0]
}
func (m *Message) AppendSimple(key ...string) (res []string) {
if len(key) == 0 {
key = append(key, m.Appendv(MSG_APPEND)...)
}
for _, k := range key {
res = append(res, k, m.Append(k))
}
return
}

View File

@ -73,6 +73,7 @@ var Index = &ice.Context{Name: ALPHA, Help: "英汉词典",
"audio", "bnc", "collins", "definition", "detail", "exchange", "frq", "id", "oxford", "phonetic", "pos", "tag", "time", "translation", "word",
},
)},
"_cache": {Name: "_cache", Value: kit.Data(kit.MDB_SHORT, "mw")},
},
Commands: map[string]*ice.Command{
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
@ -81,7 +82,7 @@ var Index = &ice.Context{Name: ALPHA, Help: "英汉词典",
}},
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 _cache", Help: "英汉", Action: map[string]*ice.Action{
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)))
}},
@ -90,9 +91,19 @@ var Index = &ice.Context{Name: ALPHA, Help: "英汉词典",
_alpha_find(m, kit.Select(WORD, arg, 2), arg[1])
}
}},
"_cache": {Name: "_cache", Help: "缓存", Hand: func(m *ice.Message, arg ...string) {
m.OptionFields("time,id,word,translation,definition")
m.Cmdy(mdb.SELECT, m.Prefix("_cache"), "", mdb.HASH)
}},
}, 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])
defer m.StatusTimeCount()
m.OptionFields("id,word,translation,definition")
if m.Cmdy(mdb.SELECT, m.Prefix("_cache"), "", mdb.HASH, "mw", arg[0]+arg[1]); len(m.Appendv("id")) > 0 {
return
}
if _alpha_find(m, arg[0], arg[1]); len(m.Appendv("id")) > 0 {
m.Cmd(mdb.INSERT, m.Prefix("_cache"), "", mdb.HASH, "mw", arg[0]+arg[1], m.AppendSimple())
}
}},
},
}

View File

@ -1,4 +1,4 @@
package crx
package chrome
import (
"path"

View File

@ -1,4 +1,4 @@
package crx
package chrome
import (
ice "github.com/shylinux/icebergs"

View File

@ -10,6 +10,7 @@ field chrome web.code.chrome.chrome
chapter "应用"
field "同步流" web.code.chrome.sync
field "收藏夹" web.code.chrome.favor
field "样式表" web.code.chrome.style
field "蜘蛛侠" web.code.chrome.spide
field "缓存池" web.code.chrome.cache
field "相册簿" web.wiki.feel

View File

@ -1,4 +1,4 @@
package crx
package chrome
import (
ice "github.com/shylinux/icebergs"

View File

@ -1,4 +1,4 @@
package crx
package chrome
import (
ice "github.com/shylinux/icebergs"
@ -10,36 +10,38 @@ import (
const Page = "page"
func init() {
Index.Merge(&ice.Context{
Configs: map[string]*ice.Config{
Page: {Name: "page", Help: "网页", Value: kit.Data()},
},
Commands: map[string]*ice.Command{
"/page": {Name: "/page", Help: "网页", Action: map[string]*ice.Action{
ctx.COMMAND: {Name: "command", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
if arg[0] == "get" {
switch m.Option("hostname") {
case "music.163.com":
m.Option("top", "200")
m.Result(SPIDE, "", m.Option("tid"))
return
case "localhost", "fib.woa.com":
return
}
return
m.Option("top", "200")
m.Echo("cli.runtime")
return
}
if arg[0] == cli.RUN {
m.Cmdy(arg[1:])
return
}
m.Cmdy(ctx.COMMAND, arg)
}},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
Page: {Name: "page", Help: "网页", Value: kit.Data()},
}, Commands: map[string]*ice.Command{
"/page": {Name: "/page", Help: "网页", Action: map[string]*ice.Action{
ctx.COMMAND: {Name: "command", Help: "命令", Hand: func(m *ice.Message, arg ...string) {
if len(arg) == 0 {
m.Cmdy(STYLE, SYNC, m.OptionSimple("hostname"))
switch m.Option("hostname") {
case "golang.google.cn":
m.Option("top", "200")
m.Option("selection", "word")
m.Result("web.wiki.alpha.alpha")
case "music.163.com":
m.Option("top", "200")
m.Result(SPIDE, "", m.Option("tid"))
case "localhost", "fib.woa.com":
return
}
return
m.Option("top", "200")
m.Echo("cli.runtime")
return
}
m.Cmdy(ctx.COMMAND, arg)
}},
},
})
cli.RUN: {Name: "run", Help: "执行", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(arg)
}},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
}},
}})
}

View File

@ -1,4 +1,4 @@
package crx
package chrome
import (
ice "github.com/shylinux/icebergs"

33
misc/chrome/style.go Normal file
View File

@ -0,0 +1,33 @@
package chrome
import (
ice "github.com/shylinux/icebergs"
"github.com/shylinux/icebergs/base/mdb"
"github.com/shylinux/icebergs/base/web"
kit "github.com/shylinux/toolkits"
)
const STYLE = "style"
func init() {
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
STYLE: {Name: "style", Help: "样式", Value: kit.Data(
kit.MDB_SHORT, "zone", kit.MDB_FIELD, "time,id,target,style",
)},
}, Commands: map[string]*ice.Command{
STYLE: {Name: "style zone id auto insert", Help: "样式", Action: ice.MergeAction(map[string]*ice.Action{
mdb.INSERT: {Name: "insert zone=golang.google.cn target=. style:textarea", Help: "添加"},
SYNC: {Name: "sync hostname", Help: "同步", Hand: func(m *ice.Message, arg ...string) {
m.Fields(0, m.Conf(STYLE, kit.META_FIELD))
m.Cmd(mdb.SELECT, m.PrefixKey(), "", mdb.ZONE, m.Option("hostname")).Table(func(index int, value map[string]string, head []string) {
m.Cmd(web.SPACE, CHROME, CHROME, "1", m.Option("tid"), STYLE, value["target"], value["style"])
})
}},
}, mdb.ZoneAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Fields(len(arg), mdb.ZONE_FIELD, m.Conf(STYLE, kit.META_FIELD))
if m.Cmdy(mdb.SELECT, m.PrefixKey(), "", mdb.ZONE, arg); len(arg) == 0 {
m.PushAction(mdb.REMOVE)
}
}},
}})
}

View File

@ -1,4 +1,4 @@
package crx
package chrome
import (
ice "github.com/shylinux/icebergs"
@ -8,56 +8,33 @@ import (
const _sync_index = 1
func _sync_count(m *ice.Message) string {
return m.Conf(SYNC, kit.Keym(kit.MDB_COUNT))
}
func _sync_count(m *ice.Message) string { return m.Conf(SYNC, kit.Keym(kit.MDB_COUNT)) }
const SYNC = "sync"
func init() {
Index.Merge(&ice.Context{
Configs: map[string]*ice.Config{
SYNC: {Name: SYNC, Help: "同步流", Value: kit.Data(
kit.MDB_FIELD, "time,id,type,name,text",
)},
},
Commands: map[string]*ice.Command{
"/sync": {Name: "/sync", Help: "同步", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Cmdy(SYNC, mdb.INSERT, arg)
Index.Merge(&ice.Context{Configs: map[string]*ice.Config{
SYNC: {Name: SYNC, Help: "同步流", Value: kit.Data(kit.MDB_FIELD, "time,id,type,name,text")},
}, Commands: map[string]*ice.Command{
"/sync": {Name: "/sync", Help: "同步", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Cmdy(SYNC, mdb.INSERT, arg)
}},
SYNC: {Name: "sync id auto page export import", Help: "同步流", Action: ice.MergeAction(map[string]*ice.Action{
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
switch arg[0] {
case kit.MDB_ZONE:
m.Cmdy(FAVOR, ice.OptionFields("zone,count,time"))
}
}},
SYNC: {Name: "sync id auto page export import", Help: "同步流", Action: map[string]*ice.Action{
mdb.PREV: {Name: "prev", Help: "上一页", Hand: func(m *ice.Message, arg ...string) {
mdb.PrevPage(m, _sync_count(m), kit.Slice(arg, _sync_index)...)
}},
mdb.NEXT: {Name: "next", Help: "下一页", Hand: func(m *ice.Message, arg ...string) {
mdb.NextPage(m, _sync_count(m), kit.Slice(arg, _sync_index)...)
}},
mdb.INSERT: {Name: "insert type name text", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(mdb.INSERT, m.Prefix(SYNC), "", mdb.LIST, m.OptionSimple("type,name,text"))
}},
mdb.EXPORT: {Name: "export", Help: "导出", Hand: func(m *ice.Message, arg ...string) {
m.OptionFields(m.Conf(SYNC, kit.META_FIELD))
m.Cmdy(mdb.EXPORT, m.Prefix(SYNC), "", mdb.LIST)
}},
mdb.IMPORT: {Name: "import", Help: "导入", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(mdb.IMPORT, m.Prefix(SYNC), "", mdb.LIST)
}},
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
switch arg[0] {
case kit.MDB_ZONE:
m.Cmdy(FAVOR, ice.OptionFields("zone,count,time"))
}
}},
FAVOR: {Name: "favor zone=some name", Help: "收藏", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(m.Prefix(FAVOR), mdb.INSERT, m.OptionSimple("zone,type,name,text"))
}},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.OptionPage(kit.Slice(arg, _sync_index)...)
m.Fields(len(kit.Slice(arg, 0, 1)), m.Conf(SYNC, kit.META_FIELD))
m.Cmdy(mdb.SELECT, m.Prefix(SYNC), "", mdb.LIST, kit.MDB_ID, arg)
m.StatusTimeCountTotal(_sync_count(m))
m.PushAction(FAVOR)
FAVOR: {Name: "favor zone=some name", Help: "收藏", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(FAVOR, mdb.INSERT, m.OptionSimple("zone,type,name,text"))
}},
},
})
}, mdb.ListAction()), Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.OptionPage(kit.Slice(arg, _sync_index)...)
m.Fields(len(kit.Slice(arg, 0, 1)), m.Conf(SYNC, kit.META_FIELD))
m.Cmdy(mdb.SELECT, m.PrefixKey(), "", mdb.LIST, kit.MDB_ID, arg)
m.StatusTimeCountTotal(_sync_count(m))
m.PushAction(FAVOR)
}},
}})
}