Skip to content

Commit 0cc82ea

Browse files
committed
Add 2023
1 parent 87d4efd commit 0cc82ea

File tree

5 files changed

+22
-63
lines changed

5 files changed

+22
-63
lines changed

.github/workflows/deploy.yml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@ name: Deploy to static server
33
on:
44
push:
55
branches:
6-
- ep2024
7-
- ep2025
8-
schedule:
9-
- cron: "*/10 * * * *" # every 10 minutes
6+
- ep2023
107
workflow_dispatch:
118

129
jobs:
@@ -31,12 +28,12 @@ jobs:
3128
run: make deps/install
3229

3330
- name: Download data
34-
run: uv run make download EXCLUDE="schedule" > /dev/null 2>&1
31+
run: uv run make download > /dev/null 2>&1
3532
env:
3633
PRETALX_TOKEN: ${{ secrets.PRETALX_TOKEN }}
3734

3835
- name: Transform data
39-
run: uv run make transform EXCLUDE="schedule" > /dev/null 2>&1
36+
run: uv run make transform > /dev/null 2>&1
4037

4138
- name: Setup SSH
4239
uses: webfactory/[email protected]

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Variables for the project
22
# =========================
3-
CONFERENCE ?= ep2025
3+
CONFERENCE ?= ep2023
44
DATA_DIR ?= ./data/public/$(CONFERENCE)/
55

66
# Variables for remote host

src/config.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66

77
class Config:
8-
event = "europython-2025"
9-
event_dir_name = "ep2025"
8+
event = "europython-2023"
9+
event_dir_name = "ep2023"
1010
project_root = Path(__file__).resolve().parents[1]
1111
raw_path = Path(f"{project_root}/data/raw/{event_dir_name}")
1212
public_path = Path(f"{project_root}/data/public/{event_dir_name}")

src/misc.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,16 @@
22

33

44
class SpeakerQuestion:
5-
affiliation = "Company/Organization/Educational Institution"
6-
homepage = "Social (Homepage)"
7-
twitter = "Social (X/Twitter)"
8-
bluesky = "Social (Bluesky)"
9-
linkedin = "Social (LinkedIn)"
10-
mastodon = "Social (Mastodon)"
11-
gitx = "Social (GitHub/GitLab)"
5+
affiliation = "Company / Institute"
6+
homepage = "Homepage"
7+
twitter_mastodon = "Twitter / Mastodon handle(s)"
8+
linkedin = "LinkedIn"
9+
gitx = "Github/Gitlab"
1210

1311

1412
class SubmissionQuestion:
15-
outline = "Outline"
16-
tweet = "Abstract as a short post (150 character max)"
17-
delivery = "My presentation can be delivered in-person"
13+
tweet = "Abstract as a tweet / toot"
14+
delivery = "My presentation can be delivered"
1815
level = "Expected audience expertise"
1916

2017

@@ -41,14 +38,17 @@ class Room(Enum):
4138
club_h = "Club H"
4239

4340
# Conference rooms
44-
forum_hall = "Forum Hall"
41+
forum_hall = "PyCharm (Forum Hall)"
4542
terrace_2a = "Terrace 2A"
4643
terrace_2b = "Terrace 2B"
4744
north_hall = "North Hall"
4845
south_hall_2a = "South Hall 2A"
4946
south_hall_2b = "South Hall 2B"
5047
exhibit_hall = "Exhibit Hall"
5148

49+
# Other rooms
50+
open_space = "Open Space"
51+
5252

5353
class EventType(Enum):
5454
SESSION = "session"

src/models/europython.py

Lines changed: 5 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,11 @@ def extract_answers(cls, values) -> dict:
5151
if answer.question_text == SpeakerQuestion.homepage:
5252
values["homepage"] = answer.answer_text
5353

54-
if answer.question_text == SpeakerQuestion.twitter:
55-
values["twitter_url"] = cls.extract_twitter_url(answer.answer_text)
56-
57-
if answer.question_text == SpeakerQuestion.mastodon:
58-
values["mastodon_url"] = cls.extract_mastodon_url(answer.answer_text)
59-
60-
if answer.question_text == SpeakerQuestion.bluesky:
61-
values["bluesky_url"] = cls.extract_bluesky_url(answer.answer_text)
54+
if answer.question_text == SpeakerQuestion.twitter_mastodon:
55+
if extracted := cls.extract_twitter_url(answer.answer_text):
56+
values["twitter_url"] = extracted
57+
elif extracted := cls.extract_mastodon_url(answer.answer_text):
58+
values["mastodon_url"] = extracted
6259

6360
if answer.question_text == SpeakerQuestion.linkedin:
6461
values["linkedin_url"] = cls.extract_linkedin_url(answer.answer_text)
@@ -164,41 +161,6 @@ def extract_linkedin_url(text: str) -> str | None:
164161

165162
return linkedin_url
166163

167-
@staticmethod
168-
def extract_bluesky_url(text: str) -> str | None:
169-
"""
170-
Extracts a Bluesky profile URL from the given text.
171-
Cleans the input and handles formats like:
172-
- username
173-
- bsky.app/profile/username
174-
- bsky/username
175-
- username.dev
176-
- @username
177-
- username.bsky.social
178-
"""
179-
cleaned = EuroPythonSpeaker._clean_social_input(text)
180-
if cleaned is None:
181-
print(f"Invalid Bluesky URL: {text}")
182-
return None
183-
184-
for marker in ("bsky.app/profile/", "bsky/"):
185-
if marker in cleaned:
186-
cleaned = cleaned.split(marker, 1)[1]
187-
break
188-
else:
189-
cleaned = cleaned.rsplit("/", 1)[-1]
190-
191-
if "." not in cleaned:
192-
cleaned += ".bsky.social"
193-
194-
bluesky_url = f"https://bsky.app/profile/{cleaned}"
195-
196-
if not re.match(r"^https://bsky\.app/profile/[\w\.-]+\.[\w\.-]+$", bluesky_url):
197-
print(f"Invalid Bluesky URL: {bluesky_url}")
198-
return None
199-
200-
return bluesky_url
201-
202164
@staticmethod
203165
def extract_gitx_url(text: str) -> str | None:
204166
"""

0 commit comments

Comments
 (0)