icoming 最近的时间轴更新
icoming

icoming

V2EX 第 599328 号会员,加入于 2022-10-27 19:45:31 +08:00
今日活跃度排名 11500
根据 icoming 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
icoming 最近回复了
另外,这玩意用 GPT4 会非常容易实现。。
@killerzhangsan "bot father 这里没有所谓的强制回复",是因为你执行了其它命令,服务端更新了新的状态。详细可以看我上面的代码
确实要靠自己维护当前输入的状态。比如用户绑定 uuid ,点击"绑定"按钮后,服务端保存当前操作为"waiting_for_uuid",接下来的输入就是绑定 uuid 。

对应的 golang 代码如下:
```go
var (
// 在状态管理中跟踪用户的操作状态。 以 chatID 为键,存储用户状态
usersState = make(map[int64]string)
)

// 用户状态的值
const (
stateWaitUUID = "waiting_for_uuid"
)


// ...

for update := range updates {
if update.Message == nil {
continue
}

logger.Info.Printf("%s [%s] %s", tag, update.Message.From.UserName, update.Message.Text)

switch update.Message.Text {
case "/bind":
// 处理用户绑定逻辑
// 更新用户操作状态为“等待 UUID”
usersState[update.Message.Chat.ID] = stateWaitUUID
reply := "😘 请输入您的 UUID"
sendMessage(reply, update.Message.Chat.ID)
case "/queryflow":
// 处理查询流量逻辑
handleQuery(update.Message)
default:
// 如果用户状态为等待 UUID ,则获取输入文本作为 UUID
if state, ok := usersState[update.Message.Chat.ID]; ok && state == stateWaitUUID {
// 在这里处理绑定逻辑,将 uuid 存储到数据库或进行其他操作
handleBinding(update.Message)
// 清除用户状态
delete(usersState, update.Message.Chat.ID)
break
}

// 处理其他文本消息
msg := "😪 请通过菜单选择操作"
sendMessage(msg, update.Message.Chat.ID)
}
}

```
搬瓦工 2C2G ,5 个人,也才 140/人,你怎么 230/人?
12 天前
回复了 sonnyclarity492 创建的主题 VPS 有推荐的香港优化 vps 吗
the plan 过几天不就好了
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2929 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms · UTC 14:39 · PVG 22:39 · LAX 06:39 · JFK 09:39
Developed with CodeLauncher
♥ Do have faith in what you're doing.