Esempio n. 1
0
def parse_event_list_from_html(html):
    soup = BeautifulSoup(html, HTML_PARSER)
    event_list_divs = soup.select("#list")[0].find_all('div', recursive=False)

    event_list = list()
    for div in event_list_divs:
        name_tag = div.find("span", class_="eventname")
        if not name_tag:
            continue
        host_tag = div.find("span", class_="event_by")
        desc_tag = div.find("span", {"itemprop": "description"})
        start_date_tag = div.find("time", {"itemprop": "startDate"})
        end_date_tag = div.find("time", {"itemprop": "endDate"})
        # No idea why it's just 'name'
        location_tag = div.find("span", {"itemprop": "name"})

        event = Event()
        event.name = name_tag.string
        event.host = host_tag.string[HOST_NAME_START:]
        event.desc = desc_tag.string
        event.start_date = datetime_string_to_obj(
            start_date_tag['datetime'])
        event.end_date = datetime_string_to_obj(end_date_tag['datetime'])
        event.location = location_tag.string
        event_list.append(event)

    return event_list
Esempio n. 2
0
def google_format_to_event(src_event):
    event = Event()
    event.name = src_event.get('summary', '')
    event.location = src_event.get('location', '')
    event.desc = src_event.get('description', '')
    event.start_date = dateutil.parser.parse(src_event['start']['dateTime'])
    event.end_date = dateutil.parser.parse(src_event['end']['dateTime'])
    event.host = src_event.get('extendedProperties', {}).get('shared', {}).get('host', '')
    return event