66import betterproto
77
88from fishjam import FishjamClient , PeerOptions , Room , RoomOptions
9+ from fishjam ._openapi_client .models import RoomConfigRoomType
910from fishjam .events import ServerMessagePeerCrashed as PeerCrashed
1011from fishjam .events import ServerMessagePeerDeleted as PeerDeleted
1112from fishjam .events import ServerMessageRoomCrashed as RoomCrashed
@@ -38,8 +39,15 @@ def __init__(self, args: Namespace, logger: Logger):
3839 self .logger = logger
3940 self .config = args
4041
41- def get_peer_access (self , room_name : str , username : str ) -> PeerAccess :
42- room = self .__find_or_create_room (room_name )
42+ def get_peer_access (
43+ self ,
44+ room_name : str ,
45+ username : str ,
46+ room_type : RoomConfigRoomType | None ,
47+ ) -> PeerAccess :
48+ room = self .__find_or_create_room (
49+ room_name , room_type or RoomConfigRoomType .FULL_FEATURE
50+ )
4351 peer_access = self .peer_name_to_access .get (username )
4452 peer_in_room = self .__is_in_room (room , peer_access )
4553
@@ -63,7 +71,9 @@ def handle_notification(self, notification: betterproto.Message):
6371 case _:
6472 pass
6573
66- def __find_or_create_room (self , room_name : str ) -> Room :
74+ def __find_or_create_room (
75+ self , room_name : str , room_type : RoomConfigRoomType
76+ ) -> Room :
6777 if room_name in self .room_name_to_room_id :
6878 self .logger .info ("Room %s, already exists in the Fishjam" , room_name )
6979
@@ -74,6 +84,7 @@ def __find_or_create_room(self, room_name: str) -> Room:
7484 max_peers = self .config .max_peers ,
7585 webhook_url = self .config .webhook_url ,
7686 peerless_purge_timeout = self .config .peerless_purge_timeout ,
87+ room_type = room_type .value ,
7788 )
7889 new_room = self .fishjam_client .create_room (options = options )
7990
0 commit comments