返回 DeepSeek-Reasonix
render_approval.go
根目录 / internal / bot / render_approval.go
1 package bot
2
3 import "reasonix/internal/event"
4
5 func (s *renderSink) emitApproval(approval event.Approval) {
6 if s.onApproval != nil {
7 s.onApproval(approval)
8 }
9 msg := OutboundMessage{
10 ConnectionID: s.connID,
11 Domain: s.domain,
12 ChatID: s.chatID,
13 ChatType: s.chatType,
14 Text: renderApprovalText(approval),
15 ReplyToMsgID: s.replyTo,
16 }
17 switch s.adapter.Platform() {
18 case PlatformQQ:
19 switch {
20 case isRecoveryApproval(approval):
21 msg.Keyboard = recoveryKeyboard(approval)
22 case isWriteAccessApproval(approval):
23 msg.Keyboard = writeAccessKeyboard(approval.ID)
24 default:
25 msg.Keyboard = approvalKeyboard(approval.ID)
26 }
27 case PlatformFeishu:
28 switch {
29 case isRecoveryApproval(approval):
30 msg.Card = recoveryCard(approval, s.chatType, s.userID)
31 case isWriteAccessApproval(approval):
32 msg.Card = writeAccessCard(approval, s.chatType, s.userID)
33 default:
34 msg.Card = approvalCard(approval, s.chatType, s.userID)
35 }
36 }
37 _ = s.send(msg)
38 }
39
39 lines GO