* update message viz in db
* create admin endpoint to update message visibility
* convert UpdateMessageVisibility api to take in an array of IDs to change visibility on instead
* Support requesting filtered or unfiltered chat messages
* Handle UPDATE chat events on front and backend for toggling messages
* Return entire message with UPDATE events
* Remove the UPDATE message type
* Revert "Remove the UPDATE message type"
This reverts commit 3a83df3d492f7ecf2bab65e845aa2b0365d3a7f6.
* update -> visibility update
* completely remove messages when they turn hidden on VISIBILITY-UPDATEs, and insert them if they turn visible
* Explicitly set visibility
* Fix multi-id sql updates
* increate scroll buffer a bit so chat scrolls when new large messages come in
* Add automated test around chat moderation
* Add new chat admin APIs to api spec
* Commit updated API documentation
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
Co-authored-by: Owncast <owncast@owncast.online>
* Bump api spec version
* Do not panic on cpu monitoring error
* Centralize the socket disconnect logic and fire it also when socket errors occur. Hopefully closes#421
* Start cleaning up linter errors. For #357
* Fix unmarshalling NullTime values
* More linter fixes
* Remove commented code
* Move defer up
* Consolidate error check lines
* Move error check to make sure row iteration was successful
* Cleaner error check + do not recreate pipe if it exists
* Consolidate hashing to generate client id
* First pass at centralized database reference. Closes#282
* Add verbose logging option to launch.json
* Clear current broadcaster on stream end. Closes#285
* Fix typo in verbose launch args
* Add support for purging tailwind styles. For #224
* Don't need to pass db as param since it is stored
* Commit updated Javascript packages
Co-authored-by: Owncast <owncast@owncast.online>
* Variable '*' collides with imported package name
* Variable 'error' collides with builtin interface
* '*' may have 'nil' or other unexpected value as its corresponding error variable may be not 'nil'
* Render and sanitize chat messages server-side. Closes#235
* Render content.md server-side and return it in the client config
* Remove showdown from web project
* Update api spec
* Move example user content file
* Add support for ending the inbound stream. Closes#191
* Add a simple success response to API requests
* Connected clients API with geo details
* Post-rebase cleanup
* Make setting and reading geo details separate operations to unblock and speed up
* Rename file
* Fire geoip api call behind goroutine
* Add comment
* Post-rebase fixes
* Add support for the MaxMind GeoLite2 GeoIP database
* Spike: Ping YP service with instance details
* WIP: Add to the config to support YP
* Add YP response endpoint
* Handle YP errors. Use config. Off by default
* Show message about YP support on launch
* Add animated gif preview when generating thumb
* Increase quality of preview gif and only create it if YP is enabled
* Do not allow re-registration by clearing the key
* Make large and small logos actually structured
* Change log level
* Fix default YP service URL
* Point to default hostname
* Set default value for YP to false
* Send PONG responses to PINGs
* Split out client IDs for viewer counts vs. websocket IDs
* WIP username change event
* Display username changes
* Revert commented out code
* Add support for building from the current branch
* Fix PONG
* Make username changes have a unique ID
* Add a version param to js to cachebust
* Change placeholder when chat is disabled
* Use the /chat endpoint for bulk chat history population instead of websocket. For #47
* Force LiveUI/seek bar during live to show. Closes#11.
* Change pulling chat history into app.js
* Force new messages to have visability = true
* First pass at restructuring the project; untested but it does compile
* Restructure builds and runs 🎉
* Add the dist folder to the gitignore
* Update core/playlist/monitor.go
* golint and reorganize the monitor.go file
Co-authored-by: Gabe Kangas <gabek@real-ity.com>