29 lines
844 B
Python
29 lines
844 B
Python
from ics.alarm.audio import AudioAlarm
|
|
from ics.alarm.none import NoneAlarm
|
|
from ics.alarm.custom import CustomAlarm
|
|
from ics.alarm.display import DisplayAlarm
|
|
from ics.alarm.email import EmailAlarm
|
|
from ics.utils import get_lines
|
|
|
|
|
|
def get_type_from_action(action_type):
|
|
if action_type == "DISPLAY":
|
|
return DisplayAlarm
|
|
elif action_type == "AUDIO":
|
|
return AudioAlarm
|
|
elif action_type == "NONE":
|
|
return NoneAlarm
|
|
elif action_type == 'EMAIL':
|
|
return EmailAlarm
|
|
else:
|
|
return CustomAlarm
|
|
|
|
|
|
def get_type_from_container(container):
|
|
action_type_lines = get_lines(container, "ACTION", keep=True)
|
|
if len(action_type_lines) > 1:
|
|
raise ValueError("Too many ACTION parameters in VALARM")
|
|
|
|
action_type = action_type_lines[0]
|
|
return get_type_from_action(action_type.value)
|