def populate_conference_days(conference): """ Populate conference with day instances """ # check parameter type if not isinstance(conference, Conference): raise TypeError("parameter conference should a Conference instance") if not isinstance(conference.days, int): raise TypeError("conference.days should be an integer") if not isinstance(conference.start, datetime): raise TypeError("conference.start should be a datetime instance") for i in range(0, conference.days): tmp_date = conference.start + timedelta(days=i) tmp_date_string = tmp_date.strftime("%Y-%m-%d") tmp_day = Day(tmp_date, tmp_date_string) conference.add_day(tmp_day)
def export(event_id): """Takes an event id and returns the event in pentabarf XML format""" event = EventModel.query.get(event_id) diff = event.ends_at - event.starts_at conference = Conference( title=event.name, start=event.starts_at, end=event.ends_at, days=diff.days if diff.days > 0 else 1, day_change="00:00", timeslot_duration="00:15", venue=event.location_name, ) dates = ( db.session.query(func.date(Session.starts_at, type_=Date)) # type_ needed for sqlite .filter_by(event_id=event_id).filter_by(state='accepted').filter( Session.deleted_at.is_(None)).order_by( asc(func.date(Session.starts_at))).distinct().all()) for date in dates: date = date[0] if date is None: continue # Cannot continue if date is missing day = Day(date=date) microlocation_ids = list( db.session.query(Session.microlocation_id).filter( func.date(Session.starts_at) == date).filter_by( state='accepted').filter( Session.deleted_at.is_(None)).order_by( asc(Session.microlocation_id)).distinct()) for microlocation_tuple in microlocation_ids: microlocation_id = microlocation_tuple[0] if microlocation_id: microlocation = Microlocation.query.get(microlocation_id) sessions = (Session.query.filter_by( microlocation_id=microlocation_id).filter( func.date(Session.starts_at) == date).filter_by( state='accepted').filter( Session.deleted_at.is_(None)).order_by( asc(Session.starts_at)).all()) room = Room(name=microlocation.name) for session in sessions: if session.ends_at is None or session.starts_at is None: duration = "" else: duration = format_timedelta(session.ends_at - session.starts_at) session_event = Event( id=session.id, date=session.starts_at, start=session.starts_at.strftime('%H:%M'), duration=duration, track=session.track.name, abstract=session.short_abstract, title=session.title, type='Talk', description=session.long_abstract, conf_url=url_for('v1.event_list', identifier=event.identifier), full_conf_url=url_for( 'v1.event_list', identifier=event.identifier, _external=True, ), released="True" if event.schedule_published_on else "False", ) for speaker in session.speakers: person = Person(id=speaker.id, name=speaker.name) session_event.add_person(person) room.add_event(session_event) day.add_room(room) conference.add_day(day) return conference.generate("Generated by " + get_settings()['app_name'])
city="Hannover") twitterHandles = {} if Path('cache/twitterhandles.json').is_file(): with open('cache/twitterhandles.json') as twitterFile: twitterData = json.load(twitterFile) for user in twitterData: if user["name"] in twitterHandles: print("WARNING: Found another twitter user with the same name", user["name"]) twitterHandles[user["name"]] = user["screen_name"] with open("cache/bibtag20-index.json") as file: data = json.load(file) for timestamp in sorted(data['groups']): day = Day(date=date.fromtimestamp(int(timestamp))) rooms = [ "Kuppelsaal", "Eilenriedehalle B", "Niedersachsenhalle A", "Niedersachsenhalle B", "Leibniz Saal", "Blauer Saal", "Roter Saal", "Konferenzraum 27/28", "Bonatz Saal", "Future Meeting Space A", "Future Meeting Space B", "Konferenzraum 07/09", "Konferenzraum 08/10", "Konferenzraum 11/13", "Konferenzraum 12/14", "Konferenzraum 15", "Konferenzraum 16", "Konferenzraum 17", "Konferenzraum 18", "Konferenzraum 19", "Konferenzraum 20", "Konferenzraum 21", "Konferenzraum 22", "Podium der Verbände", "Stand der Verbände", "Foyers", "Ausserhalb" ] differentRooms = [ x['room'] for x in data['sessions'][timestamp]
def export(event_id): """Takes an event id and returns the event in pentabarf XML format""" event = EventModel.query.get(event_id) diff = (event.ends_at - event.starts_at) conference = Conference(title=event.name, start=event.starts_at, end=event.ends_at, days=diff.days if diff.days > 0 else 1, day_change="00:00", timeslot_duration="00:15", venue=event.location_name) dates = (db.session.query(cast(Session.starts_at, DATE)) .filter_by(event_id=event_id) .filter_by(state='accepted') .filter(Session.deleted_at.is_(None)) .order_by(asc(Session.starts_at)).distinct().all()) for date in dates: date = date[0] day = Day(date=date) microlocation_ids = list(db.session.query(Session.microlocation_id) .filter(func.date(Session.starts_at) == date) .filter_by(state='accepted') .filter(Session.deleted_at.is_(None)) .order_by(asc(Session.microlocation_id)).distinct()) for microlocation_tuple in microlocation_ids: microlocation_id = microlocation_tuple[0] if microlocation_id: microlocation = Microlocation.query.get(microlocation_id) sessions = Session.query.filter_by(microlocation_id=microlocation_id) \ .filter(func.date(Session.starts_at) == date) \ .filter_by(state='accepted') \ .filter(Session.deleted_at.is_(None)) \ .order_by(asc(Session.starts_at)).all() room = Room(name=microlocation.name) for session in sessions: session_event = Event(id=session.id, date=session.starts_at, start=session.starts_at, duration=str(session.ends_at - session.starts_at) + "00:00", track=session.track.name, abstract=session.short_abstract, title=session.title, type='Talk', description=session.long_abstract, conf_url=url_for('v1.event_list', identifier=event.identifier), full_conf_url=url_for('v1.event_list', identifier=event.identifier, _external=True), released="True" if event.schedule_published_on else "False") for speaker in session.speakers: person = Person(id=speaker.id, name=speaker.name) session_event.add_person(person) room.add_event(session_event) day.add_room(room) conference.add_day(day) return conference.generate("Generated by " + get_settings()['app_name'])
def export(event_id): event = DataGetter.get_event(event_id) diff = (event.end_time - event.start_time) tz = event.timezone or 'UTC' tz = pytz.timezone(tz) conference = Conference(title=event.name, start=tz.localize(event.start_time), end=tz.localize(event.end_time), days=diff.days if diff.days > 0 else 1, day_change="00:00", timeslot_duration="00:15", venue=event.location_name) dates = (db.session.query(cast(Session.start_time, DATE)).filter_by( event_id=event_id).filter_by(state='accepted').filter( Session.deleted_at.is_(None)).order_by(asc( Session.start_time)).distinct().all()) for date in dates: date = date[0] day = Day(date=date) microlocation_ids = list( db.session.query(Session.microlocation_id).filter( func.date(Session.start_time) == date).filter_by( state='accepted').filter( Session.deleted_at.is_(None)).order_by( asc(Session.microlocation_id)).distinct()) for microlocation_id in microlocation_ids: microlocation_id = microlocation_id[0] microlocation = DataGetter.get_microlocation(microlocation_id) sessions = Session.query.filter_by(microlocation_id=microlocation_id) \ .filter(func.date(Session.start_time) == date) \ .filter_by(state='accepted') \ .filter(Session.deleted_at.is_(None)) \ .order_by(asc(Session.start_time)).all() room = Room(name=microlocation.name) for session in sessions: session_event = Event( id=session.id, date=tz.localize(session.start_time), start=tz.localize( session.start_time).strftime("%H:%M"), duration=format_timedelta(session.end_time - session.start_time), track=session.track.name, abstract=session.short_abstract, title=session.title, type='Talk', description=session.long_abstract, conf_url=url_for( 'event_detail.display_event_detail_home', identifier=event.identifier), full_conf_url=url_for( 'event_detail.display_event_detail_home', identifier=event.identifier, _external=True), released="True" if event.schedule_published_on else "False") for speaker in session.speakers: person = Person(id=speaker.id, name=speaker.name) session_event.add_person(person) room.add_event(session_event) day.add_room(room) conference.add_day(day) return conference.generate("Generated by " + get_settings()['app_name'])
def parse(string): root = ET.fromstring(string) conference_element = root.find('conference') conference = Conference( title=conference_element.find('title').text, start=datetime.strptime(conference_element.find('start').text, '%Y-%m-%d'), end=datetime.strptime(conference_element.find('end').text, '%Y-%m-%d'), days=int(conference_element.find('days').text), day_change=conference_element.find('day_change').text, city=conference_element.find('city').text, timeslot_duration=conference_element.find('timeslot_duration').text, venue=conference_element.find('venue').text, ) for day_element in root.findall('day'): day = Day( date=datetime.strptime(day_element.get('date'), '%Y-%m-%d'), index=int(day_element.get('index')) ) for room_element in day_element.findall('room'): room = Room(name=room_element.get('name')) for event_element in room_element.findall('event'): event = Event( id=int(event_element.get('id')), date=day.date, start=get_text(event_element, 'start'), duration=get_text(event_element, 'duration'), track=get_text(event_element, 'track'), abstract=get_text(event_element, 'abstract'), title=get_text(event_element, 'title'), type=get_text(event_element, 'type'), description=get_text(event_element, 'description'), conf_url=get_text(event_element, 'conf_url'), full_conf_url=get_text(event_element, 'conf_url'), level=get_text(event_element, 'level') ) persons_element = event_element.find('persons') for person_element in persons_element.findall('person'): person = Person( id=int(person_element.get('id')), name=person_element.text, ) event.add_person(person) links_element = event_element.find('links') if links_element: for link_element in links_element.findall('link'): link_url = link_element.get('href') if not event.video_url and ('mp4' in link_url or 'webm' in link_url or 'youtube' in link_url or 'avi' in link_url): event.video_url = link_url if not event.audio_url and ('mp3' in link_url or 'wav' in link_url or 'soundcloud' in link_url): event.audio_url = link_url if not event.slides_url and ('ppt' in link_url or 'pptx' in link_url or 'slide' in link_url): event.slides_url = link_url room.add_event(event) day.add_room(room) conference.add_day(day) return conference
def parse(string): root = ET.fromstring(string) conference_element = root.find('conference') conference = Conference( title=conference_element.find('title').text, start=datetime.strptime( conference_element.find('start').text, '%Y-%m-%d'), end=datetime.strptime( conference_element.find('end').text, '%Y-%m-%d'), days=int(conference_element.find('days').text), day_change=conference_element.find('day_change').text, city=conference_element.find('city').text, timeslot_duration=conference_element.find( 'timeslot_duration').text, venue=conference_element.find('venue').text, ) for day_element in root.findall('day'): day = Day(date=datetime.strptime(day_element.get('date'), '%Y-%m-%d'), index=int(day_element.get('index'))) for room_element in day_element.findall('room'): room = Room(name=room_element.get('name')) for event_element in room_element.findall('event'): event = Event(id=int(event_element.get('id')), date=day.date, start=get_text(event_element, 'start'), duration=get_text(event_element, 'duration'), track=get_text(event_element, 'track'), abstract=get_text(event_element, 'abstract'), title=get_text(event_element, 'title'), type=get_text(event_element, 'type'), description=get_text(event_element, 'description'), conf_url=get_text(event_element, 'conf_url'), full_conf_url=get_text( event_element, 'conf_url'), level=get_text(event_element, 'level')) persons_element = event_element.find('persons') for person_element in persons_element.findall('person'): person = Person( id=int(person_element.get('id')), name=person_element.text, ) event.add_person(person) links_element = event_element.find('links') if links_element: for link_element in links_element.findall('link'): link_url = link_element.get('href') if not event.video_url and ( 'mp4' in link_url or 'webm' in link_url or 'youtube' in link_url or 'avi' in link_url): event.video_url = link_url if not event.audio_url and ( 'mp3' in link_url or 'wav' in link_url or 'soundcloud' in link_url): event.audio_url = link_url if not event.slides_url and ( 'ppt' in link_url or 'pptx' in link_url or 'slide' in link_url): event.slides_url = link_url room.add_event(event) day.add_room(room) conference.add_day(day) return conference
def export(event_id): event = DataGetter.get_event(event_id) diff = (event.end_time - event.start_time) tz = event.timezone or 'UTC' tz = pytz.timezone(tz) conference = Conference(title=event.name, start=tz.localize(event.start_time), end=tz.localize(event.end_time), days=diff.days if diff.days > 0 else 1, day_change="00:00", timeslot_duration="00:15", venue=event.location_name) dates = (db.session.query(cast(Session.start_time, DATE)) .filter_by(event_id=event_id) .filter_by(state='accepted') .filter(Session.deleted_at.is_(None)) .order_by(asc(Session.start_time)).distinct().all()) for date in dates: date = date[0] day = Day(date=date) microlocation_ids = list(db.session.query(Session.microlocation_id) .filter(func.date(Session.start_time) == date) .filter_by(state='accepted') .filter(Session.deleted_at.is_(None)) .order_by(asc(Session.microlocation_id)).distinct()) for microlocation_id in microlocation_ids: microlocation_id = microlocation_id[0] microlocation = DataGetter.get_microlocation(microlocation_id) sessions = Session.query.filter_by(microlocation_id=microlocation_id) \ .filter(func.date(Session.start_time) == date) \ .filter_by(state='accepted') \ .filter(Session.deleted_at.is_(None)) \ .order_by(asc(Session.start_time)).all() room = Room(name=microlocation.name) for session in sessions: session_event = Event(id=session.id, date=tz.localize(session.start_time), start=tz.localize(session.start_time).strftime("%H:%M"), duration=format_timedelta(session.end_time - session.start_time), track=session.track.name, abstract=session.short_abstract, title=session.title, type='Talk', description=session.long_abstract, conf_url=url_for('event_detail.display_event_detail_home', identifier=event.identifier), full_conf_url=url_for('event_detail.display_event_detail_home', identifier=event.identifier, _external=True), released="True" if event.schedule_published_on else "False") for speaker in session.speakers: person = Person(id=speaker.id, name=speaker.name) session_event.add_person(person) room.add_event(session_event) day.add_room(room) conference.add_day(day) return conference.generate("Generated by " + get_settings()['app_name'])