@@ -132,7 +132,8 @@ func NewPuppet(option Option) (*Puppet, error) {
132
132
if err != nil {
133
133
return nil , err
134
134
}
135
- return & Puppet {
135
+
136
+ p := & Puppet {
136
137
Option : option ,
137
138
EventEmitter : events .New (),
138
139
cacheMessagePayload : cacheMessage ,
@@ -141,7 +142,16 @@ func NewPuppet(option Option) (*Puppet, error) {
141
142
cacheRoomPayload : cacheRoomPayload ,
142
143
cacheRoomMemberPayload : cacheRoomMemberPayload ,
143
144
cacheContactPayload : cacheContactPayload ,
144
- }, nil
145
+ }
146
+
147
+ p .On (schemas .PuppetEventNameDirty , func (i ... interface {}) {
148
+ payload , ok := i [0 ].(* schemas.EventDirtyPayload )
149
+ if ! ok {
150
+ return
151
+ }
152
+ _ = p .OnDirty (payload .PayloadType , payload .PayloadId )
153
+ })
154
+ return p , nil
145
155
}
146
156
147
157
// MessageList message list
@@ -725,8 +735,8 @@ func (p *Puppet) dirtyPayloadFriendship(friendshipID string) {
725
735
p .cacheFriendshipPayload .Remove (friendshipID )
726
736
}
727
737
728
- // DirtyPayload ...
729
- func (p * Puppet ) DirtyPayload (payloadType schemas.PayloadType , id string ) error {
738
+ // OnDirty clean cache
739
+ func (p * Puppet ) OnDirty (payloadType schemas.PayloadType , id string ) error {
730
740
switch payloadType {
731
741
case schemas .PayloadTypeMessage :
732
742
p .dirtyPayloadMessage (id )
@@ -760,3 +770,8 @@ func (p *Puppet) MessageMiniProgram(messageID string) (*schemas.MiniProgramPaylo
760
770
}
761
771
return miniapp , nil
762
772
}
773
+
774
+ // DirtyPayload base clean cache
775
+ func (p * Puppet ) DirtyPayload (payloadType schemas.PayloadType , id string ) error {
776
+ return p .OnDirty (payloadType , id )
777
+ }
0 commit comments