mirror of
https://shylinux.com/x/icebergs
synced 2025-04-26 09:34:05 +08:00
add location
This commit is contained in:
parent
48fe6bfe83
commit
7c60b99624
@ -32,8 +32,8 @@ func _user_modify(m *ice.Message, name string, arg ...string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
m.Richs(USER, nil, name, func(key string, value map[string]interface{}) {
|
m.Richs(USER, nil, name, func(key string, value map[string]interface{}) {
|
||||||
|
m.Log_MODIFY(USERNAME, name, arg)
|
||||||
for i := 0; i < len(arg)-1; i += 2 {
|
for i := 0; i < len(arg)-1; i += 2 {
|
||||||
m.Log_MODIFY(USERNAME, name, arg[i], arg[i+1])
|
|
||||||
kit.Value(value, arg[i], arg[i+1])
|
kit.Value(value, arg[i], arg[i+1])
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -106,11 +106,13 @@ var RENDER = struct {
|
|||||||
A string
|
A string
|
||||||
IMG string
|
IMG string
|
||||||
Field string
|
Field string
|
||||||
|
Frame string
|
||||||
Button string
|
Button string
|
||||||
}{
|
}{
|
||||||
A: "a",
|
A: "a",
|
||||||
IMG: "img",
|
IMG: "img",
|
||||||
Field: "field",
|
Field: "field",
|
||||||
|
Frame: "frame",
|
||||||
Button: "button",
|
Button: "button",
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -119,7 +121,8 @@ func init() {
|
|||||||
Commands: map[string]*ice.Command{
|
Commands: map[string]*ice.Command{
|
||||||
"_render": {Action: map[string]*ice.Action{
|
"_render": {Action: map[string]*ice.Action{
|
||||||
RENDER.A: {Hand: func(m *ice.Message, arg ...string) {
|
RENDER.A: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
u := kit.Select(m.Conf(SHARE, "meta.domain"), arg, 1)
|
// u := kit.Select(m.Conf(SHARE, "meta.domain"), arg, 1)
|
||||||
|
u := kit.Select(arg[0], arg, 1)
|
||||||
m.Echo(`<a href="%s" target="_blank">%s</a>`, u, arg[0])
|
m.Echo(`<a href="%s" target="_blank">%s</a>`, u, arg[0])
|
||||||
}},
|
}},
|
||||||
RENDER.IMG: {Hand: func(m *ice.Message, arg ...string) {
|
RENDER.IMG: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
@ -128,6 +131,9 @@ func init() {
|
|||||||
RENDER.Field: {Hand: func(m *ice.Message, arg ...string) {
|
RENDER.Field: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Echo(`<fieldset><legend>%s(%s)</legend><form></form></fieldset>`, arg[0], arg[1])
|
m.Echo(`<fieldset><legend>%s(%s)</legend><form></form></fieldset>`, arg[0], arg[1])
|
||||||
}},
|
}},
|
||||||
|
RENDER.Frame: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Echo(`<iframe src=%s width=800 height=400 ></iframe>`, arg[0])
|
||||||
|
}},
|
||||||
RENDER.Button: {Hand: func(m *ice.Message, arg ...string) {
|
RENDER.Button: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Echo(`<input type="button" value="%s">`, arg[0])
|
m.Echo(`<input type="button" value="%s">`, arg[0])
|
||||||
}},
|
}},
|
||||||
|
@ -85,8 +85,8 @@ var Index = &ice.Context{Name: "chat", Help: "聊天中心",
|
|||||||
}},
|
}},
|
||||||
|
|
||||||
web.LOGIN: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
web.LOGIN: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
m.Option(ice.MSG_RIVER, "")
|
m.Option(ice.MSG_RIVER, m.Option("river"))
|
||||||
m.Option(ice.MSG_STORM, "")
|
m.Option(ice.MSG_STORM, m.Option("storm"))
|
||||||
|
|
||||||
if len(arg) > 0 {
|
if len(arg) > 0 {
|
||||||
switch arg[0] {
|
switch arg[0] {
|
||||||
|
102
core/chat/location.go
Normal file
102
core/chat/location.go
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
package chat
|
||||||
|
|
||||||
|
import (
|
||||||
|
ice "github.com/shylinux/icebergs"
|
||||||
|
"github.com/shylinux/icebergs/base/mdb"
|
||||||
|
"github.com/shylinux/icebergs/base/web"
|
||||||
|
kit "github.com/shylinux/toolkits"
|
||||||
|
|
||||||
|
"net/url"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
LOCATION = "location"
|
||||||
|
LONGITUDE = "longitude"
|
||||||
|
LATITUDE = "latitude"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
Index.Register(&ice.Context{Name: LOCATION, Help: "地理位置",
|
||||||
|
Configs: map[string]*ice.Config{
|
||||||
|
LOCATION: {Name: "location", Help: "地理位置", Value: kit.Data(kit.MDB_SHORT, kit.MDB_TEXT)},
|
||||||
|
},
|
||||||
|
Commands: map[string]*ice.Command{
|
||||||
|
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
|
m.Load(LOCATION)
|
||||||
|
m.Cmd(mdb.SEARCH, mdb.CREATE, LOCATION, m.Prefix(LOCATION))
|
||||||
|
m.Cmd(mdb.RENDER, mdb.CREATE, LOCATION, m.Prefix(LOCATION))
|
||||||
|
}},
|
||||||
|
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Save(LOCATION) }},
|
||||||
|
|
||||||
|
LOCATION: {Name: "location text auto 添加:button", Help: "地理位置", Action: map[string]*ice.Action{
|
||||||
|
mdb.INSERT: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Conf(LOCATION, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM), kit.MDB_META, kit.MDB_SHORT), kit.MDB_TEXT)
|
||||||
|
|
||||||
|
h := m.Rich(LOCATION, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), kit.Dict(
|
||||||
|
kit.MDB_TYPE, arg[0], kit.MDB_NAME, arg[1], kit.MDB_TEXT, arg[2],
|
||||||
|
LONGITUDE, arg[3], LATITUDE, arg[4],
|
||||||
|
))
|
||||||
|
m.Log_INSERT(LOCATION, arg[2])
|
||||||
|
m.Echo(h)
|
||||||
|
}},
|
||||||
|
mdb.MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Richs(LOCATION, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), m.Option(kit.MDB_TEXT), func(key string, value map[string]interface{}) {
|
||||||
|
if arg[0] == kit.MDB_TEXT {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
m.Log_MODIFY(PASTE, m.Option(kit.MDB_TEXT))
|
||||||
|
value[arg[0]] = arg[1]
|
||||||
|
})
|
||||||
|
}},
|
||||||
|
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Richs(LOCATION, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), m.Option(kit.MDB_TEXT), func(key string, value map[string]interface{}) {
|
||||||
|
m.Log_REMOVE(LOCATION, m.Option(kit.MDB_TEXT))
|
||||||
|
m.Conf(LOCATION, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM), kit.MDB_HASH, key), "")
|
||||||
|
})
|
||||||
|
}},
|
||||||
|
mdb.SEARCH: {Name: "search type name text", Help: "搜索", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Richs(LOCATION, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), kit.MDB_FOREACH, func(key string, value map[string]interface{}) {
|
||||||
|
if strings.Contains(kit.Format(value[kit.MDB_NAME]), arg[1]) ||
|
||||||
|
strings.Contains(kit.Format(value[kit.MDB_TEXT]), arg[1]) {
|
||||||
|
|
||||||
|
m.Push("pod", m.Option("pod"))
|
||||||
|
m.Push("ctx", m.Cap(ice.CTX_FOLLOW))
|
||||||
|
m.Push("cmd", LOCATION)
|
||||||
|
m.Push(kit.MDB_TIME, value["time"])
|
||||||
|
m.Push(kit.MDB_SIZE, value["size"])
|
||||||
|
m.Push(kit.MDB_TYPE, LOCATION)
|
||||||
|
m.Push(kit.MDB_NAME, value["name"])
|
||||||
|
m.Push(kit.MDB_TEXT, value["text"])
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}},
|
||||||
|
mdb.RENDER: {Name: "render type name text", Help: "渲染", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Cmdy(mdb.RENDER, web.RENDER.Frame, kit.Format(
|
||||||
|
"https://map.baidu.com/search/%s/@12958750.085,4825785.55,16z?querytype=s&da_src=shareurl&wd=%s",
|
||||||
|
arg[2], arg[2]))
|
||||||
|
}},
|
||||||
|
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
|
m.Richs(LOCATION, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), kit.Select(kit.MDB_FOREACH, arg, 0), func(key string, value map[string]interface{}) {
|
||||||
|
if len(arg) == 0 {
|
||||||
|
m.Push(key, value, []string{kit.MDB_TIME, kit.MDB_TYPE, kit.MDB_NAME, kit.MDB_TEXT,
|
||||||
|
LONGITUDE, LATITUDE})
|
||||||
|
if strings.Contains(m.Option(ice.MSG_USERUA), "MicroMessenger") {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
m.Push("action", m.Cmdx(mdb.RENDER, web.RENDER.Button, "删除"))
|
||||||
|
loc := m.Cmdx(mdb.RENDER, web.RENDER.A, "百度地图", kit.Format(
|
||||||
|
"https://map.baidu.com/search/%s/@12958750.085,4825785.55,16z?querytype=s&da_src=shareurl&wd=%s",
|
||||||
|
url.QueryEscape(kit.Format(value[kit.MDB_TEXT])),
|
||||||
|
url.QueryEscape(kit.Format(value[kit.MDB_TEXT])),
|
||||||
|
))
|
||||||
|
m.Push("location", loc)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
m.Push("detail", value)
|
||||||
|
})
|
||||||
|
m.Sort("time", "time_r")
|
||||||
|
}},
|
||||||
|
},
|
||||||
|
}, nil)
|
||||||
|
}
|
91
core/chat/paste.go
Normal file
91
core/chat/paste.go
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
package chat
|
||||||
|
|
||||||
|
import (
|
||||||
|
ice "github.com/shylinux/icebergs"
|
||||||
|
"github.com/shylinux/icebergs/base/mdb"
|
||||||
|
"github.com/shylinux/icebergs/base/web"
|
||||||
|
kit "github.com/shylinux/toolkits"
|
||||||
|
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
PASTE = "paste"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
Index.Register(&ice.Context{Name: PASTE, Help: "粘贴板",
|
||||||
|
Configs: map[string]*ice.Config{
|
||||||
|
PASTE: {Name: "paste", Help: "粘贴板", Value: kit.Data(kit.MDB_SHORT, kit.MDB_TEXT)},
|
||||||
|
},
|
||||||
|
Commands: map[string]*ice.Command{
|
||||||
|
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
|
m.Load(PASTE)
|
||||||
|
m.Cmd(mdb.SEARCH, mdb.CREATE, PASTE, m.Prefix(PASTE))
|
||||||
|
m.Cmd(mdb.RENDER, mdb.CREATE, PASTE, m.Prefix(PASTE))
|
||||||
|
}},
|
||||||
|
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
|
m.Save(PASTE)
|
||||||
|
}},
|
||||||
|
|
||||||
|
PASTE: {Name: "paste text auto 添加:button", Help: "粘贴板", Action: map[string]*ice.Action{
|
||||||
|
mdb.INSERT: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Conf(PASTE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM), kit.MDB_META, kit.MDB_SHORT), kit.MDB_TEXT)
|
||||||
|
|
||||||
|
h := m.Rich(PASTE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), kit.Dict(
|
||||||
|
kit.MDB_TYPE, arg[0], kit.MDB_NAME, arg[1], kit.MDB_TEXT, strings.TrimSpace(arg[2]),
|
||||||
|
))
|
||||||
|
m.Log_INSERT(PASTE, arg[2])
|
||||||
|
m.Echo(h)
|
||||||
|
}},
|
||||||
|
mdb.MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Richs(PASTE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), m.Option(kit.MDB_TEXT), func(key string, value map[string]interface{}) {
|
||||||
|
if arg[0] == kit.MDB_TEXT {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
m.Log_MODIFY(PASTE, m.Option(kit.MDB_TEXT))
|
||||||
|
value[arg[0]] = arg[1]
|
||||||
|
})
|
||||||
|
}},
|
||||||
|
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Richs(PASTE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), m.Option(kit.MDB_TEXT), func(key string, value map[string]interface{}) {
|
||||||
|
m.Log_REMOVE(PASTE, m.Option(kit.MDB_TEXT))
|
||||||
|
m.Conf(PASTE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM), kit.MDB_HASH, key), "")
|
||||||
|
})
|
||||||
|
}},
|
||||||
|
mdb.SEARCH: {Name: "search type name text", Help: "搜索", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Richs(PASTE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), kit.MDB_FOREACH, func(key string, value map[string]interface{}) {
|
||||||
|
if strings.Contains(kit.Format(value[kit.MDB_NAME]), arg[1]) ||
|
||||||
|
strings.Contains(kit.Format(value[kit.MDB_TEXT]), arg[1]) {
|
||||||
|
|
||||||
|
m.Push("pod", m.Option("pod"))
|
||||||
|
m.Push("ctx", m.Cap(ice.CTX_FOLLOW))
|
||||||
|
m.Push("cmd", PASTE)
|
||||||
|
m.Push(kit.MDB_TIME, value["time"])
|
||||||
|
m.Push(kit.MDB_SIZE, value["size"])
|
||||||
|
m.Push(kit.MDB_TYPE, PASTE)
|
||||||
|
m.Push(kit.MDB_NAME, value["name"])
|
||||||
|
m.Push(kit.MDB_TEXT, value["text"])
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}},
|
||||||
|
mdb.RENDER: {Name: "render type name text", Help: "渲染", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Echo(arg[2])
|
||||||
|
}},
|
||||||
|
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
|
m.Richs(PASTE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), kit.Select(kit.MDB_FOREACH, arg, 0), func(key string, value map[string]interface{}) {
|
||||||
|
if len(arg) == 0 {
|
||||||
|
m.Push(key, value, []string{kit.MDB_TIME, kit.MDB_TYPE, kit.MDB_NAME, kit.MDB_TEXT})
|
||||||
|
if strings.Contains(m.Option(ice.MSG_USERUA), "MicroMessenger") {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
m.Push("action", m.Cmdx(mdb.RENDER, web.RENDER.Button, "删除"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
m.Push("detail", value)
|
||||||
|
})
|
||||||
|
m.Sort("time", "time_r")
|
||||||
|
}},
|
||||||
|
},
|
||||||
|
}, nil)
|
||||||
|
}
|
93
core/chat/qrcode.go
Normal file
93
core/chat/qrcode.go
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
package chat
|
||||||
|
|
||||||
|
import (
|
||||||
|
ice "github.com/shylinux/icebergs"
|
||||||
|
"github.com/shylinux/icebergs/base/mdb"
|
||||||
|
"github.com/shylinux/icebergs/base/web"
|
||||||
|
kit "github.com/shylinux/toolkits"
|
||||||
|
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
QRCODE = "qrcode"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
Index.Register(&ice.Context{Name: QRCODE, Help: "二维码",
|
||||||
|
Configs: map[string]*ice.Config{
|
||||||
|
QRCODE: {Name: "qrcode", Help: "二维码", Value: kit.Data(kit.MDB_SHORT, kit.MDB_TEXT)},
|
||||||
|
},
|
||||||
|
Commands: map[string]*ice.Command{
|
||||||
|
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
|
m.Load(QRCODE)
|
||||||
|
m.Cmd(mdb.SEARCH, mdb.CREATE, QRCODE, m.Prefix(QRCODE))
|
||||||
|
m.Cmd(mdb.RENDER, mdb.CREATE, QRCODE, m.Prefix(QRCODE))
|
||||||
|
}},
|
||||||
|
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
|
m.Save(QRCODE)
|
||||||
|
}},
|
||||||
|
|
||||||
|
QRCODE: {Name: "qrcode text auto 添加:button", Help: "二维码", Action: map[string]*ice.Action{
|
||||||
|
mdb.INSERT: {Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Conf(QRCODE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM), kit.MDB_META, kit.MDB_SHORT), kit.MDB_TEXT)
|
||||||
|
|
||||||
|
h := m.Rich(QRCODE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), kit.Dict(
|
||||||
|
kit.MDB_TYPE, arg[0], kit.MDB_NAME, arg[1], kit.MDB_TEXT, arg[2],
|
||||||
|
))
|
||||||
|
m.Log_INSERT(QRCODE, arg[2])
|
||||||
|
m.Echo(h)
|
||||||
|
}},
|
||||||
|
mdb.MODIFY: {Name: "modify", Help: "编辑", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Richs(QRCODE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), m.Option(kit.MDB_TEXT), func(key string, value map[string]interface{}) {
|
||||||
|
if arg[0] == kit.MDB_TEXT {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
m.Log_MODIFY(PASTE, m.Option(kit.MDB_TEXT))
|
||||||
|
value[arg[0]] = arg[1]
|
||||||
|
})
|
||||||
|
}},
|
||||||
|
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Richs(QRCODE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), m.Option(kit.MDB_TEXT), func(key string, value map[string]interface{}) {
|
||||||
|
m.Log_REMOVE(QRCODE, m.Option(kit.MDB_TEXT))
|
||||||
|
m.Conf(QRCODE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM), kit.MDB_HASH, key), "")
|
||||||
|
})
|
||||||
|
}},
|
||||||
|
mdb.SEARCH: {Name: "search type name text", Help: "搜索", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Richs(QRCODE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), kit.MDB_FOREACH, func(key string, value map[string]interface{}) {
|
||||||
|
if strings.Contains(kit.Format(value[kit.MDB_NAME]), arg[1]) ||
|
||||||
|
strings.Contains(kit.Format(value[kit.MDB_TEXT]), arg[1]) {
|
||||||
|
|
||||||
|
m.Push("pod", m.Option("pod"))
|
||||||
|
m.Push("ctx", m.Cap(ice.CTX_FOLLOW))
|
||||||
|
m.Push("cmd", QRCODE)
|
||||||
|
m.Push(kit.MDB_TIME, value["time"])
|
||||||
|
m.Push(kit.MDB_SIZE, value["size"])
|
||||||
|
m.Push(kit.MDB_TYPE, QRCODE)
|
||||||
|
m.Push(kit.MDB_NAME, value["name"])
|
||||||
|
m.Push(kit.MDB_TEXT, value["text"])
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}},
|
||||||
|
mdb.RENDER: {Name: "render type name text", Help: "渲染", Hand: func(m *ice.Message, arg ...string) {
|
||||||
|
m.Echo(m.Cmdx("web.wiki.image", "qrcode", arg[2]))
|
||||||
|
}},
|
||||||
|
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||||
|
m.Richs(QRCODE, kit.Keys(kit.MDB_META, m.Option(ice.MSG_RIVER), m.Option(ice.MSG_STORM)), kit.Select(kit.MDB_FOREACH, arg, 0), func(key string, value map[string]interface{}) {
|
||||||
|
if len(arg) == 0 {
|
||||||
|
m.Push(key, value, []string{kit.MDB_TIME, kit.MDB_TYPE, kit.MDB_NAME, kit.MDB_TEXT})
|
||||||
|
if strings.Contains(m.Option(ice.MSG_USERUA), "MicroMessenger") {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
m.Push("action", m.Cmdx(mdb.RENDER, web.RENDER.Button, "删除"))
|
||||||
|
img := m.Cmdx("web.wiki.image", "qrcode", value[kit.MDB_TEXT])
|
||||||
|
m.Push("qrcode", img)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
m.Push("detail", value)
|
||||||
|
})
|
||||||
|
m.Sort("time", "time_r")
|
||||||
|
}},
|
||||||
|
},
|
||||||
|
}, nil)
|
||||||
|
}
|
@ -124,14 +124,16 @@ func init() {
|
|||||||
_river_user(m, m.Option(ice.MSG_RIVER), arg...)
|
_river_user(m, m.Option(ice.MSG_RIVER), arg...)
|
||||||
}},
|
}},
|
||||||
}, 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.Cmd(aaa.USER, mdb.MODIFY, m.Option(ice.MSG_USERNAME), aaa.USERNICK, m.Option(ice.MSG_USERNICK))
|
||||||
if len(arg) > 0 && arg[0] == "storm" {
|
if len(arg) > 0 && arg[0] == "storm" {
|
||||||
m.Cmdy("/storm", arg[1:])
|
m.Cmdy("/storm", arg[1:])
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if m.Option(ice.MSG_SESSID) == "" {
|
if m.Option("_source") == "" && m.Option(ice.MSG_SESSID) == "" {
|
||||||
m.Render("status", "401")
|
m.Render("status", "401")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
_river_list(m)
|
_river_list(m)
|
||||||
}},
|
}},
|
||||||
},
|
},
|
||||||
|
3
init.go
3
init.go
@ -59,6 +59,7 @@ func (f *Frame) Close(m *Message, arg ...string) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var wait = make(chan bool, 1)
|
||||||
var Index = &Context{Name: "ice", Help: "冰山模块",
|
var Index = &Context{Name: "ice", Help: "冰山模块",
|
||||||
Caches: map[string]*Cache{
|
Caches: map[string]*Cache{
|
||||||
CTX_FOLLOW: {Value: ""},
|
CTX_FOLLOW: {Value: ""},
|
||||||
@ -133,6 +134,7 @@ var Index = &Context{Name: "ice", Help: "冰山模块",
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
wait <- true
|
||||||
}},
|
}},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@ -176,6 +178,7 @@ func Run(arg ...string) string {
|
|||||||
Pulse.Table(nil)
|
Pulse.Table(nil)
|
||||||
}
|
}
|
||||||
fmt.Printf(Pulse.Result())
|
fmt.Printf(Pulse.Result())
|
||||||
|
<-wait
|
||||||
os.Exit(frame.code)
|
os.Exit(frame.code)
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,10 @@ refer "" `
|
|||||||
`
|
`
|
||||||
|
|
||||||
chapter "应用"
|
chapter "应用"
|
||||||
|
field "user" user
|
||||||
|
field "qrcode" web.chat.qrcode.qrcode
|
||||||
|
field "qrcode" web.chat.qrcode.qrcode args `[ insert qrcode hi hello ]`
|
||||||
|
|
||||||
section "二维码"
|
section "二维码"
|
||||||
field "qrcode 源码" web.code.inner args `[ usr/icebergs core/code/qrcode.go 1 ]`
|
field "qrcode 源码" web.code.inner args `[ usr/icebergs core/code/qrcode.go 1 ]`
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user