Commit Graph

82 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
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
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
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
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
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
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
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
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
538347ebc7 Update DM disclaimer at top of page 2023-11-26 20:49:54 -08:00
30fbba2f55 Bugfix on mutualOpen localStorage setting 2023-11-18 15:44:13 -08:00
deb3bb616b Fix webcam freezing issues with mutualOpen video connections 2023-11-18 15:38:02 -08:00
8004edb7b8 CSS tweak for video zoom buttons 2023-10-29 14:27:09 -07:00
db819af8af Easy video zoom in/out buttons 2023-10-29 14:15:15 -07:00
2ac3e8e128 Fix graceful disconnect commands from the server 2023-10-23 19:05:02 -07:00
95c6c7859f Fix timestamp display 2023-10-22 16:07:58 -07:00
fea1d1c7b9 Prefers non-explicit and option to expressly remember closed videos 2023-10-14 12:24:30 -07:00
bdb5e6359b Various fixes and improvements
* Re-set user's status if they disconnect and reconnect
* Remove "(offline)" text next to ChatServer/ChatClient messages
* Make names and pictures in presence messages clickable to open profile
  cards
2023-10-14 11:01:58 -07:00
30c5538ce6 Don't auto-open expressly closed videos + other fixes
* If a user expressly closes a webcam (by clicking the 'X' button),
  record this intent so that the webcam will not auto-open in case the
  "auto-open my viewer's camera" happens again. Only clear the expressly
  close intent when the user expressly clicks the video button on the
  Who List to open someone's camera back up.
* Fix some bugs around booting and muting from cameras:
  * If you boot someone off your camera, you can not open THEIR camera
    anymore (similar to muting them)
  * When opening a user who auto-opens your camera back: do not attach
    your local video if you are an Admin and you have previously
    muted/booted that user from your camera.
  * Draw the slash mark over videos that you can not re-open because you
    had booted that user off your camera.
2023-10-10 18:45:00 -07:00
7ecea89e03 Bugfix 2023-10-08 12:24:19 -07:00
cb2975edca Emoji icon in profile cards 2023-10-08 12:23:11 -07:00
ef79b2aa9b Bugfix with file sending 2023-10-08 11:55:56 -07:00