diff --git a/bridgev2/networkinterface.go b/bridgev2/networkinterface.go index 8a39c7f8..9bbcf897 100644 --- a/bridgev2/networkinterface.go +++ b/bridgev2/networkinterface.go @@ -18,6 +18,7 @@ import ( "go.mau.fi/util/ptr" "go.mau.fi/util/random" + "maunium.net/go/mautrix" "maunium.net/go/mautrix/bridgev2/database" "maunium.net/go/mautrix/bridgev2/networkid" "maunium.net/go/mautrix/event" @@ -294,6 +295,11 @@ type PortalBridgeInfoFillingNetwork interface { FillPortalBridgeInfo(portal *Portal, content *event.BridgeEventContent) } +type PersonalFilteringCustomizingNetworkAPI interface { + NetworkAPI + CustomizePersonalFilteringSpace(req *mautrix.ReqCreateRoom) +} + // ConfigValidatingNetwork is an optional interface that network connectors can implement to validate config fields // before the bridge is started. // diff --git a/bridgev2/space.go b/bridgev2/space.go index ae9013cb..f6d07922 100644 --- a/bridgev2/space.go +++ b/bridgev2/space.go @@ -172,6 +172,10 @@ func (ul *UserLogin) GetSpaceRoom(ctx context.Context) (id.RoomID, error) { // TODO remove this after initial_members is supported in hungryserv req.BeeperAutoJoinInvites = true } + pfc, ok := ul.Client.(PersonalFilteringCustomizingNetworkAPI) + if ok { + pfc.CustomizePersonalFilteringSpace(req) + } ul.SpaceRoom, err = ul.Bridge.Bot.CreateRoom(ctx, req) if err != nil { return "", fmt.Errorf("failed to create space room: %w", err)