codeoverflow-org / nodecg-io

A NodeCG-bundle which implements Social Media API's in the NodeCG framework
https://nodecg.io
MIT License
108 stars 26 forks source link

Feature: Service for simpler overlays #136

Open NeoCortex97 opened 3 years ago

NeoCortex97 commented 3 years ago

Description

Since Overlays and alerts are a pretty common task when streaming nodecg-io should provide a service to make the simpler ones trivial to use. I think the following is a good basic feature set to be versatile, pretty simple to implement, but somewhat powerful:

Maybe some way to display the chat could be useful, but I am not really shure if that should be part of this service.

NeoCortex97 commented 3 years ago

I already thought about what would be a sensible way how this could be implemented:

I think that could be implemented by a graphic that has some javascript to drive the logic and maybe install the snippets it gets passed from the extension part. the extension could load the HTML snippets from one or more local file(s). Lists of messages and replicants could be passed by the extension as well.

The lists of replicants and the paths/filenames for snippets should be configured within the service config because the extension is most likely to load the snippets from disk and the replicants and messages can be set to different things depending on the setup.

But maybe it would be better if the graphic would be assembled by a bundler because it can package libraries too. starting watch mode could be a button in the dashboard tho. I don't really know if it would be better to use the CDN versions of libraries or if we are better off by using a zero-config bundler (e.g. parcel).

I think it would be best if the graphic is made to fill the whole screen similar to the way stream elements handles overlays

The chat could be implemented by messages that contain a list of messages and maybe some metainformation about each message. I don't think this should be a feature that belongs in an early version of this service since there are currently no services for processing chat messages and it is not really clear to me how we will go about handling chat. Live chat inherently is a rather busy place, so there will be rather large amounts of data to pass around and I don't know if messages play nicely with these amounts of data.