Prechádzať zdrojové kódy

Use hungryserv room delete endpoint if supported

Tulir Asokan 2 rokov pred
rodič
commit
75453d6371
3 zmenil súbory, kde vykonal 11 pridanie a 5 odobranie
  1. 1 1
      go.mod
  2. 2 2
      go.sum
  3. 8 2
      portal.go

+ 1 - 1
go.mod

@@ -12,7 +12,7 @@ require (
 	github.com/stretchr/testify v1.8.1
 	github.com/yuin/goldmark v1.5.3
 	maunium.net/go/maulogger/v2 v2.3.2
-	maunium.net/go/mautrix v0.12.4
+	maunium.net/go/mautrix v0.12.5-0.20230109101930-993bc5d49e3e
 )
 
 require (

+ 2 - 2
go.sum

@@ -68,5 +68,5 @@ maunium.net/go/mauflag v1.0.0 h1:YiaRc0tEI3toYtJMRIfjP+jklH45uDHtT80nUamyD4M=
 maunium.net/go/mauflag v1.0.0/go.mod h1:nLivPOpTpHnpzEh8jEdSL9UqO9+/KBJFmNRlwKfkPeA=
 maunium.net/go/maulogger/v2 v2.3.2 h1:1XmIYmMd3PoQfp9J+PaHhpt80zpfmMqaShzUTC7FwY0=
 maunium.net/go/maulogger/v2 v2.3.2/go.mod h1:TYWy7wKwz/tIXTpsx8G3mZseIRiC5DoMxSZazOHy68A=
-maunium.net/go/mautrix v0.12.4 h1:TAg+qkgZLlD2wvshFEuGCv7kADnAbQ6NZmTPu7wsXZI=
-maunium.net/go/mautrix v0.12.4/go.mod h1:NBN7/dch8xMnt4VEV9nucVOkzbP4PHr3agXJrFpM5AE=
+maunium.net/go/mautrix v0.12.5-0.20230109101930-993bc5d49e3e h1:AIiwndE6KFrobAJOqoOvWqdwt0KDlm+2zelKHq6ANjI=
+maunium.net/go/mautrix v0.12.5-0.20230109101930-993bc5d49e3e/go.mod h1:NBN7/dch8xMnt4VEV9nucVOkzbP4PHr3agXJrFpM5AE=

+ 8 - 2
portal.go

@@ -1086,7 +1086,6 @@ func (portal *Portal) sendStatusEvent(evtID id.EventID, err error) {
 		content.Reason, content.Status, _, _, content.Message = errorToStatusReason(err)
 		content.Error = err.Error()
 	}
-	content.FillLegacyBooleans()
 	_, err = intent.SendMessageEvent(portal.MXID, event.BeeperMessageStatus, &content)
 	if err != nil {
 		portal.log.Warnln("Failed to send message status event:", err)
@@ -1300,6 +1299,14 @@ func (portal *Portal) cleanup(puppetsOnly bool) {
 	if portal.MXID == "" {
 		return
 	}
+	intent := portal.MainIntent()
+	if portal.bridge.SpecVersions.UnstableFeatures["com.beeper.room_yeeting"] {
+		err := intent.BeeperDeleteRoom(portal.MXID)
+		if err == nil || errors.Is(err, mautrix.MNotFound) {
+			return
+		}
+		portal.log.Warnfln("Failed to delete %s using hungryserv yeet endpoint, falling back to normal behavior: %v", portal.MXID, err)
+	}
 
 	if portal.IsPrivateChat() {
 		_, err := portal.MainIntent().LeaveRoom(portal.MXID)
@@ -1309,7 +1316,6 @@ func (portal *Portal) cleanup(puppetsOnly bool) {
 		return
 	}
 
-	intent := portal.MainIntent()
 	members, err := intent.JoinedMembers(portal.MXID)
 	if err != nil {
 		portal.log.Errorln("Failed to get portal members for cleanup:", err)