jaw-sh / stream-nexus

Unified multicast stream chat overlay.
25 stars 8 forks source link

Some Fixes for #6 #10

Closed cohlexyz closed 10 months ago

cohlexyz commented 10 months ago

I also increased the brightness of the Username color for rumble subscribers a bit to try and make them more readable in superchats.

Before: Screenshot_20231021_233141

After: Screenshot_20231021_232554

Closes #6

cohlexyz commented 10 months ago

Since you're already here, I saw you lost all the rumble super-chats today, so I thought I'd try and at least get a basic version of a dashboard going:

image

It saves the donations using browser local storage, so they'll stick around until you manually delete them with the buttons at the top. You can also re-send them to the obs overlay with the "🔄" icon.

I can make a PR for this tomorrow if you want.

jaw-sh commented 10 months ago

I don't need it separated by source, I'd prefer it by chronological. Maybe if there's multiple ways of viewing it that's fine.

Whatever you're doing shouldn't be stored in JS btw. It needs to be accessible from the Rust server.

cohlexyz commented 10 months ago

I can merge it into one list, but why would the data need to be accessible from the server? I've added the dashboard as an /dashboard endpoint to the server, but the page is just a static page with some javascript connecting to the websocket and parsing the incoming donations.

jaw-sh commented 10 months ago

Because then I can do anything I want with it and do not rely on the overlay to manage data?

cohlexyz commented 10 months ago

I thought of the dashboard more as just a way to keep track of the donations for a stream. Would you want the data permanently stored on the server side via sqlite or something, or just temporarily in memory? For simplicity I'd probably just go with the latter for now.

y-a-t-s commented 10 months ago

Some sort of stored database would probably be a nice feature for collecting a streamer's long-term financial data. I can handle moving it from memory if Jersh gives the OK.

jaw-sh commented 10 months ago

Rust can easily store messages in memory for the lifetime of the program. An SQLite DB would be overkill, unless you really want to. But it needs some way to delineate between streams which is a lot of work.

y-a-t-s commented 10 months ago

But it needs some way to delineate between streams which is a lot of work.

I have some ideas as to how I could make this work. It doesn't seem hard to do as opposed to typical DB work, but I would rather prioritize more important things, if any.

jaw-sh commented 10 months ago

The #\1 issue I have right now is that I have no access to superchats on Rumble if anything happens to the tab the userscript is on. #\2 is that Odysee breaks because we need to switch to websocket scraping.

y-a-t-s commented 10 months ago

I can store fetched superchats into a vector or something to keep it independent of browser state. That doesn't seem like it would take me long to do. Ngl, I can't figure out Odysee's interface and actually find a stream to test with; maybe I'm just too dumb for alt tech.

TheRenegadist commented 10 months ago

I don't know nothing about no coding but I do know how to stream to Odysee, not sure your timezone but tomorrow when I get off work if you need a stream to use as a guinea pig I'd be happy to offer myself up. I get home around 3:30PM PDT Commiefornia time, if you need the help let me know and I'll go live.

cohlexyz commented 10 months ago

I can store fetched superchats into a vector or something to keep it independent of browser state. That doesn't seem like it would take me long to do.

If you add an endpoint where the dashboard can fetch the stored superchats I can switch from using browser storage to that.