@@ -132,7 +132,8 @@ func NewPuppet(option Option) (*Puppet, error) {
132132 if err != nil {
133133 return nil , err
134134 }
135- return & Puppet {
135+
136+ p := & Puppet {
136137 Option : option ,
137138 EventEmitter : events .New (),
138139 cacheMessagePayload : cacheMessage ,
@@ -141,7 +142,16 @@ func NewPuppet(option Option) (*Puppet, error) {
141142 cacheRoomPayload : cacheRoomPayload ,
142143 cacheRoomMemberPayload : cacheRoomMemberPayload ,
143144 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
145155}
146156
147157// MessageList message list
@@ -725,8 +735,8 @@ func (p *Puppet) dirtyPayloadFriendship(friendshipID string) {
725735 p .cacheFriendshipPayload .Remove (friendshipID )
726736}
727737
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 {
730740 switch payloadType {
731741 case schemas .PayloadTypeMessage :
732742 p .dirtyPayloadMessage (id )
@@ -760,3 +770,8 @@ func (p *Puppet) MessageMiniProgram(messageID string) (*schemas.MiniProgramPaylo
760770 }
761771 return miniapp , nil
762772}
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