jaw-sh / stream-nexus

Unified multicast stream chat overlay.
27 stars 7 forks source link

Some Fixes for #6 #10

Closed cohlexyz closed 1 year ago

cohlexyz commented 1 year 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 1 year 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 1 year 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 1 year 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 1 year ago

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

cohlexyz commented 1 year 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 1 year 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 1 year 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 1 year 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 1 year 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 1 year 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 1 year 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 1 year 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.