diff --git a/.env.template b/.env.template index a004f3b..d0b5d50 100644 --- a/.env.template +++ b/.env.template @@ -4,6 +4,10 @@ CALENDAR_EVENT_MAXIMUM= CALENDAR_CACHE_REFRESH= CALENDAR_TIMEZONE= +SLACK_MEETINGS_KEYWORD="" +SLACK_NONTECHNICAL_SEMINAR_KEYWORD="" +SLACK_TECHNICAL_SEMINAR_KEYWORD="" + SLACK_ALLOW_ANNOUNCEMENTS=false SLACK_ANNOUNCEMENT_CHANNEL= SLACK_ACTIVE_GROUP_ID= diff --git a/src/config.py b/src/config.py index 9c02091..d6ac12d 100644 --- a/src/config.py +++ b/src/config.py @@ -38,6 +38,10 @@ def _get_env_variable(name: str, default: str | None = None) -> str | Any: BASE_DIR: str = os.path.dirname(os.path.abspath(__file__)) +SLACK_MEETINGS_KEYWORD: str = _get_env_variable("SLACK_MEETINGS_KEYWORD", "meetings") +SLACK_NONTECHNICAL_SEMINAR_KEYWORD: str = _get_env_variable("SLACK_NONTECHNICAL_SEMINAR_KEYWORD", "non-technical") +SLACK_TECHNICAL_SEMINAR_KEYWORD: str = _get_env_variable("SLACK_TECHNICAL_SEMINAR_KEYWORD", "technical") + SLACK_ALLOW_ANNOUNCEMENTS: bool = ( _get_env_variable("SLACK_ALLOW_ANNOUNCEMENTS", "false") == "true" ) diff --git a/src/core/announcement_queue.py b/src/core/announcement_queue.py index 1756454..e874707 100644 --- a/src/core/announcement_queue.py +++ b/src/core/announcement_queue.py @@ -15,7 +15,12 @@ SLACK_ACTIVE_GROUP_ID, SLACK_FROSH_GROUP_ID, SLACK_MEETINGS_GROUP_ID, + SLACK_TEST_GROUP_ID, SLACK_ALLOW_ANNOUNCEMENTS, + + SLACK_TECHNICAL_SEMINAR_KEYWORD, + SLACK_NONTECHNICAL_SEMINAR_KEYWORD, + SLACK_MEETINGS_KEYWORD ) logger: Logger = getLogger(__name__) @@ -25,11 +30,6 @@ queued_announcement_id_cache: dict[str, asyncio.Task] = {} TEN_MINUTES = 60 * 10 -TECHNICAL_SEMINAR_KEYWORD: str = "technical" -STANDARD_SEMINAR_KEYWORD: str = "seminar" -MEETING_KEYWORD: str = "meeting" -TEST_KEYWORD: str = "test_gick" - MINUTES_BEFORE_EVENT_PING = 15 @@ -133,7 +133,7 @@ def check_for_announcement(event: dict[str, Any], time: datetime) -> None: loc = event.get("LOCATION", None) description = description.lower().strip() - if TECHNICAL_SEMINAR_KEYWORD.lower() in description: + if SLACK_NONTECHNICAL_SEMINAR_KEYWORD.lower() in description: if loc: queue_announcement( uid, @@ -148,7 +148,7 @@ def check_for_announcement(event: dict[str, Any], time: datetime) -> None: f" The Technical Seminar {title} will be happening in {MINUTES_BEFORE_EVENT_PING} minutes!", time, ) - elif STANDARD_SEMINAR_KEYWORD.lower() in description: + elif SLACK_TECHNICAL_SEMINAR_KEYWORD.lower() in description: if loc: queue_announcement( uid, @@ -163,7 +163,7 @@ def check_for_announcement(event: dict[str, Any], time: datetime) -> None: f" The Non-Technical Seminar {title} will be happening in {MINUTES_BEFORE_EVENT_PING} minutes!", time, ) - elif MEETING_KEYWORD.lower() in description: + elif SLACK_MEETINGS_KEYWORD.lower() in description: if loc: queue_announcement( uid, @@ -178,18 +178,15 @@ def check_for_announcement(event: dict[str, Any], time: datetime) -> None: f" The {title} directorship will be happening in {MINUTES_BEFORE_EVENT_PING} minutes!", time, ) - - -# elif TEST_KEYWORD.lower() in description: -# if loc: -# queue_announcement( -# uid, rec_id, f" testing in the {loc}!", time -# ) -# else: -# queue_announcement( -# uid, rec_id, f" testing!", time -# ) -# ) + elif "gick" in description: + if loc: + queue_announcement( + uid, rec_id, f" gick go to the {loc}!", time + ) + else: + queue_announcement( + uid, rec_id, f" hi gick!", time + ) # if TECHNICAL_SEMINAR_KEYWORD.lower() in description: # taskmanager.create_background_task(create_announcement_worker(