* feat(chat): basic profanity filter. For #3139
* feat(chat): add setting for disabling chat spam protection. Closes#3523
* feat(chat): wire up the new chat slur filter to admin and chat. Closes#3139
* feat(api): add server-side caching for requests that could benefit for them
* fix(tests): do not cache responses while in tests
* fix: remove commented out leftover code
* chore(deps): update dependency html-webpack-plugin to v5.5.4
* Bundle embedded web app
* fix: remove caching for web app assets under test
* chore(tests): re-enable temporarily disabled test
* chore(deps): update dependency typescript to v5.3.3
* Bundle embedded web app
* chore(deps): update dependency npm to v10.2.5
* Bundle embedded web app
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Owncast <owncast@owncast.online>
* Commit updated API documentation
* Fix content path used for meta tags.
TT:#3075
* Fix lint for go code.
TT:#3075
* Revert docs/api/index.html
TT:#3075
---------
Co-authored-by: Owncast <owncast@owncast.online>
* chore(go): update go version to 1.20. Closes#2185
* chore(go): run better align against project
To optimize struct field order. Closes#2870
* chore(go): update CI jobs to use Go 1.20
* fix(go): linter warnings for Go 1.20 update
* wip: trigger the title updated webhook event whenever a title is changed
* Commit updated API documentation
* fix: add STREAM_TITLE_CHANGED to list of valid events
* feat: Add support for STREAM_TITLE_CHANGED webhook event on admin dashboard
* fix: transmit webhook event after stream has changed to fix race conditions where older title was sent
---------
Co-authored-by: Owncast <owncast@owncast.online>
* Custom emoji editor: implement backend
This reuses the logo upload code
* Implement emoji edit admin interface
Again reuse base64 logic from the logo upload
* Allow toggling between uploaded and default emojis
* Add route that always serves uploaded emojis
This is needed for the admin emoji interface,
as otherwise the emojis will 404 if custom emojis are disabled
* Fix linter warnings
* Remove custom/uploaded emoji logic
* Reset timer after emoji deletion
* Setup: copy built-in emojis to emoji directory
* validate json responses
* update deps
* tmp disable header check
* log all the webfinger fails
refactor and filter more malformed requests
* don't set incorrect serverURL strings
* test failing through admin api
* fix server url in fedi tests
* check response.text
* validate json/xml response of all apis
test Content-Type of api response and cleanup
* improve logs
* fix rebase
* cleanup json parser in api tests
* mark the api tests performed by admin
* Separate check for reading and format of serverURL
* test /federation/user/ with wrong username in ci
**What this PR does / why we need it:**
Preallocate memory instead of enforcing an incremental growth. This will result in less work for the garbage collector.