Closed kentcdodds closed 3 years ago
I would try postponing the second channel for as long as possible. For the community feeling, it's better to have a nice and busy stream channel, than to have multiple quiet rooms.
Does the bot need to be aware of the time slots to manage stream permissions in those moments? Or is that the responsibility for the streamers themselves? (don't stream when it's not your time)
I think the vibe I want is: "If the stream is open, then go ahead and stream whenever." Kinda like a room in the real-world. This is why having a few available rooms that could go concurrently could be useful. But maybe we can wait until that need arrises before we make multiple rooms.
That makes sense.
I've seen two needs within the community.
I think it's important to have a place for both. But without the ad-hoc screen sharing messing up the schedules of "community office hours".
I like the idea of having streaming rooms I saw other members stream in the past. It could be awesome to see the schedules somewhere so I can subscribe to what I like. Maybe is what Kent is saying but what I mean is to have a channel where streamers could write their schedules and I can subscribe with emoji to what I'm interested and be notified.
That would be cool indeed. Unfortunately, that would either require a bunch of new roles to manage or an external app, neither of which I personally have time to do 😬
I'm hoping we can start this out as simple as possible.
@marcosvega91 , maybe a command like ?announce-stream {iso date string}
or ?reserve-slot {iso date string}
, with max 2 weeks in advance? And the bot can update a sticky post in a #stream-schedule
channel that shows the schedule between {now}
and {now + 2 weeks}
? Would that fit the "as simple as possible" requirement? :innocent:
Mods can then keep an eye on the streamers, and see if they respect their timeslots and don't try to steal someone elses time.
Ah, and then when the time arrives, the bot can @-mention all the people who reacted to that stream announcement to let them know that the stream is starting.
Yes! So the members don't subscribe to a specific streamer, but to the "community streamers". That way the bigger streamers help the smaller ones grow as well.
Edit, or at least, if the bot keeps updating the one announcement message.
Alternative is to post a message per stream-announcement. And that way members can indeed subscribe to specific streams.
@marcosvega91 , maybe a command like
?announce-stream {iso date string}
or?reserve-slot {iso date string}
, with max 2 weeks in advance? And the bot can update a sticky post in a#stream-schedule
channel that shows the schedule between{now}
and{now + 2 weeks}
? Would that fit the "as simple as possible" requirement? :innocent:Mods can then keep an eye on the streamers, and see if they respect their timeslots and don't try to steal someone elses time.
Yes I like this idea :)
Yeah, I was thinking that every time a streamer uses the command ?schedule-stream
the bot creates a comment in the stream-schedule
channel (similar to the clubs command) and people can react to the ones they want to be notified about. Then, when the time comes, the bot can delete the message and notify everyone who's reacted to it with a ✋
.
Should be relatively simple I think.
?schedule-stream January 20th 3:00 PM - 8:00 PM MDT
Thoughts on that?
Could be useful to add also the subject, what do you think ?
@marcosvega91 definitely a subject! People want to know to what they subscribe.
Also, dumping this here, might become handy.
Ah yeah, indeed.
?schedule-stream "Migrating to Tailwind" on January 20th from 3:00 PM - 8:00 PM MDT
This would create the following comment:
📣 On January 20th from 3:00 PM - 8:00 PM MDT (<link to timezone conversion maybe>) @so-and-so will be live streaming "Migrating to Tailwind." React with ✋ to be notified when the time arrives.
And it could also auto-add a ✋ reaction from the bot to make it easier to add your own reaction.
Then as part of the bot's cleanup
phase (which happens every 5 seconds), it could check all the scheduled streams to see whether their time has passed and delete the message/notify the react-ors + the streamer.
For structured "streams" should we book the time-slot every week?
What about streaming to YouTube/Twitch at the same time? Is it allowed? If so, there could be a emoji on the comment showing which platforms the stream will be visible in.
Some people may be surprised if they join a stream in Discord and end up in a YouTube video.
@juhanakristian, that requires some setup from the streamer right?
Perhaps simply cover that by adding a notice to the "schedule channel"?
Please understand that streamers might record their video for republishing purposes. By joining their stream, you might become part of their cast.
Or something of that idea, but written by a native English speaker.
@smeijer Your're right, it would require some setup or the bot should support defining platforms in ?schedule-stream
. But I think a notice would probably be fine 👍
Yes to stream on different platforms the stream should configure its environment
Is someone want to work on this? Otherwise, I could give a look today :)
?schedule-stream January 20th 3:00 PM - 8:00 PM MDT
Does the bot have a recyclable datetime parser for this format already? I suspect the clubs bot only treats it as a string, not parsing the datetime object from the string... Since the notifications need to know the actual datetime, I vote for ISO format for timezone offset and duration - https://en.wikipedia.org/wiki/ISO_8601
=> 2020-01-20T15:30−07:00/2020-01-20T20:00−07:00
Is someone want to work on this? Otherwise, I could give a look today :)
Feel free to make a first version, and then use it to announce a live coding session for bugfixing / improving it 😂 I wouldn't know where to start on my own and not enough time to figure it out,, but if I won't be busy for the live bugfixing, I would like to join and see how it's done / help to brainstorm.
Does the bot have a recyclable datetime parser for this format already?
No, but that's why @smeijer suggested https://github.com/wanasit/chrono which I think could allow us to have this.
For structured "streams" should we book the time-slot every week?
I think we really should address this. I do want to keep this as simple as possible, but I think there are probably some folks who would like to have a regular schedule.
My thought is, let's start with the simple version that may require a little manual effort at first, then we'll know more about the needs and limitations and can go forward and iterate to a better solution.
Hm, do Discord bots have a persistence layer out of the box? E.g. to remember to notify people on scheduled time after we restart the bot for some updates..
They do not. All "persistence" we have so far with the bot is in the form of messages (in the onboarding channels, the active clubs channel, and private channels) or a gist (for the ?thanks
command). In this case, the plan is to have the bot check the scheduled streams channel for all messages for the scheduled streams on a regular interval (like it does currently for various purposes during what's called the "cleanup phase") and for any streams that are at (or past) their start time, it'll delete the message and notify all people who reacted to the message with ✋ (most likely via a message sent in the chat-with-bots
channel).
I don't think we'll need persistence here at the start. We may need it if we do a recurring schedule thing. Perhaps a github gist will be sufficient for that as well?
From the moderators room:
@smeijer said:
And I replied:
I'm curious what folks think. Here's what I'm thinking:
live-stream-notify
which only Streamers can comment in and everyone else sets their notification preferences so they know when a streamer comments that they're streaminglive-stream
which is where general live stream chat happensLive Stream
which is where the actual live stream can take placeIf we're worried about time collisions, we can make two or three of the
live-stream
andLive Stream
channel pairs. I don't think that would be a big deal.So the Streamer Role would be something you'd apply for somehow. We could have a channel for that. We'd just put together some rules and recommendations for people to follow.
What do folks think about this approach?