Commit Graph

17 Commits (master)

Author SHA1 Message Date
Noah 3424be2f4d Clear DMs history button 2024-04-11 23:28:35 -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 0e0aac991d Polling API for the chat room 2023-12-10 18:43:18 -08:00
Noah deb3bb616b Fix webcam freezing issues with mutualOpen video connections 2023-11-18 15:38:02 -08:00
Noah 1e702b0e1e Add channel logging feature 2023-11-11 14:59:49 -08:00
Noah 7373882abf Profile Modals + Misc Features
* Add profile modal popups and Webhook support to get more detailed user
  info from your website.
* Add "unboot" command, available in the profile modal.
2023-10-07 13:22:41 -07:00
Noah 2810169ce9 Volume sliders, fullscreen video, misc tweaks 2023-10-05 18:59:49 -07:00
Noah a1b0d2e965 Blocklist improvements + WebSocket timeout tweak 2023-09-30 12:32:09 -07:00
Noah cbfbcd768f Chat Setting Menu + Various Tweaks
* In place of the Help and Settings buttons, add a hamburger menu
  dropdown and place the links under there.
* Also in the dropdown is Close All Cameras and Mute All Cameras (if you
  have any cams open; the links are hidden if not)
* Also in the dropdown add a Logout button that just links to a new
  /logout route in order to unload the page and align with some users'
  expectations (not knowing closing out of the chat page was enough to
  log out of the room before)
* Bring back "(offline)" indicators when a user is no longer in the
  room.
2023-09-08 18:46:36 -07:00
Noah e728644a77 Port front-end over to Vue CLI (create-vue)
This commit makes an initial port of the front-end over to a proper Vue
CLI application. It seems to work from surface level testing.

Changes made:

* Rename web/static to public/static to place it into the Vue build path
  * Notes: web/static/js/BareRTC.js and web/templates/chat.html are now
    deprecated
* Rename web/static/js/sounds.js into src/lib/sounds.js making it a
  proper JavaScript module with exports.
* Fill out initial src/App.vue by copying and updating
  web/templates/chat.html and web/static/js/BareRTC.js into this module.
2023-09-06 17:15:02 -07:00
Noah 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
Noah 9c05af2c2e BareBot Chatbot Client 2023-08-13 19:21:27 -07:00
Noah 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
Noah b966f85ecc Spit and polish
* Track the window focus/blur events. Leaving the tab while in a channel
  now means you may still hear sound effects in that channel.
* Add a CORS JSON API /v1/statistics to get details from the server
  about who is online. The CORSHosts whitelist in the settings.toml
  limits domain access to the endpoint.
2023-02-09 23:03:06 -08:00
Noah d8de60c990 Volume Controls, Mute/Unmute Video
* Added a top panel to put your video controls in.
* Broadcaster can mute or unmute their own audio input.
* When viewing others' cams, buttons appear to control their video:
  * Their username is displayed in the corner.
  * Mute/unmute button to silence their audio.
  * "X" button to close their camera.
* Button to show what viewers are currently watching your camera.
* Add an "About" page and config for app branding.
* Add dark theme CSS for prefers-dark browsers.
2023-02-05 20:26:00 -08:00
Noah b627fe0ffa Initial commit 2023-01-10 22:38:48 -08:00