m1k1o / neko

A self hosted virtual browser that runs in docker and uses WebRTC.
https://neko.m1k1o.net/
Apache License 2.0
5.95k stars 449 forks source link

Can chatroom be open by default for everyone entering room? #331

Open SpiderSuave opened 9 months ago

SpiderSuave commented 9 months ago

Hello and thank you for this project and your hard work. It is awesome and I love it.

Could we have please a config option or perhaps URL query that forces the chatroom to be open by default for everyone entering the room and an option for chat sounds to be off by default?

Also it would be great an option to move the three buttons for full screen, PiP and screen resolution to an empty space at the bottom where the controls are instead of over the display, or an option to just not show them at all.

Last but not least, an option for users to change their avatar.

The most important option is the first one for the host to make the chatroom open by default for everyone. Please if just that alone could be done it is much appreciated.

Thank you. I only ask for options that could be turned on/off so it could be kept how anyone prefers.

m1k1o commented 9 months ago

I think the best solution would be to allow setting all default values, that are stored in local storage, using URL query parameters. Because once you open chat, it will stay open because that setting is stored in browser's local storage.

The second point, it would be nice to have possibility to choose from multiple layouts, since for various use-cases there are different requirements.

Changing avatar, do you mean server-wide or per user? Since there are no accounts, I suppose this setting should be server-wide. I am open to a suggestion how to achieve this. Whether it should be an external API (such as gavatar), pattern for images (e.g. https://your-provider.org/avatar/{username}.png) or just custom color palette. This also opens new issue regarding ability to configure client. Currently only server can be configured using ENV.

SpiderSuave commented 9 months ago

Hello and thank you for your reply. Yes, any URL query like maybe ?chat=1 so that anyone clicking the invite link will immediately see the chatroom when they enter, and also maybe ?chat=2 to mean chatroom open with chat sounds turned off so they're not annoyed by all the beeping from all the typing in the room. For a watchparty it's all about the chat so it's very important to have that option of keeping the chatroom open by default.

Options for multiple layouts is a great idea. I just asked for now about those 3 buttons because there's free space at the bottom by the controls and it seems like the ideal place they should be instead of being a distraction over the video everyone's watching in a watchparty.

For the avatars, yes I meant per user, like a pic each user can upload that they'll have showing in the room throughout that session. I just mention avatars as an added nice touch. The most important though is the room option for the default open chatroom. That alone is much appreciated and thank you so much for your work.

mbattista commented 9 months ago

Open chat, chat sound and some layout Features are different then language setting, since those settings are only relevant after the login. So these settings could be stored on serverside and checked after login via the websocket.

The Avatar Feature would be possible, only needs lots of sanitation and checks, so it does not allow malicious content.

SpiderSuave commented 9 months ago

Thank you. It would be nice to have a config file in the Neko directory that one can edit with nano and fill with simple settings like chat=1, chatsound=0 so that the chatroom can be opened and chat sound can be set off as the default for all guests who enter the room.

Thank you again for your help.

Technetium1 commented 9 months ago

@m1k1o:

Whether it should be an external API (such as gavatar)

Please, not this external provider!! Gravatar is horrible. I have tried multiple times to register there, and they do not allow non-standard TLDs (or providers!) for emails, and support has no intention of fixing it.

If there are external providers, they should be on a whitelist basis to avoid IP grabbing. It should be somewhere public without tracking, like a direct link to imgur, tenor, giphy, quad.pe, or another established public host. These whitelisted domains should be able to be overridden in someway by the user.

If hostimg images locally, there should definitely be size and resolution limits.

m1k1o commented 9 months ago

@Technetium1 thanks for your input. Do not worry, i don't plan changing default only giving an opt-in option for configuration.

SpiderSuave commented 9 months ago

@Technetium1 thanks for your input. Do not worry, i don't plan changing default only giving an opt-in option for configuration.

Thank you. This app is already incredible, but any opt-in configuration where the host could modify the look and function of their room through a configuration file would make this the ultimate dream watchparty app, fully respecting anyone wanting to keep the default setup, but just having that as an option for those wanting their own unique setup.

For now please, just for my own setup here, could I get some pointers on how I can change something in the source code, compile, and have my room open with the chatroom by default for new users entering the room for the very first time so they don't have to click the hamburger button at the top corner to open the chatroom? (or whatever other way you suggest that I can accomplish this) Thank you for any suggestions and again thank you for your work on this project.