-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtransform.py
More file actions
59 lines (46 loc) · 2.07 KB
/
transform.py
File metadata and controls
59 lines (46 loc) · 2.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from datetime import datetime
from models import Session, VideoReviewSheetItem
def session_to_video_review_sheet_item(session: Session) -> VideoReviewSheetItem:
is_keynote = session.session_type.lower() == "keynote"
is_panel = session.session_type.lower() == "panel"
if session.speaker_names is None or is_panel:
youtube_title = f"EuroPython 2025 — {session.title}"
else:
if is_keynote:
title_with_speakers = f"Keynote: {session.title} — {session.speaker_names}"
else:
title_with_speakers = f"{session.title} — {session.speaker_names}"
# YouTube titles are limited to 100 characters,
# so we omit the speaker names if the title is too long
youtube_title = (
title_with_speakers if len(title_with_speakers) <= 100 else session.title
)
if is_keynote:
header_line = f"[EuroPython 2025 — Keynote — {session.room} at {datetime.strftime(session.start, '%Y-%m-%d')}]"
else:
header_line = f"[EuroPython 2025 — {session.room} at {datetime.strftime(session.start, "%Y-%m-%d")}]"
if session.speaker_names:
title_line = f"{session.title} by {session.speaker_names}"
else:
title_line = session.title
youtube_description = f"""\
{header_line}
🎤 *{title_line}*
🔗 {session.website_url}
📝 Abstract:
{session.abstract}
---
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License: https://creativecommons.org/licenses/by-nc-sa/4.0/"""
video_review_sheet_item = VideoReviewSheetItem(
session_code=session.code,
session_title=session.title,
session_speaker_names=session.speaker_names,
session_website_url=session.website_url,
session_date=session.session_date,
session_room=session.room,
session_start=session.start,
youtube_title=youtube_title,
youtube_description=youtube_description,
youtube_url=None, # TODO: fill this in
)
return video_review_sheet_item