feat: post all livestream URLs upfront instead of per-session#376
Merged
NMertsch merged 10 commits intoJul 21, 2026
Conversation
This method is analogous to `notify_sessions`, so it should be located next to it, instead of between `on_ready` and `cog_load`.
This method is analogous to `notify_sessions`, so it should be named similarly.
Like the schedule, the livestream URLs can change while the program is running. That's why we fetch them regularly. So the task `notify_livestreams` should run regularly, like `notify_sessions`.
The livestreams are fetched regularly (every 5 minutes). Let's just wait for the regular fetch instead of triggering a second one. Also, it might be that there really are no livestreams to fetch.
This change is quite pedantic, but I want to get this information from the livestream_connector exactly once. Otherwise, it could (theoretically) change between the first and second access.
Before adding this feature, the format was `Livestream: [YouTube](<URL>)`, using Markdown to display a lable instead of the plain URL. Let's keep it like that and only add the day.
`date.strftime('%A')` returns the "Weekday as locale’s full name" (quote from https://docs.python.org/3/library/datetime.html#format-codes).
We always want English output, even if the bot host is configured in another locale.
This is necessary for the next step: Only sending livestream URLs a day in advance. (A cleaner approach would be to extract the 'current time' logic into a separate service, but this approach doesn't cause much chaos, so it's okay.)
Also add the headline 'Channel for room {room_name}'.
NMertsch
approved these changes
Jul 21, 2026
Contributor
|
Hi @AmaanShikalgar, thank you for this contribution! I made a few changes to make it look and behave the way I imagined. The ticket was quite vague, so you could not know about most of these. This is the new behavior:
PS: Please don't ping open-source maintainers if they don't respond immediately. This is my hobby, not my job. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Closes #375
Posts all three days' livestream URLs upfront in each room's channel topic
(on bot startup), instead of only updating the topic with the current
day's URL right before that day's first session starts. This matches the
format requested in the issue:
Stream Wednesday: [URL]
Stream Thursday: [URL]
Stream Friday: [URL]
The old per-session topic overwrite in
notify_sessionshas been removed,since it would otherwise regress the topic back to a single URL.
Testing: ran pytest, ruff format, and ruff check locally on Windows.
71/72 tests pass. The one failure (test_pretix_connector.py::test_cache)
is pre-existing and unrelated — I confirmed it fails identically with my
changes stashed out, so it looks like a Windows-specific encoding issue
in the Pretix cache loading, unconnected to this PR.