OpenSlides/openslides/mediafiles/projector.py

41 lines
1.1 KiB
Python
Raw Normal View History

2018-12-23 11:05:38 +01:00
from typing import Any, Dict
2019-02-15 12:01:16 +01:00
from ..utils.projector import (
AllData,
ProjectorElementException,
register_projector_slide,
)
2018-12-23 11:05:38 +01:00
# Important: All functions have to be prune. This means, that thay can only
# access the data, that they get as argument and do not have any
# side effects. They are called from an async context. So they have
# to be fast!
2019-01-06 16:22:33 +01:00
def mediafile_slide(all_data: AllData, element: Dict[str, Any]) -> Dict[str, Any]:
2018-12-23 11:05:38 +01:00
"""
Slide for Mediafile.
"""
2019-02-15 12:01:16 +01:00
mediafile_id = element.get("id")
if mediafile_id is None:
raise ProjectorElementException("id is required for mediafile slide")
try:
mediafile = all_data["mediafiles/mediafile"][mediafile_id]
except KeyError:
raise ProjectorElementException(
f"mediafile with id {mediafile_id} does not exist"
)
return {
"path": mediafile["mediafile"]["name"],
"type": mediafile["mediafile"]["type"],
"media_url_prefix": mediafile["media_url_prefix"],
}
def register_projector_slides() -> None:
register_projector_slide("mediafiles/mediafile", mediafile_slide)