Commit Graph

526 Commits

Author SHA1 Message Date
Zorchenhimer
44e8947329 Print the new modes and pins to the console
- When the access mode changes, print the new mode (and pin, if
  applicable) to the server console.
- Don't return an HTTP error when getting a session fails, just make a
  new session.
- Save pins to the settings
2019-03-23 18:08:22 -04:00
Zorchenhimer
7448876299 Merge branch 'master' into room-access-restrictions
# Conflicts:
#	chatcommands.go
#	common/chatcommands.go
#	connection.go
#	static/css/site.css
#	static/main.html
2019-03-23 17:03:28 -04:00
Zorchenhimer
d734ec110e Remove error'd temp connections
If there's an error writing to a temp connection, remove it from the
chatroom.
2019-03-23 16:54:05 -04:00
Zorchenhimer
88365b6df5 Add /iplist to admin commands
Lists all clients' UUID's, names, and IPs to console.
2019-03-23 16:53:36 -04:00
Zorchenhimer
6ef0d6f1a5 Add some debugging info to the client connection 2019-03-23 16:10:04 -04:00
joeyak
4864669df6 Add color checking and removed autoreconnect
closes issue #44
2019-03-23 15:37:48 -04:00
Zorchenhimer
8e39585968 Prevent some zero length stuff
Don't send zero length messages to the server, and ignore the /me
command without any arguments.
2019-03-23 15:16:02 -04:00
Zorchenhimer
c0d3731b84 Write correct IP in WriteData() error
Return the correct IP address on error during
chatConnection.WirteData().  If the server is behind a reverse proxy,
the connection object will have "127.0.0.1" as the remote address.
2019-03-23 14:53:41 -04:00
Zorchenhimer
f36a51bf2b Fix clearing the title
If no title is given with the /playing command, clear the title.
2019-03-23 14:53:29 -04:00
Zorchenhimer
62afc2eef9 Fixup ChatRoom.Broadcast()
Use an RW Mutex for chatConnection and use some goroutines when sending
data to clients in Broadcast().  This should prevent blocking on
unresponsive clients.
2019-03-23 14:50:47 -04:00
Zorchenhimer
0036dde265 Fix some typos
BroadCast() -> Broadcast()
startRmptServer() -> startRmtpServer()
2019-03-23 14:46:49 -04:00
Zorchenhimer
5c1fbe2a0b Write correct IP in WriteData() error
Return the correct IP address on error during
chatConnection.WirteData().  If the server is behind a reverse proxy,
the connection object will have "127.0.0.1" as the remote address.
2019-03-23 13:30:04 -04:00
joeyak
da21234fca Fix formatting of golang template to be consistant. 2019-03-23 08:49:38 -04:00
joeyak
a480c51454 Added reconnecting when websocket connection closes or errors
resolves #38
2019-03-22 23:32:52 -04:00
joeyak
970321b92a Adding example template of access requests and css 2019-03-22 22:38:58 -04:00
Zorchenhimer
82149cda0c Start adding room access restrictions
So far only PIN and Open modes are implemented.  It uses a session
cookie to store the validity of the pin/password.

The "Enter pin" page has some unreadable messages on it right now, but
it kinda works.
2019-03-22 21:39:55 -04:00
joeyak
bdfa75f8bc Added nick button and some cleanup
resolves #55
2019-03-21 23:01:21 -04:00
joeyak
e770c0cb62 Remove vscode setup section and rename main_wasm.go back to main.go 2019-03-21 21:34:16 -04:00
joeyak
53e103302a Make messages div scroll all the way to the bottom
resolves #18
2019-03-21 21:20:29 -04:00
joeyak
d13de4213f Fix chat width 2019-03-21 18:07:48 -04:00
joeyak
d3334fd58c Fix broken chat scrolling again 2019-03-21 16:48:59 -04:00
joeyak
fac6e285bd Add stream stats, minor changes in main, and adding ctrl+c handling
Stream statistics will now print when enabled in settings.json. There is messages in, messages out,
and total time running. The main function was changed so the server setups for the main and rtmp
are in separate functions, and both are started with their own goroutine. OS Interrupt catching was added,
and if stream stats is true, the stats will be printed.
2019-03-21 16:20:50 -04:00
joeyak
bc983d9ce3 Removing unused variables and increasing queue
The UsernameMaxLength and MinLength constants were removed because common.IsValidUsername checks that.
Changed queue sizes to 1000 because if 25 people are joined and 4 say a message at the same time
it results in 100 messages.
2019-03-21 16:05:14 -04:00
joeyak
5382c8b35d Add $ back into the readme 2019-03-21 14:06:06 -04:00
joeyak
0de457d28f Change highlighting to be a box instead of the user color
This allows users with hard to read colors to still see mentions
issue #48
2019-03-21 09:27:14 -04:00
joeyak
b2d62ad42b Add name highlighting
The server adds name highlighting to the message to be the same color as the user's tag.
resolves #48
2019-03-21 09:04:57 -04:00
joeyak
355f09bd48 Refactoring of ChatData
The processing of ChatData was changed so ChatData has a DataInterface object, which will be converted to a
ChatDataJSON that will have the DataInterface field converted to a json.RawMessage field. This change allows
greater customizability in the chat messages, since the Data field can still be read and modified.
2019-03-21 08:47:40 -04:00
joeyak
33163a3392 Fix some minor readme linting errors 2019-03-20 23:50:18 -04:00
joeyak
3915c3491c Add setup information for vscode 2019-03-20 23:45:22 -04:00
joeyak
f456da937b goimports fixed this 2019-03-20 21:25:01 -04:00
Zorchenhimer
990060fb31 Fix removing clients from the clients map
ChatRoom.delClient() wasn't updated to use UUID's instead of names.
The calling functions were passing in a name instead of a suid, so
attempting to delete the client silently failed.

Fixes #52
2019-03-20 20:41:11 -04:00
Zorchenhimer
f7b362519d Parse X-Forwarded-For header if provided
Parse the X-Forwarded-For header if it exists in the connection.  This
will allow bans to work if the server is sitting behind an Nginx
reverse proxy (that has been configured to add the header).

Also added a safe-guard to disallow bans for localhost so you cannot
accidentally ban everybody from connecting if the server is behind a
reverse proxy.

This should resolve #49
2019-03-20 16:57:29 -04:00
Zorchenhimer
7164f26f4e Add Cache-Control header to main.wasm response
Added the "Cache-Control" header to responses for the main.wasm file.
This should help with debugging and updates by telling the browser not
to cache the web assembly binary.
2019-03-20 10:59:28 -04:00
joeyak
53410bea40 Fixing scrollbar showing up again when notify box is mroe than one line 2019-03-20 00:08:08 -04:00
joeyak
1cfa040f7b Added color names as possible arguements for /color
Did some linting fixing too.
Closes #45
2019-03-19 22:56:01 -04:00
Zorchenhimer
49e997c5ff Move some stuff to MovieNight.common
Moved to common/utils.go:
- IsValidName() (function replaces direct calls to regexp.MatchString())
- RandomColor()

Moved to common/emotes.go:
- LoadEmotes()
2019-03-19 17:25:49 -04:00
Zorchenhimer
1c6c23da3e Add /nick command
Using this command will change the current user's nickname in chat.
It has an alias of /name.

An admin can force a name change by supplying the current name and a new
name.  If a name has been changed by an admin, that user can no longer
change their name (similar to forced color change).

Resolves #42
2019-03-19 17:13:20 -04:00
joeyak
7ce4c04942 Fixed autocomplete and positioning of suggestions
closes #41
2019-03-19 15:15:11 -04:00
Zorchenhimer
1f217c56a9 Replace favicon with something else
This is an icon that I threw together in a few minutes.  I don't want
my avatar as the favicon for this repository.

Also, the favicon.png has moved to the root directory as it is
something that is meant to be customized along with the settings that
is also in the root.
2019-03-18 11:21:17 -04:00
joeyak
e42c7d14cc Minor UI changes
Changed playing div to be outside of hidden and the color to be darker
Make the notifyBox a smaller font to not be as imposing
Changed joinbox to have a better style that matches the rest of the website
2019-03-17 22:35:07 -04:00
Zorchenhimer
0b05a7aea6 Add the /purge command
This is a moderator command that clears chat for everybody.

Resolves #5
2019-03-17 22:30:00 -04:00
joeyak
708056a86e Formatting html files 2019-03-17 17:31:48 -04:00
joeyak
417db785ce Add chat and video urls to readme 2019-03-17 02:01:13 -04:00
joeyak
7dca3be538 UI Changes
Changed UI to scale better
Moved info box into a hidden div that shows when the notifyBox is hovered
Added a color button that sends the /color command
Split client.js into separate files that the video and chat call separatly
The reload player button only shows up in chat when there is a video
added references to other code so code complete can work in js files

Fixes #40
2019-03-17 01:55:50 -04:00
Zorchenhimer
13f45e5b3a Link build status image to travis page 2019-03-16 22:35:48 -04:00
joeyak
c1dd9168b2 Update build scripts
Moved all the go gets into the makefile to add version wasm support
Added get to update all dependencies and removed unneeded make rules
2019-03-16 22:24:35 -04:00
Zorchenhimer
2ea02fcd27 Add Travis-CI 2019-03-16 21:57:41 -04:00
Zorchenhimer
b30202441a Add a limit to the title length
Added a limit to how long the title can be when set from the /playing
command.  The default value is 50 if it is not in the settings file or
if the value in the settings is below zero.

Resolves #43
2019-03-16 21:06:16 -04:00
Zorchenhimer
7dff29b152 Add user badges
Add badges for admins and mods.  Admins get a red badge, and mods get a
green one.

Normal users do not get a badge.
2019-03-16 18:11:27 -04:00
joeyak
1b8dd76a45 Add help button 2019-03-16 17:59:10 -04:00