Commit Graph

251 Commits (master)

Author SHA1 Message Date
Noah 9c77bdb62e New Op commands and fixes with blocking admin users
Add moderation rules:

* You can apply rules in the settings.toml to enforce moderator restrictions on
  certain users, e.g. to force their camera to always be NSFW or bar them from
  sharing their webcam at all anymore.

Chat UI improvements around users blocking admin accounts:

* When a main website block is in place, the DMs button in the Who List shows
  as greyed out with a cross through, as if that user had closed their DMs.
* Admin users are always able to watch the camera of people who have blocked
  them. The broadcaster is not notified about the watch.

New operator commands:

* /cut username: to tell a user to turn off their webcam.
* /unmute-all: to lift all mutes on your side, e.g. so your moderator chatbot
  can still see public messages from users who have blocked it.
* /help-advanced: moved the more dangerous admin command documentation here.

Miscellaneous fixes:

* The admin commands now tolerate an @ prefix in front of usernames.
* The /nsfw command won't fire unless the user's camera is actually active and
  not marked as explicit.
2024-05-17 17:15:48 -07:00
Noah b74edd1512 A background graphic for videos to detect broken connections 2024-05-15 19:42:51 -07:00
Noah b82e8f651b Don't count unread messages for DebugChannel 2024-05-13 22:28:38 -07:00
Noah 747f4fd5d4 Let channels configure whether to permit photos 2024-05-13 18:51:54 -07:00
Noah 745c282650 Bugfix in isOp function 2024-05-10 22:24:07 -07:00
Noah e70b439cdd Admin command buttons in the profile modal 2024-05-10 21:32:32 -07:00
Noah b5bbbde784 Update the About page to remove Safari/iPad notes 2024-05-09 21:24:03 -07:00
Noah f36c83dbcc Add receive-only transceivers to remove Apple compat mode
* WebRTC functionality is now 100% working as intended for Safari and
  iPad browsers!
* The legacy WebRTC API had properties like offerToReceiveVideo
  available on createOffer(), to set up a receive-only channel, but the
  modern WebRTC API had removed these and Safari only supports the
  modern API.
* The modern solution for the same feature is to add a recvonly
  transceiver to the connection in place of offering a local video/audio
  stream to share.
2024-05-08 12:44:15 -07:00
Noah f094213a34 Improve WebRTC connection for Safari browsers 2024-05-07 20:54:13 -07:00
Noah b8b53c65f3 Color improvement in dark theme 2024-04-13 14:55:03 -07:00
Noah 3424be2f4d Clear DMs history button 2024-04-11 23:28:35 -07:00
Noah d510ac791f Click names in video feeds to open their profile card 2024-04-09 17:57:37 -07:00
Noah 9932cb5a2c Fix DM buttons on light theme 2024-04-07 11:56:29 -07:00
Noah 93c4e12680 Theme fix for emoji picker popup 2024-04-06 16:59:23 -07:00
Noah a0786b2fa9 At-mention background on dark theme 2024-04-06 16:03:30 -07:00
Noah bef135fbd6 Background color fix on DMs 2024-04-06 16:01:32 -07:00
Noah ed82920de9 Dark mode color tweaks 2024-04-06 15:54:37 -07:00
Noah 92a376786d Update to Bulma CSS 1.0
* Update the CSS and add a theme selector to the Chat Settings to force a
  light or dark mode theme (default is automatic).
2024-04-06 14:35:52 -07:00
Noah f0dd1d952c Direct Message History
* Add support for storing DM history between users in a SQLite3 database.
* Opt-in by editing your settings.toml to set DirectMessageHistory/Enabled=true
* Retention days (default 90) will flush old DMs on app startup.
* On the front-end, DM history is checked when a DM thread is opened.
2024-03-29 17:48:01 -07:00
Noah 96d61614f4 Add DisconnectNow API endpoint 2024-03-15 15:59:42 -07:00
Noah c7ef254361 Disable right-click in image modal 2024-02-29 19:30:51 -08:00
Noah 2a0f8b0cdf Disable right-click on user shared images 2024-02-29 09:29:06 -08:00
Noah 5e68c99514 Update page title with unread DM count 2024-02-10 16:35:32 -08:00
Noah 206784e0b9 Make the X button on cameras more touchable 2024-01-27 13:15:58 -08:00
Noah e74f7297e6 Include DM context in reported messages 2024-01-20 15:17:02 -08:00
Noah 8e87c377e8 Apple compatibility mode for WebRTC
* Try a new strategy to get Apple (iPad/iPhone) webcams to connect.
* "Apple compatibility mode" setting: on by default if iPad/iPhone is
  detected or can be opted into in the chat settings Misc tab.
* In Apple compat mode: when you open someone else's webcam, you always
  attach your local video on the WebRTC offer. This would normally make
  your video auto-open on the remote side, but the previous commit
  updates the chat page to ignore offered video if you did not opt-in to
  auto-open your viewer's camera.
* This should satisfy the two-way video call limitation in Safari: the
  iPad always shares its video and gets video from the person they are
  watching.
* If the person they are watching did not auto-open your video: they
  ignore the attached video on your offer and don't display it.
2024-01-11 20:33:57 -08:00
Noah bf59a7b6c9 Auto-mute other users' webcam sound channels 2024-01-11 19:45:32 -08:00
Noah 27380ec558 Status Message overhaul 2023-12-30 14:50:52 -08:00
Noah ebf5b3f47e Fix image click handler and emoji popup 2023-12-22 21:59:23 -08:00
Noah 21797788a2 Disable cursor events on images (interferes with drag/drop) 2023-12-21 20:23:57 -08:00
Noah dffd432221 Share images by drag/drop onto page 2023-12-21 17:47:17 -08:00
Noah 449929b8d1 Fix mouse cursor over VIP webcam checkbox on broadcast modal 2023-12-21 14:13:52 -08:00
Noah aa162a5b7a Resync Mutes and Boots on reconnect to server 2023-12-21 14:11:37 -08:00
Noah 139f9ece70 Bugfix in WebRTC video stream handler 2023-12-18 17:59:35 -08:00
Noah f75ad32728 Ban command update, join/leave messages
* The /ban command doesn't require the target user to be online at the
  time of the ban.
* Update the presence messages so they will generally only go to the
  primary (first) public channel, and also to another public channel if
  the user is currently looking at one of the others.
2023-12-16 15:10:48 -08:00
Noah 264b8f2a46 Cleanup debug log 2023-12-10 18:44:18 -08:00
Noah 0e0aac991d Polling API for the chat room 2023-12-10 18:43:18 -08:00
Noah d57d41ea3a Abstract WebSocket client into library 2023-12-10 16:09:00 -08:00
Noah 00c6015148 Server-side IsVideoNotAllowed validation checks 2023-12-10 15:31:47 -08:00
Noah c3808bbe89 Fix a null pointer exception if a DM partner goes offline 2023-12-03 21:46:14 -08:00
Noah 538347ebc7 Update DM disclaimer at top of page 2023-11-26 20:49:54 -08:00
Noah 2cf4e5cc27 Logging bugfix 2023-11-25 18:36:38 -08:00
Noah 30fbba2f55 Bugfix on mutualOpen localStorage setting 2023-11-18 15:44:13 -08:00
Noah deb3bb616b Fix webcam freezing issues with mutualOpen video connections 2023-11-18 15:38:02 -08:00
Noah 356d2ddfa8 Null pointer exception fixes 2023-11-11 15:16:17 -08:00
Noah f0a6585af1 Bump config version 2023-11-11 15:06:17 -08:00
Noah 1e702b0e1e Add channel logging feature 2023-11-11 14:59:49 -08:00
Noah 8004edb7b8 CSS tweak for video zoom buttons 2023-10-29 14:27:09 -07:00
Noah db819af8af Easy video zoom in/out buttons 2023-10-29 14:15:15 -07:00
Noah 2ac3e8e128 Fix graceful disconnect commands from the server 2023-10-23 19:05:02 -07:00