alveusgg / extension

Twitch extension for Alveus Sanctuary, allowing stream viewers to learn more about the ambassadors at the sanctuary.
https://www.twitch.tv/alveussanctuary
Other
63 stars 15 forks source link

Localized schedule #164

Open Rauscher1 opened 3 months ago

Rauscher1 commented 3 months ago

I thought about this a while back because I saw people asking "what time is the collab" or "when is x". Since there already is a localized schedule on the alveus website, i thought it would be nice to have that in the extension so people have another way to see it. Also it could maybe show the channel the collab is happening on so people could just click a link in the extension and go to the collab.

I didn't have a lot of time in the past but i want to start testing on it locally in the next few weeks and see if it's possible. Still I'd imagine it would be a nice thing to have.

MattIPv4 commented 3 months ago

I suspect this might be rather complex to achieve as the schedule API on the site is tRPC, which the extension does not use nor have the schemas for. Open to ideas on how to go about this though.

Rauscher1 commented 3 months ago

Yea, I'm not even sure if it is possible but I'll definitely try around in my free time and see if it leads to something :)

pjeweb commented 3 months ago

I would also recommend checking with the current twitch rules for extensions. They might not allow linking to youtube content etc. Also might be worth to filter for alveus content only here (no maya projects), to keep it "clean" for other channels.

Not sure if we should ask Alveus first too, in case they do not want a schedule in there for collab channels - then maybe we need to split up the extensions ...

Making an API for it should be fairly easy. The TRPC procedure just wraps the db call pretty much with some input validation. You should be able to do the same in an api route.

We should consider the load this might produce on the site/db too. The current api takes the users local time as input, which makes it hard to cache. Maybe we need another approach for the extension that can be cached on a CDN.

MattIPv4 commented 3 months ago

If we do implement a new API endpoint, I would like the sure to move to using that as well, fwiw. I don't like having two endpoints that do the same.

Good call out about Twitch's rules. I believe they have restrictions on what you can link to (no competitors iirc) and also restrictions on using the word "Twitch" I think (which might be hard to solve given the free-form nature of calendar entries, if I am right about that restriction).

I think site/DB load should be fine from a perf perspective, but could start ramping up costs if there are 1-3k extensions refreshing a schedule every few minutes? We could make sure it only fetched if the schedule itself was specifically opened to avoid that though.

Rauscher1 commented 3 months ago

Yea, I can definitely see problems with Twitch. I'll try to get some kind of contact to answer if it would be allowed what I imagine and then provide their answer here.