@@ -41,8 +41,10 @@ func (fs *FeedServ) HandleMetadata(_ mautrix.EventSource, evt *event.Event) {
4141 log .Debug ().Msg ("Updated cached power levels" )
4242 case event .StateMember :
4343 userID := id .UserID (evt .GetStateKey ())
44- if feed .powers .GetUserLevel (userID ) > feed .powers .GetEventLevel (event .EventMessage ) {
45- profile := evt .Content .AsMember ()
44+ profile := evt .Content .AsMember ()
45+ if profile .Membership == event .MembershipLeave {
46+ delete (feed .authors , userID )
47+ } else if feed .powers .GetUserLevel (userID ) > feed .powers .GetEventLevel (event .EventMessage ) {
4648 feed .authors [userID ] = JSONFeedAuthor {
4749 Name : profile .Displayname ,
4850 URL : userID .URI ().MatrixToURL (),
@@ -95,8 +97,8 @@ func (fs *FeedServ) InitSyncFeed(feed *FeedConfig) {
9597 feed .powers = state [event .StatePowerLevels ]["" ].Content .AsPowerLevels ()
9698 feed .authors = make (map [id.UserID ]JSONFeedAuthor )
9799 for userID , level := range feed .powers .Users {
98- if level >= feed . powers . GetEventLevel ( event . EventMessage ) {
99- profile := state [ event . StateMember ][ userID . String ()]. Content . AsMember ()
100+ profile := state [ event . StateMember ][ userID . String ()]. Content . AsMember ()
101+ if level >= feed . powers . GetEventLevel ( event . EventMessage ) && profile . Membership != event . MembershipLeave {
100102 feed .authors [userID ] = JSONFeedAuthor {
101103 Name : profile .Displayname ,
102104 URL : userID .URI ().MatrixToURL (),
0 commit comments