diff --git a/src/core/schedules/schedulejson.py b/src/core/schedules/schedulejson.py index ed9e9d90ec0ac0a07ae09d8cab42cf55c22486ec..775e5a23bf37c760025722dc364978805672660b 100644 --- a/src/core/schedules/schedulejson.py +++ b/src/core/schedules/schedulejson.py @@ -46,6 +46,13 @@ class ScheduleJSONSupport(BaseScheduleSupport): kind = self.conf_value('kind') + def ensure_full_url(uri): + if not uri: + return None + if not uri.startswith('http') and not uri.startswith('//'): + return f'{host}{uri}' + return uri + return { 'version': schedule.version(), 'rooms': {r['name']: r for r in schedule.rooms()}, @@ -66,7 +73,7 @@ class ScheduleJSONSupport(BaseScheduleSupport): 'is_public': True, 'kind': kind, 'speakers': e.get('persons', []), - 'banner_image_url': f"{host}{e.get('logo')}" if e.get('logo') else None, + 'banner_image_url': ensure_full_url(e.get('logo')), 'additional_data': filter_additional_data(e, self.computed_data(e)), } for e in schedule.events()