Commit Graph

79 Commits

Author SHA1 Message Date
fd82a463f3 Deadlock detection, DND, and Frontend Fixes
* Deadlock detection: the chatbot handlers will spin off a background goroutine
  to ping DMs at itself and test for responsiveness. If the echoes don't return
  for a minute, issue a /api/shutdown command to the HTTP server to force a
  reboot.
* New admin API endpoint: /api/shutdown, equivalent to the operator '/shutdown'
  command sent in chat. Requires your AdminAPIKey to call it. Used by the chatbot
  as part of deadlock detection.
* Adjust some uses of mutexes to hopefully mitigate deadlocks a bit.
* Do Not Disturb: if users opt to "Ignore unsolicited DMs" they will set a DND
  status on the server which will grey-out their DM icon for other chatters.
* Bring back an option for ChatServer to notify you when somebody begins watching
  your camera (on by default).
* Automatically focus the message entry box when changing channels.
* Lower webcam resolution hints to 480p to test performance implications.
2023-08-29 15:54:40 -07:00
59fc04b99e Reduce Notification Spam; Unsolicited DMs Option; New SFX
* New "Misc" tab added to the Settings modal with options to reduce spam
  and improve privacy.
    * Opt in (or out) for public channel join/leave presence
      notifications
    * New option to auto-ignore unsolicited DMs
* New sound effects for Watched and Unwatched (your camera)
    * Reduces spam so ChatServer doesn't need to tell you every time
      somebody opens your camera.
* New spinner icon when opening someone else's camera.
    * If their cam takes a while to appear, the video button shows a
      spinner icon as feedback so we avoid ChatClient spam giving you
      acknowledgement of the cam trying to open.
2023-08-28 22:46:40 -07:00
c4f90fadd2 Message padding fix 2023-08-20 21:13:46 -07:00
8e25145bec New status options: Studying and Gaming 2023-08-19 11:16:20 -07:00
802f4d744c Attempt to show webcam devices before initial broadcast 2023-08-17 19:15:26 -07:00
664eeaa068 Refresh video devices on demand 2023-08-17 18:45:43 -07:00
0a4fa00087 Mouseover tooltips for message buttons 2023-08-16 22:42:51 -07:00
74aa9527cc UX improvement for send message button 2023-08-16 22:26:02 -07:00
9cbf9e664d Setting to collapse image shares by default 2023-08-14 19:59:35 -07:00
591775a34d Fix tooltip for emojis 2023-08-13 23:09:11 -07:00
2cfabaf251 Don't show report button on own messages 2023-08-12 23:39:51 -07:00
58ca6a818a CSS class fix 2023-08-12 23:11:16 -07:00
bb8fa33493 Some fixes 2023-08-12 23:09:46 -07:00
29cb7c5cc9 Fix emoji popup 2023-08-12 22:42:04 -07:00
05eb852bb9 Webhooks and Report Users
* Added support for Webhooks and you can configure a Report Message hook
  to let users report messages on chat.
* Add /reconfigure command to dynamically reload the server
  settings.toml
* TODO: documentation for the webhooks.
2023-08-12 21:35:41 -07:00
f7f188dde9 Flexbox CSS fixes for video panel 2023-08-11 18:52:24 -07:00
f8a1bed564 More status options and fixes 2023-08-11 18:37:33 -07:00
51905734e7 Bugfix on unMutualVideo on who list update 2023-08-11 18:02:29 -07:00
63889b6c6a Option to auto-mute your video by default 2023-08-11 17:11:32 -07:00
4ee6c106d2 Add live camera settings to the chat settings modal 2023-08-11 16:51:17 -07:00
69abf26e80 New status options + Tweak freeze video timeout 2023-08-10 20:01:38 -07:00
b3d4b375ed Video freeze detection + Other tweaks
* Color code usernames on video windows to be blue or red depending on
  their local cam explicit setting
* Attempt to detect freezes on RTCPeerConnection videos by registering a
  video onmute handler. If a freeze is detected, show a cyan mountain
  icon by their name. Clicking the icon will re-connect their video.
* Update the video buttons on the Who List to always re-connect video
  instead of toggling it opened and closed. The X buttons on videos are
  now how you close a video.
2023-08-08 17:51:52 -07:00
a6866bd129 Order the Who List by Logged-in Time 2023-08-06 21:06:27 -07:00
52b1271591 Emojis and gender flags for users 2023-08-05 19:38:04 -07:00
4fbf3e7d75 CSS fix 2023-08-05 12:16:15 -07:00
f59a1a6759 Ordering options for the Who List 2023-08-05 12:15:16 -07:00
029f25029d Cached Blocklist from your website
* New API endpoint: /api/blocklist where your site can pre-deliver muted
  username lists for users before they enter the chat.
* Image sharing in DMs is allowed if either party is an operator.
2023-07-30 10:32:08 -07:00
f3517bec87 No pictures shared over chat DMs 2023-07-27 22:29:56 -07:00
fbae93d4f9 DMs disclaimer banner 2023-07-27 20:40:16 -07:00
d80f67dd1e Increase idle threshold to 5 minutes 2023-07-23 15:49:04 -07:00
e111899404 Spit and polish
* Add a scrollback buffer option to the chat Settings to trim room history
  so your browser can manage its memory usage
* Update the wording that ChatServer sends to users when the /nsfw command
  has been used on them
* Fix the ordering of active DMs for Chromium browsers so the most recently
  updated DM thread moves to the top of the list
* Show an indicator on videos whether the person you watch also watches
  you back
* Fix the "X" button on the photo modal not functioning correctly
2023-07-22 18:30:45 -07:00
75c7511410 Kick off conflicting usernames + Frontend mobile fixes
* When JWT tokens are used to join the chat and the username conflicts:
  instead of renaming the new user to add a "2" it will disconnect the
  original login (sending a message that they have signed in somewhere
  else and are logged out now)
* When disconnected the text entry box will be greyed out.
* Improvements for the mobile user experience: if you're viewing the
  chat history panel and have unread messages or DMs, a number indicator
  appears on the channels button. It is grey for public channel messages
  or red if any of them are DMs
* Fix the emoji picker drop-down on the first messages of a DM thread
2023-07-17 20:38:07 -07:00
55b17f62c4 Add device picker for webcams and microphones to the settings modal 2023-07-09 12:33:02 -07:00
3a334a8d68 Remove alt text on avatars in case of broken images 2023-07-08 10:52:12 -07:00
b6881919ff Take back emojis and other small tweaks 2023-07-01 11:39:08 -07:00
0612f76979 Can click an emoji to upvote it 2023-06-30 21:55:08 -07:00
f985b0cf2b New emojis 2023-06-30 21:48:09 -07:00
5f4b14ecc4 Emoji reactions 2023-06-30 20:00:21 -07:00
2445d45d3f Video Status Bitflags + Improvements
* Consolidate all the Video flags (active, nsfw, mutual, mutualOpen)
  into a bitmask flag (single integer)
* New video flag for when the source has muted their video, to show a
  crossed out grey mic on their camera for other chatters
* Bugfixes around syncing the mute state for self and other videos when
  videos are opened, closed and opened again
* Profile pictures on the DMs list
2023-06-30 18:42:40 -07:00
b19a4821e4 Message Takebacks 2023-06-24 13:08:15 -07:00
a797bc45da Spit and polish
* Add a distinctly colored title and background for DM threads apart
  from the public channels
* On the Who List, the profile picture is clickable to open profile
  links
* Fix auto-scrolling issues: it won't autoscroll if the new message was
  in a different channel, and when toggling between channels always
  scroll back to the bottom of that channel
2023-06-24 11:12:02 -07:00
2da08aa67a You can not open the camera of someone you have muted 2023-06-14 21:06:57 -07:00
b767620699 Tweak unmute user UX 2023-06-14 20:45:54 -07:00
4be18ea3a2 Add TURN server support 2023-06-13 21:57:31 -07:00
92f1e7ba04 Show user display name on join events 2023-06-12 18:16:27 -07:00
50d7aea39d Chat style updates 2023-06-11 20:33:26 -07:00
58264515f9 Pop-out draggable video support 2023-04-19 22:00:31 -07:00
d6860160f4 Padding fix for message UI 2023-04-18 22:34:45 -07:00
219413ae6d Display names and WIP multiple camera support 2023-04-18 22:18:12 -07:00
45ab63cfba Remember video mutality prefs on localStorage 2023-03-31 20:25:53 -07:00