Commit Graph

260 Commits

Author SHA1 Message Date
9b8e7dc440 Vue modals to replace window.alert/window.confirm
Apparently some iPad browsers were having their local webcam freeze
after a window.confirm prompt was shown. This replaces all uses of
window.confirm/window.alert with an in-app modal.
2024-09-10 21:24:52 -07:00
d4b69311ae Blockable admin user support 2024-09-10 14:50:47 -07:00
49712ee966 Add install instructions 2024-06-21 22:36:43 -07:00
72b6c45583 Add playsinline to video elements for iPhone 2024-06-21 22:03:02 -07:00
4c9d207b62 Sound effect for public channel @mentions 2024-06-19 13:20:19 -07:00
147315fee2 Video z-index workaround for Safari
When the Safari browser puts a webcam video full-screen and then
returns, the z-index of the video was higher than the buttons and
controls normally overlaid on top of it.

Add a z-index:1 to the video controls to keep them on top after
returning from full screen. Similar: for popped-out draggable videos,
adding a z-index:1 allows the video to correctly sit on top of docked
videos without the docked video controls (zi:1) rendering above the
popped-out video when you overlap them.

Note: the z-index:1 is applied to popped-out and video controls, any
other combination (e.g. 1 for popped-out and 2 for controls) caused
controls of docked videos to render on top of popped-out ones when they
overlapped.
2024-06-13 14:28:29 -07:00
b011e36ddf Adjust dark webcam threshold 2024-05-27 20:08:32 +00:00
a536862a91 Dark video detection
* Add local detection for users who are broadcasting dark (e.g. mostly
  or completely black) video feeds from their local device.
* Every 5 seconds while the webcam is active, the average RGB color is
  sampled. If the average color value remains below 60 (out of 255) for
  two consecutive samples, the camera is stopped automatically.
2024-05-18 19:09:11 -07:00
fd36d09727 Update README for moderator commands 2024-05-17 20:47:19 -07:00
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
b74edd1512 A background graphic for videos to detect broken connections 2024-05-15 19:42:51 -07:00
b82e8f651b Don't count unread messages for DebugChannel 2024-05-13 22:28:38 -07:00
747f4fd5d4 Let channels configure whether to permit photos 2024-05-13 18:51:54 -07:00
745c282650 Bugfix in isOp function 2024-05-10 22:24:07 -07:00
e70b439cdd Admin command buttons in the profile modal 2024-05-10 21:32:32 -07:00
b5bbbde784 Update the About page to remove Safari/iPad notes 2024-05-09 21:24:03 -07:00
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
f094213a34 Improve WebRTC connection for Safari browsers 2024-05-07 20:54:13 -07:00
b8b53c65f3 Color improvement in dark theme 2024-04-13 14:55:03 -07:00
3424be2f4d Clear DMs history button 2024-04-11 23:28:35 -07:00
d510ac791f Click names in video feeds to open their profile card 2024-04-09 17:57:37 -07:00
9932cb5a2c Fix DM buttons on light theme 2024-04-07 11:56:29 -07:00
93c4e12680 Theme fix for emoji picker popup 2024-04-06 16:59:23 -07:00
a0786b2fa9 At-mention background on dark theme 2024-04-06 16:03:30 -07:00
bef135fbd6 Background color fix on DMs 2024-04-06 16:01:32 -07:00
ed82920de9 Dark mode color tweaks 2024-04-06 15:54:37 -07:00
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
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
96d61614f4 Add DisconnectNow API endpoint 2024-03-15 15:59:42 -07:00
c7ef254361 Disable right-click in image modal 2024-02-29 19:30:51 -08:00
2a0f8b0cdf Disable right-click on user shared images 2024-02-29 09:29:06 -08:00
5e68c99514 Update page title with unread DM count 2024-02-10 16:35:32 -08:00
206784e0b9 Make the X button on cameras more touchable 2024-01-27 13:15:58 -08:00
e74f7297e6 Include DM context in reported messages 2024-01-20 15:17:02 -08:00
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
bf59a7b6c9 Auto-mute other users' webcam sound channels 2024-01-11 19:45:32 -08:00
27380ec558 Status Message overhaul 2023-12-30 14:50:52 -08:00
ebf5b3f47e Fix image click handler and emoji popup 2023-12-22 21:59:23 -08:00
21797788a2 Disable cursor events on images (interferes with drag/drop) 2023-12-21 20:23:57 -08:00
dffd432221 Share images by drag/drop onto page 2023-12-21 17:47:17 -08:00
449929b8d1 Fix mouse cursor over VIP webcam checkbox on broadcast modal 2023-12-21 14:13:52 -08:00
aa162a5b7a Resync Mutes and Boots on reconnect to server 2023-12-21 14:11:37 -08:00
139f9ece70 Bugfix in WebRTC video stream handler 2023-12-18 17:59:35 -08:00
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
264b8f2a46 Cleanup debug log 2023-12-10 18:44:18 -08:00
0e0aac991d Polling API for the chat room 2023-12-10 18:43:18 -08:00
d57d41ea3a Abstract WebSocket client into library 2023-12-10 16:09:00 -08:00
00c6015148 Server-side IsVideoNotAllowed validation checks 2023-12-10 15:31:47 -08:00
c3808bbe89 Fix a null pointer exception if a DM partner goes offline 2023-12-03 21:46:14 -08:00
538347ebc7 Update DM disclaimer at top of page 2023-11-26 20:49:54 -08:00