Compare commits

..

1 Commits

Author SHA1 Message Date
lebaudantoine bf0315ac51 wip troubleshoot 2026-01-05 11:43:39 +01:00
10 changed files with 39 additions and 34 deletions
@@ -24,6 +24,8 @@ class RecordingEventsService:
room_name = str(recording.room.id) room_name = str(recording.room.id)
print('$$ handle_update')
status_mapping = { status_mapping = {
api.EgressStatus.EGRESS_ACTIVE: "started", api.EgressStatus.EGRESS_ACTIVE: "started",
api.EgressStatus.EGRESS_ENDING: "saving", api.EgressStatus.EGRESS_ENDING: "saving",
@@ -31,12 +33,18 @@ class RecordingEventsService:
} }
recording_status = status_mapping.get(egress_status) recording_status = status_mapping.get(egress_status)
print('$$ recording_status')
print(recording_status)
if recording_status: if recording_status:
try: try:
print('$$ update')
utils.update_room_metadata( utils.update_room_metadata(
room_name, {"recording_status": recording_status} room_name, {"recording_status": recording_status}
) )
except utils.MetadataUpdateException as e: except utils.MetadataUpdateException as e:
print('$$ exception')
logger.exception("Failed to update room's metadata: %s", e) logger.exception("Failed to update room's metadata: %s", e)
@staticmethod @staticmethod
+15 -4
View File
@@ -118,12 +118,14 @@ class LiveKitEventsService:
except Exception as e: except Exception as e:
raise InvalidPayloadError("Invalid webhook payload") from e raise InvalidPayloadError("Invalid webhook payload") from e
room_name = data.room.name or data.egress_info.room_name if self._filter_regex and not self._filter_regex.search(data.room.name):
logger.info("Filtered webhook event for room '%s'", data.room.name)
if self._filter_regex and not self._filter_regex.search(room_name):
logger.info("Filtered webhook event for room '%s'", room_name)
return return
print('$$ data.event')
print(data.event)
print(data)
try: try:
webhook_type = LiveKitWebhookEventType(data.event) webhook_type = LiveKitWebhookEventType(data.event)
except ValueError as e: except ValueError as e:
@@ -131,6 +133,9 @@ class LiveKitEventsService:
f"Unknown webhook type: {data.event}" f"Unknown webhook type: {data.event}"
) from e ) from e
print("$$ webhook_type")
print(webhook_type)
handler_name = f"_handle_{webhook_type.value}" handler_name = f"_handle_{webhook_type.value}"
handler = getattr(self, handler_name, None) handler = getattr(self, handler_name, None)
@@ -143,6 +148,8 @@ class LiveKitEventsService:
def _handle_egress_updated(self, data): def _handle_egress_updated(self, data):
"""Handle 'egress_updated' event.""" """Handle 'egress_updated' event."""
print("$$ _handle_egress_updated")
egress_id = data.egress_info.egress_id egress_id = data.egress_info.egress_id
try: try:
recording = models.Recording.objects.get(worker_id=egress_id) recording = models.Recording.objects.get(worker_id=egress_id)
@@ -151,7 +158,11 @@ class LiveKitEventsService:
f"Recording with worker ID {egress_id} does not exist" f"Recording with worker ID {egress_id} does not exist"
) from err ) from err
print("$$ egress found")
egress_status = data.egress_info.status egress_status = data.egress_info.status
print('$$ egress_status')
print(egress_status)
self.recording_events.handle_update(recording, egress_status) self.recording_events.handle_update(recording, egress_status)
def _handle_egress_ended(self, data): def _handle_egress_ended(self, data):
+5
View File
@@ -276,6 +276,8 @@ async def update_room_metadata(
room = response.rooms[0] room = response.rooms[0]
existing_metadata = json.loads(room.metadata) if room.metadata else {} existing_metadata = json.loads(room.metadata) if room.metadata else {}
print('$$ existing_metadata')
print(existing_metadata)
if remove_keys: if remove_keys:
for key in remove_keys: for key in remove_keys:
@@ -283,6 +285,9 @@ async def update_room_metadata(
updated_metadata = {**existing_metadata, **metadata} updated_metadata = {**existing_metadata, **metadata}
print('$$ updated_metadata')
print(updated_metadata)
await lkapi.room.update_room_metadata( await lkapi.room.update_room_metadata(
UpdateRoomMetadataRequest( UpdateRoomMetadataRequest(
room=room_name, metadata=json.dumps(updated_metadata).encode("utf-8") room=room_name, metadata=json.dumps(updated_metadata).encode("utf-8")
@@ -66,11 +66,6 @@ export function ToastRecordingRequest({
name: participant?.name, name: participant?.name,
})} })}
{!options.isMenuOpen && ( {!options.isMenuOpen && (
<div
className={css({
marginLeft: '0.5rem',
})}
>
<Button <Button
size="sm" size="sm"
variant="text" variant="text"
@@ -81,7 +76,6 @@ export function ToastRecordingRequest({
> >
{t('openMenu')} {t('openMenu')}
</Button> </Button>
</div>
)} )}
</HStack> </HStack>
</StyledToastContainer> </StyledToastContainer>
@@ -161,7 +161,6 @@ export const ControlsButton = ({
fullWidth fullWidth
onPress={handle} onPress={handle}
isDisabled={isDisabled} isDisabled={isDisabled}
size="compact"
> >
{t('button.start')} {t('button.start')}
</Button> </Button>
@@ -29,10 +29,9 @@ export const RowWrapper = ({
className={css({ className={css({
width: '100%', width: '100%',
background: 'gray.100', background: 'gray.100',
paddingBlock: '0.5rem', padding: '8px',
paddingInline: '0',
display: 'flex', display: 'flex',
marginTop: '0.25rem', marginTop: '4px',
})} })}
> >
<div <div
@@ -41,7 +40,6 @@ export const RowWrapper = ({
display: 'flex', display: 'flex',
justifyContent: 'center', justifyContent: 'center',
alignItems: 'center', alignItems: 'center',
paddingInline: '0.25rem',
})} })}
> >
{/* fixme - doesn't handle properly material-symbols */} {/* fixme - doesn't handle properly material-symbols */}
@@ -49,11 +47,10 @@ export const RowWrapper = ({
</div> </div>
<div <div
className={css({ className={css({
flex: 6, flex: 5,
display: 'flex', display: 'flex',
alignItems: 'center', alignItems: 'center',
gap: '0.25rem', gap: '0.25rem',
paddingInlineEnd: '8px',
})} })}
> >
{children} {children}
@@ -31,12 +31,6 @@ export const buttonRecipe = cva({
borderRadius: 4, borderRadius: 4,
'--square-padding': '0', '--square-padding': '0',
}, },
compact: {
borderRadius: 4,
paddingX: '0.5',
paddingY: '0.625',
'--square-padding': '{spacing.0.625}',
},
}, },
square: { square: {
true: { true: {
@@ -49,7 +49,6 @@ backend:
{{- end }} {{- end }}
{{- end }} {{- end }}
LIVEKIT_API_URL: https://livekit.127.0.0.1.nip.io/ LIVEKIT_API_URL: https://livekit.127.0.0.1.nip.io/
LIVEKIT_WEBHOOK_EVENTS_FILTER_REGEX: "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
ALLOW_UNREGISTERED_ROOMS: False ALLOW_UNREGISTERED_ROOMS: False
FRONTEND_SILENCE_LIVEKIT_DEBUG: False FRONTEND_SILENCE_LIVEKIT_DEBUG: False
FRONTEND_SUPPORT: "{'id': '58ea6697-8eba-4492-bc59-ad6562585041', 'help_article_transcript': 'https://lasuite.crisp.help/fr/article/visio-transcript-1sjq43x', 'help_article_recording': 'https://lasuite.crisp.help/fr/article/visio-enregistrement-wgc8o0', 'help_article_more_tools': 'https://lasuite.crisp.help/fr/article/visio-tools-bvxj23'}" FRONTEND_SUPPORT: "{'id': '58ea6697-8eba-4492-bc59-ad6562585041', 'help_article_transcript': 'https://lasuite.crisp.help/fr/article/visio-transcript-1sjq43x', 'help_article_recording': 'https://lasuite.crisp.help/fr/article/visio-enregistrement-wgc8o0', 'help_article_more_tools': 'https://lasuite.crisp.help/fr/article/visio-tools-bvxj23'}"
@@ -99,7 +98,7 @@ backend:
# Extra volume mounts to manage our local custom CA and avoid to set ssl_verify: false # Extra volume mounts to manage our local custom CA and avoid to set ssl_verify: false
extraVolumeMounts: extraVolumeMounts:
- name: certs - name: certs
mountPath: /usr/local/lib/python3.13/site-packages/certifi/cacert.pem mountPath: /usr/local/lib/python3.12/site-packages/certifi/cacert.pem
subPath: cacert.pem subPath: cacert.pem
# Extra volumes to manage our local custom CA and avoid to set ssl_verify: false # Extra volumes to manage our local custom CA and avoid to set ssl_verify: false
@@ -51,7 +51,6 @@ backend:
LIVEKIT_API_URL: https://livekit.127.0.0.1.nip.io/ LIVEKIT_API_URL: https://livekit.127.0.0.1.nip.io/
LIVEKIT_FORCE_WSS_PROTOCOL: True LIVEKIT_FORCE_WSS_PROTOCOL: True
LIVEKIT_ENABLE_FIREFOX_PROXY_WORKAROUND: True LIVEKIT_ENABLE_FIREFOX_PROXY_WORKAROUND: True
LIVEKIT_WEBHOOK_EVENTS_FILTER_REGEX: "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
ALLOW_UNREGISTERED_ROOMS: False ALLOW_UNREGISTERED_ROOMS: False
FRONTEND_SILENCE_LIVEKIT_DEBUG: False FRONTEND_SILENCE_LIVEKIT_DEBUG: False
FRONTEND_SUPPORT: "{'id': '58ea6697-8eba-4492-bc59-ad6562585041', 'help_article_transcript': 'https://lasuite.crisp.help/fr/article/visio-transcript-1sjq43x', 'help_article_recording': 'https://lasuite.crisp.help/fr/article/visio-enregistrement-wgc8o0', 'help_article_more_tools': 'https://lasuite.crisp.help/fr/article/visio-tools-bvxj23'}" FRONTEND_SUPPORT: "{'id': '58ea6697-8eba-4492-bc59-ad6562585041', 'help_article_transcript': 'https://lasuite.crisp.help/fr/article/visio-transcript-1sjq43x', 'help_article_recording': 'https://lasuite.crisp.help/fr/article/visio-enregistrement-wgc8o0', 'help_article_more_tools': 'https://lasuite.crisp.help/fr/article/visio-tools-bvxj23'}"
@@ -71,7 +71,6 @@ backend:
{{- end }} {{- end }}
{{- end }} {{- end }}
LIVEKIT_API_URL: https://livekit.127.0.0.1.nip.io/ LIVEKIT_API_URL: https://livekit.127.0.0.1.nip.io/
LIVEKIT_WEBHOOK_EVENTS_FILTER_REGEX: "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
ALLOW_UNREGISTERED_ROOMS: False ALLOW_UNREGISTERED_ROOMS: False
FRONTEND_SILENCE_LIVEKIT_DEBUG: False FRONTEND_SILENCE_LIVEKIT_DEBUG: False
FRONTEND_SUPPORT: "{'id': '58ea6697-8eba-4492-bc59-ad6562585041'}" FRONTEND_SUPPORT: "{'id': '58ea6697-8eba-4492-bc59-ad6562585041'}"