Skip to content
Snippets Groups Projects
Commit c205dec3 authored by OndraRehounek's avatar OndraRehounek
Browse files

calendar: clear event description by bleach

parent b6b5ffe0
No related branches found
No related tags found
2 merge requests!480Release,!479calendar: clear event description by bleach
Pipeline #7777 passed
......@@ -2,6 +2,7 @@ import re
from operator import attrgetter
import arrow
import bleach
from django.conf import settings
from ics import Calendar
......@@ -32,6 +33,13 @@ def split_events(events):
return past, future
def set_event_description(event):
"""Clears even description from unwanted tags."""
description: str = event.get("description", "") or ""
event["description"] = bleach.clean(description, tags=["a", "br"], strip=True)
return event
def set_event_duration(event):
"""Sets duration for event."""
if event["all_day"]:
......@@ -50,10 +58,17 @@ def set_event_duration(event):
return event
def process_event(event):
"""Processes single event for use in Majak"""
event = set_event_duration(event)
event = set_event_description(event)
return event
def process_ical(source):
"""Parses iCalendar source and returns events as list of dicts. Returns
tuple of past and future events.
"""
events = parse_ical(source)
events = list(map(set_event_duration, events))
events = list(map(process_event, events))
return split_events(events)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment