修改接口
This commit is contained in:
parent
60d10b3a11
commit
7784cf176a
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*.log
|
30
busi/friend.go
Normal file
30
busi/friend.go
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
package busi
|
||||||
|
|
||||||
|
import (
|
||||||
|
"legu.airobot/lib"
|
||||||
|
"legu.airobot/pb"
|
||||||
|
)
|
||||||
|
|
||||||
|
//好友场景
|
||||||
|
|
||||||
|
var _ lib.IScene = (*FriendScene)(nil)
|
||||||
|
|
||||||
|
type FriendScene struct {
|
||||||
|
lib.Action
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *FriendScene) Info() lib.SceneInfo {
|
||||||
|
return lib.SceneInfo{
|
||||||
|
Name: "好友申请",
|
||||||
|
Desc: "aaa",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f *FriendScene) Run(robot lib.IRobot) error {
|
||||||
|
head := &pb.UserMessage{MainType: "", SubType: ""}
|
||||||
|
|
||||||
|
req := &pb.FriendRandlistReq{}
|
||||||
|
rsp := &pb.FriendRandlistResp{}
|
||||||
|
robot.SendMsg(head, req, rsp)
|
||||||
|
return nil
|
||||||
|
}
|
@ -14,9 +14,9 @@ type FriendApply struct {
|
|||||||
lib.Action
|
lib.Action
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *FriendApply) ShowInfo() lib.CallerInfo {
|
func (a *FriendApply) Info() lib.SceneInfo {
|
||||||
return lib.CallerInfo{
|
return lib.SceneInfo{
|
||||||
Key: "friend.apply",
|
Name: "friend.apply",
|
||||||
Desc: "好友申请",
|
Desc: "好友申请",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -26,6 +26,7 @@ func (a *FriendApply) BuildReq(store lib.IStore, head *pb.UserMessage) lib.RawRe
|
|||||||
var req []byte
|
var req []byte
|
||||||
|
|
||||||
b := store.Get("friend.apply")
|
b := store.Get("friend.apply")
|
||||||
|
|
||||||
rsp := &pb.FriendRandlistResp{}
|
rsp := &pb.FriendRandlistResp{}
|
||||||
if err := proto.Unmarshal(b, rsp); err != nil {
|
if err := proto.Unmarshal(b, rsp); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
|
@ -15,9 +15,9 @@ type FriendRecommend struct {
|
|||||||
lib.Action
|
lib.Action
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *FriendRecommend) ShowInfo() lib.CallerInfo {
|
func (a *FriendRecommend) Info() lib.SceneInfo {
|
||||||
return lib.CallerInfo{
|
return lib.SceneInfo{
|
||||||
Key: "friend.randlist",
|
Name: "friend.randlist",
|
||||||
Desc: "好友推荐",
|
Desc: "好友推荐",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package lib
|
package lib
|
||||||
|
|
||||||
type IAction interface {
|
type IAction interface {
|
||||||
ShowInfo() CallerInfo
|
Info() SceneInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
type Action struct {
|
type Action struct {
|
||||||
// scene *scene
|
// scene *scene
|
||||||
Key string
|
Name string
|
||||||
Desc string
|
Desc string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,8 +14,8 @@ type RawResp struct {
|
|||||||
Elapse time.Duration
|
Elapse time.Duration
|
||||||
}
|
}
|
||||||
|
|
||||||
type CallerInfo struct {
|
type SceneInfo struct {
|
||||||
Key string
|
Name string
|
||||||
Desc string
|
Desc string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
15
lib/robot.go
15
lib/robot.go
@ -16,11 +16,20 @@ import (
|
|||||||
|
|
||||||
type IRobot interface {
|
type IRobot interface {
|
||||||
// 启动机器人
|
// 启动机器人
|
||||||
Start() bool
|
// Start() bool
|
||||||
// 选择场景
|
// 选择场景
|
||||||
SelScene(scene *scene)
|
// SelScene(scene *scene)
|
||||||
// 当前场景
|
// 当前场景
|
||||||
GetCurrentScene() *scene
|
// GetCurrentScene() *scene
|
||||||
|
|
||||||
|
// 发送消息
|
||||||
|
SendMsg(head *pb.UserMessage, req proto.Message, rsp proto.Message) error
|
||||||
|
// 存储数据
|
||||||
|
Store(key string, data []byte)
|
||||||
|
// 获取数据
|
||||||
|
Get(key string) []byte
|
||||||
|
// 停止运行
|
||||||
|
Stop() bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type Robot struct {
|
type Robot struct {
|
||||||
|
20
lib/scene.go
20
lib/scene.go
@ -1,15 +1,22 @@
|
|||||||
package lib
|
package lib
|
||||||
|
|
||||||
import "sync"
|
import (
|
||||||
|
"sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
type IScene interface {
|
||||||
|
Run(robot IRobot) error
|
||||||
|
Info() SceneInfo
|
||||||
|
}
|
||||||
|
|
||||||
type scene struct {
|
type scene struct {
|
||||||
ai *myAI
|
ai *myAI
|
||||||
Name string
|
Name string
|
||||||
Desc string
|
Desc string
|
||||||
callerQueue *Queue[ICaller] //确定运行的caller队列
|
callerQueue *Queue[ICaller] //确定运行的caller队列
|
||||||
|
|
||||||
status uint32 //场景状态
|
status uint32 //场景状态
|
||||||
lock sync.Mutex
|
lock sync.Mutex
|
||||||
}
|
}
|
||||||
|
|
||||||
// 创建场景
|
// 创建场景
|
||||||
@ -19,7 +26,6 @@ func NewScene(ai *myAI, param SceneParam) *scene {
|
|||||||
Name: param.Name,
|
Name: param.Name,
|
||||||
Desc: param.Desc,
|
Desc: param.Desc,
|
||||||
callerQueue: NewQueue[ICaller](),
|
callerQueue: NewQueue[ICaller](),
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ai.scenes = append(ai.scenes, s)
|
ai.scenes = append(ai.scenes, s)
|
||||||
@ -50,7 +56,7 @@ func (s *scene) Enable(name string) {
|
|||||||
for _, v := range s.ai.scenes {
|
for _, v := range s.ai.scenes {
|
||||||
if v.Name == name {
|
if v.Name == name {
|
||||||
v.status = STATUS_ENABLE
|
v.status = STATUS_ENABLE
|
||||||
}else{
|
} else {
|
||||||
v.status = STATUS_DISENABLE
|
v.status = STATUS_DISENABLE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1 +0,0 @@
|
|||||||
{"level":"debug","msg":"配置","time":"2022-12-12 00:39:12","场景":[{"id":"551993000","name":"场景1","desc":"2132","callers":[{"id":"551993000_1670771588149928000","name":"232","key":"1"},{"id":"551993000_1670776426358376000","name":"好友推荐","key":"friend.randlist"}],"status":1},{"id":"376159000","name":"场景2"},{"id":"42611000","name":"场景3"}]}
|
|
@ -216,9 +216,9 @@ func (mw *MainWindow) sceneContainer() {
|
|||||||
sceneItemList.Reset()
|
sceneItemList.Reset()
|
||||||
logrus.WithField("场景", mw.config.Scenes).Debug("配置")
|
logrus.WithField("场景", mw.config.Scenes).Debug("配置")
|
||||||
for _, v := range mw.config.Scenes {
|
for _, v := range mw.config.Scenes {
|
||||||
txt := fmt.Sprintf("%v", v.Name)
|
txt := fmt.Sprintf("%v %s", v.Name, v.Desc)
|
||||||
if v.Status == lib.STATUS_ENABLE {
|
if v.Status == lib.STATUS_ENABLE {
|
||||||
txt = fmt.Sprintf("%s *", v.Name)
|
txt = fmt.Sprintf("* %s %s", v.Name, v.Desc)
|
||||||
}
|
}
|
||||||
item := lib.Item{
|
item := lib.Item{
|
||||||
Id: cast.ToString(v.ID),
|
Id: cast.ToString(v.ID),
|
||||||
@ -434,7 +434,7 @@ func (mw *MainWindow) sceneContainer() {
|
|||||||
ShowTip(fmt.Sprintf("错误:%v", err.Error()))
|
ShowTip(fmt.Sprintf("错误:%v", err.Error()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
sceneItemList.Reset()
|
contentRender()
|
||||||
}
|
}
|
||||||
|
|
||||||
//添加用例事件
|
//添加用例事件
|
||||||
@ -474,21 +474,21 @@ func (mw *MainWindow) sceneContainer() {
|
|||||||
registerCallerList := *lib.NewItemList()
|
registerCallerList := *lib.NewItemList()
|
||||||
registerCallerList.OnSelFunc = func(id widget.ListItemID) {
|
registerCallerList.OnSelFunc = func(id widget.ListItemID) {
|
||||||
data := registerCallerList.CachedList.Items[id].Data
|
data := registerCallerList.CachedList.Items[id].Data
|
||||||
info, ok := data.(lib.CallerInfo)
|
info, ok := data.(lib.SceneInfo)
|
||||||
if !ok {
|
if !ok {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
callerNameEntry.Text = info.Desc
|
callerNameEntry.Text = info.Desc
|
||||||
callerKeyEntry.Text = info.Key
|
callerKeyEntry.Text = info.Name
|
||||||
callerForm.Refresh()
|
callerForm.Refresh()
|
||||||
}
|
}
|
||||||
registerCallerList.ListWidget = registerCallerList.CreateList()
|
registerCallerList.ListWidget = registerCallerList.CreateList()
|
||||||
registerCallerReload := func() {
|
registerCallerReload := func() {
|
||||||
for _, v := range mw.UIImpl.callers {
|
for _, v := range mw.UIImpl.callers {
|
||||||
info := v.ShowInfo()
|
info := v.Info()
|
||||||
item := lib.Item{
|
item := lib.Item{
|
||||||
Id: info.Key,
|
Id: info.Name,
|
||||||
Text: fmt.Sprintf("%s (%s)", info.Desc, info.Key),
|
Text: fmt.Sprintf("%s (%s)", info.Desc, info.Name),
|
||||||
Data: info,
|
Data: info,
|
||||||
}
|
}
|
||||||
registerCallerList.AddItem(item)
|
registerCallerList.AddItem(item)
|
||||||
@ -589,7 +589,7 @@ func (mw *MainWindow) ExportConfigWindow() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
}, mw.w)
|
}, mw.w)
|
||||||
exportWin.Resize(fyne.NewSize(300, 80))
|
exportWin.Resize(fyne.NewSize(500, 80))
|
||||||
exportWin.Show()
|
exportWin.Show()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -622,7 +622,7 @@ func (mw *MainWindow) ImportConfigWindow() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
}, mw.w)
|
}, mw.w)
|
||||||
importWin.Resize(fyne.NewSize(300, 80))
|
importWin.Resize(fyne.NewSize(500, 80))
|
||||||
importWin.Show()
|
importWin.Show()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user