Skip to content

Commit b732b2d

Browse files
authored
Merge pull request #30 from sebimohr/29_fix-calendar-event-notification-setting
#29: Fix calendar event notification setting
2 parents 2317fb5 + 8b07c76 commit b732b2d

2 files changed

Lines changed: 42 additions & 14 deletions

File tree

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
OUTPUT_ICS_FILE=calendar.ics
2+
POSTS_DIR_NAME=_posts
3+
POSTS_FILE_EXTENSION=.md
4+
5+
DOTNET_UG_NAME="DotNet UserGroup Regensburg"
6+
DOTNET_UG_EMAIL="info@dotnet-regensburg.de"
7+
DOTNET_UG_ARCHIVE="https://dotnetregensburg.github.io/archive/"
8+
9+
ALARM_TRIGGER_MINUTES=-15
10+
11+
DEV_MODE=False
12+
LOG_LEVEL=INFO

scripts/calendar_generator/generate_calendar.py

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
SCRIPT_LOCATION = Path(__file__).parent
1818

1919
# Suppress the FutureWarning from ics library
20-
# NOTE: The warning arises in the store method and can be ignored safely
20+
# NOTE: The warning is raised in the `store` method and can be ignored safely
2121
warnings.filterwarnings(
2222
"ignore",
2323
message="Behaviour of str\\(Component\\) will change in version 0.9",
@@ -28,45 +28,61 @@
2828

2929
class CalendarGenerator:
3030
def __init__(self):
31-
self.logger = self._get_logger_config(logging.INFO)
31+
load_dotenv()
32+
self.DEV_MODE = os.getenv("DEV_MODE", "false").lower() == "true"
3233

33-
self.logger.debug("Initializing CalendarGenerator")
34+
log_level_str = os.getenv("LOG_LEVEL", "DEBUG").upper()
35+
level_mapping = logging.getLevelNamesMapping()
36+
log_level = level_mapping.get(log_level_str, logging.INFO)
3437

38+
self.logger = self._get_logger_config(log_level)
39+
self.logger.debug("Initializing CalendarGenerator")
3540
self.logger.debug("Loading environment variables")
36-
load_dotenv()
3741

3842
# Use GITHUB_WORKSPACE if available (GitHub Actions), otherwise fallback
3943
github_workspace = os.getenv("GITHUB_WORKSPACE")
44+
posts_dir_name = os.getenv("POSTS_DIR_NAME", "_posts")
4045
if github_workspace:
4146
# In GitHub Actions: use workspace root + _posts
42-
self.posts_dir = Path(github_workspace) / "_posts"
47+
self.posts_dir = Path(github_workspace) / posts_dir_name
4348
self.logger.debug(f"Using GitHub workspace: {github_workspace}")
4449
self.logger.debug(f"Posts directory set to: {self.posts_dir}")
4550
else:
4651
# Local development: use relative path
47-
self.posts_dir = Path(SCRIPT_LOCATION).joinpath("../../_posts")
52+
if not self.DEV_MODE:
53+
self.logger.warning("DEV_MODE is not enabled.")
54+
self.posts_dir = Path(SCRIPT_LOCATION).joinpath(f"../../{posts_dir_name}")
4855
self.logger.debug("Using relative path for local development")
4956
self.logger.debug(f"Posts directory set to: {self.posts_dir}")
5057

5158
# Log additional debugging info
5259
self.logger.debug(f"Posts directory exists: {self.posts_dir.exists()}")
5360
self.logger.debug(f"Posts directory resolved: {self.posts_dir.resolve()}")
5461

62+
self.md_files_extension = os.getenv("POSTS_FILE_EXTENSION", ".md")
5563
if self.posts_dir.exists():
56-
md_files = list(self.posts_dir.glob("*.md"))
57-
self.logger.debug(f"Found {len(md_files)} .md files in posts directory")
64+
md_files = list(self.posts_dir.glob(f"*{self.md_files_extension}"))
65+
self.logger.debug(
66+
f"Found {len(md_files)} {self.md_files_extension} files in posts directory"
67+
)
5868
else:
5969
self.logger.critical(
6070
f"Posts directory does not exist: {self.posts_dir}. Aborting"
6171
)
6272
sys.exit(1)
6373

6474
self.output_ics_file: Path = Path(os.getenv("OUTPUT_ICS_FILE", "calendar.ics"))
65-
self.organizer = Organizer(
66-
common_name="DotNet UserGroup Regensburg", email="info@dotnet-regensburg.de"
75+
76+
dotnet_ug_name = os.getenv("DOTNET_UG_NAME", "DotNet UserGroup Regensburg")
77+
dotnet_ug_email = os.getenv("DOTNET_UG_EMAIL", "info@dotnet-regensburg.de")
78+
self.organizer = Organizer(common_name=dotnet_ug_name, email=dotnet_ug_email)
79+
self.talks_url: str = os.getenv(
80+
"DOTNET_UG_ARCHIVE", "https://dotnetregensburg.github.io/archive/"
81+
)
82+
alarm_trigger_minutes = int(os.getenv("ALARM_TRIGGER_MINUTES", -15))
83+
self.alarm: DisplayAlarm = DisplayAlarm(
84+
trigger=datetime.timedelta(minutes=alarm_trigger_minutes)
6785
)
68-
self.talks_url: str = "https://dotnetregensburg.github.io/archive/"
69-
self.alarm: DisplayAlarm = DisplayAlarm(trigger=datetime.timedelta(minutes=15))
7086

7187
self.logger.debug("Finished loading environment variables successfully")
7288

@@ -131,10 +147,10 @@ def create_calendar(self) -> Calendar:
131147
return calendar
132148

133149
# Get all markdown files
134-
md_files = list(self.posts_dir.rglob("*.md"))
150+
md_files = list(self.posts_dir.rglob(f"*{self.md_files_extension}"))
135151

152+
# Print filenames for debugging if no *.md files found
136153
if len(md_files) == 0:
137-
# Try different patterns to debug
138154
all_files = list(self.posts_dir.rglob("*"))
139155
self.logger.debug(f"Total files in directory: {len(all_files)}")
140156
if len(all_files) > 0:

0 commit comments

Comments
 (0)