Don't reload emotes directly into the global common.Emotes variable.
Instead, load them into a new variable and write that to common.Emotes
after the search for new emotes completes. Emotes should no longer
duplicate for each run of `/reloademotes`.
Also tweaked `/addemotes` to automatically reload emotes if nothing went
wrong downloading a new set.
Fix name highlighting when emotes are involved. When the emotes were
moved to subfolders the channel name was put into the URL of the emote
image. If a user with that name joined the chat, all of the emotes in
that folder highlighted the name in the URL, breaking the <img> tag.
This change removes the regex used to identify and replace the user's
name and instead works on whole words delimited by spaces.
* On some systems (currently hypothesized to be Firefox with
GTK+ using a system theme that has always-visible scrollbars with
a minimum size on their long axis), the suggestion menu starts off
visible and obscuring the chat message entry area, then moves to
obscuring the chat history area once it has been invoked. At no
time does it become invisible.
* Fix, by hiding the suggestion menu by default and explicitly
managing its visibility as it is updated.
This reworks how emotes are cached in relation to their physical
location on disk. Functionally, they should be the same from the user
perspective but it sets up some stuff that will make it easier to add
emotes from various sources.
* On some systems (currently hypothesized to be Firefox with
GTK+ using a system theme that has always-visible scrollbars with
a minimum size on their long axis), the suggestion menu starts off
visible and obscuring the chat message entry area, then moves to
obscuring the chat history area once it has been invoked. At no
time does it become invisible.
* Fix, by hiding the suggestion menu by default and explicitly
managing its visibility as it is updated.
Added a few more stats to keep track of:
- Max users in chat
- Stream start
Also added a `/stats` command to list the user count (current and max),
as well as uptime (sever and stream, separately).
Resolves#85
This is for #32.
This adds a starting framework for loading, caching, and executing
templates on the server and the client. Currently only the server uses
this functionality.
Temp connections were removed to reduce some complexity. Now a
connection is a full client, even before joining chat. A name is
required to be set to join chat and receive messages.
This change also removes the need for UUIDs on connections and clients.
Change the function signature for commands to return a string as well as
an error. Currently, errors are handled no differently than normal
response messages.
Also removed the redundant `/setpin` command.
- Tweaked the build to copy `settings_example.json` to `settings.json` if
it doesn't exist.
- Updated the readme to reflect changes with modules and the Makefile.
Merge in the room access restrictions changes into master. Currently,
only the PIN/Password method is implemented, and it's not all that
secure. Some more work needs to be done in planning before really
moving forward, but this should be fine for now.
Issue #28 should not be considered finished with this merge.
Added scrolling and more than 10 elements in div
if the user changes the current element, the div will scroll with it
added debug div to show the keys
closes#76