owncast/router/router.go

145 lines
4.2 KiB
Go
Raw Normal View History

package router
import (
"fmt"
"net/http"
Spec-based API (#3653) * chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * 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 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 04:50:20 +03:00
"strings"
2022-07-18 21:08:49 +03:00
"time"
"github.com/CAFxX/httpcompression"
Spec-based API (#3653) * chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * 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 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 04:50:20 +03:00
"github.com/go-chi/chi/v5"
chiMW "github.com/go-chi/chi/v5/middleware"
log "github.com/sirupsen/logrus"
2022-04-07 21:43:26 +03:00
"golang.org/x/net/http2"
"golang.org/x/net/http2/h2c"
Social features / ActivityPub federation (#1629) * Support webfinger requests for the live account. Closes https://github.com/owncast/owncast/issues/1193 * Support for actor requests. Returns response for live actor. Closes https://github.com/owncast/owncast/issues/1203 * Handle follow and unfollow requests. Closes https://github.com/owncast/owncast/issues/1191 and https://github.com/owncast/owncast/issues/1205 and https://github.com/owncast/owncast/issues/1206 and https://github.com/owncast/owncast/issues/1194 * Add basic support for sending out text activities. For https://github.com/owncast/owncast/issues/1192 * Some error handling and passing of dynamic local account names. * Add hardcoded example image attachment to test post * Centralize the map of accounts and inboxes * No longer disable the preview generator based on YP toggle * Send a federated message to followers when stream starts. For https://github.com/owncast/owncast/issues/1192 * Placeholder for attaching tags * Add image description * Save and get to outbox persistence. Return using outbox endpoint for actor * Pass payloads to be handled through the gochan * Handle undo follow requests explitly, not all undo requests * Add API for manually sending simple federated messages. Closes #1215 * Verify inbox requests. Closes #1321 * Add route to fetch a single AP object by ID. For #1329 * Add responses to fediverse nodeinfo requests * Set and get federation config values for admin * Handle host-meta requests * Do not send out message if disabled. Use saved go live message. * Require AP-compatible content types for AP-related requests * Rename ap models to apmodels for clarity * Change how content type matching takes place. * io -> ioutil * Add stub delete activity callback * Handle likes and announces to surface engagement in chat. Part of #1229 * Append url to go live posts * Do not require specific content types for nodeinfo requests * Add follow engagement chat message via AP * add owncast user-agent to requests * Set note visibility to public (for now) * Fix saving/fetching a single object * Add support for x-nodeinfo2 responses * Point to the dev admin branch for ap * Bundle in dev admin for testing * Add error logging * Add AP middleware back * Point to the new external compatible logo endpoint * Clean up more AP logging to help testing * Tweak go live text and link hashtags * Fix bug in fetching init time * Send update actor activities when server details/profile is updated * Add federation config overview to web client config * Add additional actor properties * Make the AP middleware checking more flexible when looking at types * First pass at remote fediverse follow flow. For #1371 * Added a basic AP actor followers endpoint * WIP client followers API * Add profile-page reference to webfinger response * Add aliases to webfinger response * Fix content-type returned to be expected activitypub+json * First pass at followers api * Point at local dev copy of go-fed/activity * Add custom toot Hashtag objects to posts * Store additional user details to followers table * Fix AP followers endpoint. Closes #1204 * Add owncast hashtag as an invisible tag to go live posts * Reject AP requests when it is disabled * Add actor util for generating full account user from person object * Verify inbox requests before performing any other work * Accept actor update requests * Fix linter errors in federation branch * Migrate AP SQL to sqlc for type safe queries * Use the @unclearParadigm REST parameter helper * Fix verifying post ID on AP engagement * WIP privacy/request approval * Style the remote follow modal * First pass at a followers list component w/ mock data. #1370 * Revert "Use the @unclearParadigm REST parameter helper" This reverts commit c8af8a413f6f53e7d1a15a7d823ff28be2db3c23. * Fix get followers API * Add support for requiring approval. Closes https://github.com/owncast/owncast/issues/1208 * Handle Applications as Actors partly for PeerTube support * add temp todo list * check route on load, this might change later * style followers * account for just 1 tab case * Remove mock data. Allow showing follow button even when there are no external actions defined * Point to actual followers API * Support fallback img for follower views * Remove duplicate verification. Add some additional verbose logging * Bundle dev admin * Add type to host-meta webfinger template response * Tweak remote follow modal content * WIP federation followers refactor * Do not send pointer to middleware * Update admin * Add setting for toggling displaying fediverse engagement. Closes #1404 * Add in-development admin * Do not enable cors on admin followers api * Add db migration for updating messages table * Enable empty string go live messages to disable * Remove debug messages * Rework some ActivityPub handling. Create new Actor->Person handling. Create new Actor->Service handling. Add engagement handlers to send chat events and store event objects. Store inbound activities to new ap_inbound_activities table. * Support federated engagement events. Store them in the messages table and surface them via chat events. * Support federated event engatement in the chat * Tweak web UI followers handling * Point go.mod at remote fork instead of local * Update admin * Merged in develop. Couple fixes * Update dev admin * Update fedi engagement posts. - Fix incorrect action text. - Add action icons. * Set public as to instead of cc for ap msg * Updated styling for federated actions in chat * Add support for blocking federated domains. Closes #1209 * Force checking of https in verify step * Update dev admin * Return user scopes in chat history api. Closes #1586 * Update dev admin * Add AP outbound request worker pool. Closes #1571 * Disable (temporarily?) owncast tag on AP posts * Consolidate creating activity+notes in outbound AP messages * Add inbox worker pool. Closes #1570 * Update dev admin bundle * Clean up some logs * Re-enable inbound verfication * Save full IRI to outbox instead of path * Reject if full IRI is not found in outbox * Use full ActivityPub user account in chat event * Fix and expand follower APIs - Add missing IDs to AP follower endpoints - Split AP follower endpoints into initial request and pages. - Support pagination in AP requests. * Include IRI in error message * Hide chat toggle when chat is hidden. Closes #1606 * Updates to followers pagination * Set default go live message * Remove log * indirect -> direct import * Updates for inbound federated event handling. - Keep track of existing events and reject duplicates. - Change what is sent to chat for surfing federated engagement. - Keep track if outbound events are automated "go live" events or not. * Update chat federated engagement. * Update dev admin. * Move from being a person to a bot (service). Closes #1619 * Only set server init date if not already set * Only save notes to outbox able * Rework private-mode followers/approvals * API for returning a list of federated actions for #1573 * Fix too-small follower cells and jumpy tabs. Closes #1616 and closes #1516 * Fix shortcuts getting fired on inputs. Fixes #1489 and #1201 * Add spinner, autoclose + other fixes to follow modal. Fixes #1593 * Fix fetching a single object by IRI * SendFederationMessage -> SendFederatedMessage * Autolink and create tag objects from manual posts. Closes #1620 * Update dev admin bundle * Handle engagement from non-automated/live posts * Reject federated engagement actions if they do not match a local post * Update dev admin bundle * A bunch of cleanup * Fix unused assignments and logic * Remove unused function * Add content warning and sentive content flag if stream is NSFW. Closes #1624 * Disable fetching objects by IRI when in private mode. Closes #1623 * Update the error message of the remote follow dialog. closes #1622 * Update dev admin * Fix NREs throwing in test content * Fix query that wasn't properly filtering out hidden messages * Test against user being disabled instead of message visibility * Fix automated test NRE * Update comment * Adjust federated engagement chat views. Closes #1617 * Add additional index to users table * Add support for removing followers/requests. Closes #1630 * Reject federated actions from blocked actors. #1631 * Use fallback avatar if it fails to load. Closes #1635 * Fix styling of follower list. Closes #1636 * Add basic blurb stating they should follow the server. Closes #1641 * Update dev admin * Set default go live message in migration. Closes #1642 * Reset the messages table on 0.0.11 schema migration * Fix js error with moderation actions. Closes #1621 * Add a bit more clarification on follow modal. Closes #1599 * Remove todos * Split out actor and domain blocking checks * Check for errors on default values being set * Clean up actor rejection due to being blocked * Update dev admin * Add colon to error to make it easier to read * Remove markdown rendering of go live message. Reorganize text. Remove content warning. Closes #1645 * Break out the sort+render messages logic so it can be fired on visibility change. Closes #1643 * Do not send profile updates if federation is disabled * Save follow references to inbound activities table * Update dev admin * Add blocked actor test * Remove the overloaded term of Follow from social links * Fix test running in memory only * Remove "just" in engagement messags * Replace star with heart for like action. * Update dev admin * Explicitly set cc as public * Remove overly using the stream name in fediverse engagement messages * Some federated/follow UI tweaks * Remove explicit cc and bcc as they are not required * Explicitly set the audience * Remove extra margin * Add Join Fediverse button to follow modal. Closes #1651 * Do not allow multiple follows to send multiple events. Closes #1650 * Give events a min height * Do not allow old posts to be liked/shared. Closes #1652 * Remove value from log message * Alert followers on private mode toggle * Ignore clicks to follow button if disabled * Remove underline from action buttons * Add moderator icon to join message * Update admin * Post-merge remove unused var * Remove pointing at feature branch Co-authored-by: Ginger Wong <omqmail@gmail.com>
2022-01-13 00:53:10 +03:00
"github.com/owncast/owncast/activitypub"
Spec-based API (#3653) * chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * 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 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 04:50:20 +03:00
apControllers "github.com/owncast/owncast/activitypub/controllers"
"github.com/owncast/owncast/config"
"github.com/owncast/owncast/controllers"
"github.com/owncast/owncast/core/chat"
Social features / ActivityPub federation (#1629) * Support webfinger requests for the live account. Closes https://github.com/owncast/owncast/issues/1193 * Support for actor requests. Returns response for live actor. Closes https://github.com/owncast/owncast/issues/1203 * Handle follow and unfollow requests. Closes https://github.com/owncast/owncast/issues/1191 and https://github.com/owncast/owncast/issues/1205 and https://github.com/owncast/owncast/issues/1206 and https://github.com/owncast/owncast/issues/1194 * Add basic support for sending out text activities. For https://github.com/owncast/owncast/issues/1192 * Some error handling and passing of dynamic local account names. * Add hardcoded example image attachment to test post * Centralize the map of accounts and inboxes * No longer disable the preview generator based on YP toggle * Send a federated message to followers when stream starts. For https://github.com/owncast/owncast/issues/1192 * Placeholder for attaching tags * Add image description * Save and get to outbox persistence. Return using outbox endpoint for actor * Pass payloads to be handled through the gochan * Handle undo follow requests explitly, not all undo requests * Add API for manually sending simple federated messages. Closes #1215 * Verify inbox requests. Closes #1321 * Add route to fetch a single AP object by ID. For #1329 * Add responses to fediverse nodeinfo requests * Set and get federation config values for admin * Handle host-meta requests * Do not send out message if disabled. Use saved go live message. * Require AP-compatible content types for AP-related requests * Rename ap models to apmodels for clarity * Change how content type matching takes place. * io -> ioutil * Add stub delete activity callback * Handle likes and announces to surface engagement in chat. Part of #1229 * Append url to go live posts * Do not require specific content types for nodeinfo requests * Add follow engagement chat message via AP * add owncast user-agent to requests * Set note visibility to public (for now) * Fix saving/fetching a single object * Add support for x-nodeinfo2 responses * Point to the dev admin branch for ap * Bundle in dev admin for testing * Add error logging * Add AP middleware back * Point to the new external compatible logo endpoint * Clean up more AP logging to help testing * Tweak go live text and link hashtags * Fix bug in fetching init time * Send update actor activities when server details/profile is updated * Add federation config overview to web client config * Add additional actor properties * Make the AP middleware checking more flexible when looking at types * First pass at remote fediverse follow flow. For #1371 * Added a basic AP actor followers endpoint * WIP client followers API * Add profile-page reference to webfinger response * Add aliases to webfinger response * Fix content-type returned to be expected activitypub+json * First pass at followers api * Point at local dev copy of go-fed/activity * Add custom toot Hashtag objects to posts * Store additional user details to followers table * Fix AP followers endpoint. Closes #1204 * Add owncast hashtag as an invisible tag to go live posts * Reject AP requests when it is disabled * Add actor util for generating full account user from person object * Verify inbox requests before performing any other work * Accept actor update requests * Fix linter errors in federation branch * Migrate AP SQL to sqlc for type safe queries * Use the @unclearParadigm REST parameter helper * Fix verifying post ID on AP engagement * WIP privacy/request approval * Style the remote follow modal * First pass at a followers list component w/ mock data. #1370 * Revert "Use the @unclearParadigm REST parameter helper" This reverts commit c8af8a413f6f53e7d1a15a7d823ff28be2db3c23. * Fix get followers API * Add support for requiring approval. Closes https://github.com/owncast/owncast/issues/1208 * Handle Applications as Actors partly for PeerTube support * add temp todo list * check route on load, this might change later * style followers * account for just 1 tab case * Remove mock data. Allow showing follow button even when there are no external actions defined * Point to actual followers API * Support fallback img for follower views * Remove duplicate verification. Add some additional verbose logging * Bundle dev admin * Add type to host-meta webfinger template response * Tweak remote follow modal content * WIP federation followers refactor * Do not send pointer to middleware * Update admin * Add setting for toggling displaying fediverse engagement. Closes #1404 * Add in-development admin * Do not enable cors on admin followers api * Add db migration for updating messages table * Enable empty string go live messages to disable * Remove debug messages * Rework some ActivityPub handling. Create new Actor->Person handling. Create new Actor->Service handling. Add engagement handlers to send chat events and store event objects. Store inbound activities to new ap_inbound_activities table. * Support federated engagement events. Store them in the messages table and surface them via chat events. * Support federated event engatement in the chat * Tweak web UI followers handling * Point go.mod at remote fork instead of local * Update admin * Merged in develop. Couple fixes * Update dev admin * Update fedi engagement posts. - Fix incorrect action text. - Add action icons. * Set public as to instead of cc for ap msg * Updated styling for federated actions in chat * Add support for blocking federated domains. Closes #1209 * Force checking of https in verify step * Update dev admin * Return user scopes in chat history api. Closes #1586 * Update dev admin * Add AP outbound request worker pool. Closes #1571 * Disable (temporarily?) owncast tag on AP posts * Consolidate creating activity+notes in outbound AP messages * Add inbox worker pool. Closes #1570 * Update dev admin bundle * Clean up some logs * Re-enable inbound verfication * Save full IRI to outbox instead of path * Reject if full IRI is not found in outbox * Use full ActivityPub user account in chat event * Fix and expand follower APIs - Add missing IDs to AP follower endpoints - Split AP follower endpoints into initial request and pages. - Support pagination in AP requests. * Include IRI in error message * Hide chat toggle when chat is hidden. Closes #1606 * Updates to followers pagination * Set default go live message * Remove log * indirect -> direct import * Updates for inbound federated event handling. - Keep track of existing events and reject duplicates. - Change what is sent to chat for surfing federated engagement. - Keep track if outbound events are automated "go live" events or not. * Update chat federated engagement. * Update dev admin. * Move from being a person to a bot (service). Closes #1619 * Only set server init date if not already set * Only save notes to outbox able * Rework private-mode followers/approvals * API for returning a list of federated actions for #1573 * Fix too-small follower cells and jumpy tabs. Closes #1616 and closes #1516 * Fix shortcuts getting fired on inputs. Fixes #1489 and #1201 * Add spinner, autoclose + other fixes to follow modal. Fixes #1593 * Fix fetching a single object by IRI * SendFederationMessage -> SendFederatedMessage * Autolink and create tag objects from manual posts. Closes #1620 * Update dev admin bundle * Handle engagement from non-automated/live posts * Reject federated engagement actions if they do not match a local post * Update dev admin bundle * A bunch of cleanup * Fix unused assignments and logic * Remove unused function * Add content warning and sentive content flag if stream is NSFW. Closes #1624 * Disable fetching objects by IRI when in private mode. Closes #1623 * Update the error message of the remote follow dialog. closes #1622 * Update dev admin * Fix NREs throwing in test content * Fix query that wasn't properly filtering out hidden messages * Test against user being disabled instead of message visibility * Fix automated test NRE * Update comment * Adjust federated engagement chat views. Closes #1617 * Add additional index to users table * Add support for removing followers/requests. Closes #1630 * Reject federated actions from blocked actors. #1631 * Use fallback avatar if it fails to load. Closes #1635 * Fix styling of follower list. Closes #1636 * Add basic blurb stating they should follow the server. Closes #1641 * Update dev admin * Set default go live message in migration. Closes #1642 * Reset the messages table on 0.0.11 schema migration * Fix js error with moderation actions. Closes #1621 * Add a bit more clarification on follow modal. Closes #1599 * Remove todos * Split out actor and domain blocking checks * Check for errors on default values being set * Clean up actor rejection due to being blocked * Update dev admin * Add colon to error to make it easier to read * Remove markdown rendering of go live message. Reorganize text. Remove content warning. Closes #1645 * Break out the sort+render messages logic so it can be fired on visibility change. Closes #1643 * Do not send profile updates if federation is disabled * Save follow references to inbound activities table * Update dev admin * Add blocked actor test * Remove the overloaded term of Follow from social links * Fix test running in memory only * Remove "just" in engagement messags * Replace star with heart for like action. * Update dev admin * Explicitly set cc as public * Remove overly using the stream name in fediverse engagement messages * Some federated/follow UI tweaks * Remove explicit cc and bcc as they are not required * Explicitly set the audience * Remove extra margin * Add Join Fediverse button to follow modal. Closes #1651 * Do not allow multiple follows to send multiple events. Closes #1650 * Give events a min height * Do not allow old posts to be liked/shared. Closes #1652 * Remove value from log message * Alert followers on private mode toggle * Ignore clicks to follow button if disabled * Remove underline from action buttons * Add moderator icon to join message * Update admin * Post-merge remove unused var * Remove pointing at feature branch Co-authored-by: Ginger Wong <omqmail@gmail.com>
2022-01-13 00:53:10 +03:00
"github.com/owncast/owncast/core/data"
Spec-based API (#3653) * chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * 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 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 04:50:20 +03:00
"github.com/owncast/owncast/handler"
"github.com/owncast/owncast/router/middleware"
)
2020-11-13 02:14:59 +03:00
// Start starts the router for the http, ws, and rtmp.
Spec-based API (#3653) * chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * 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 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 04:50:20 +03:00
func Start(enableVerboseLogging bool) error {
// @behlers New Router
r := chi.NewRouter()
0.0.6 -> Master (#731) * Implement webhook events for external integrations (#574) * Implement webhook events for external integrations Reference #556 * move message type to models and remove duplicate * add json header so content type can be determined * Pass at migrating webhooks to datastore + management apis (#589) * Pass at migrating webhooks to datastore + management apis * Support nil lastUsed timestamps and return back the new webhook on create * Cleanup from review feedback * Simplify a bit Co-authored-by: Aaron Ogle <aaron@geekgonecrazy.com> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Webhook query cleanup * Access tokens + Send system message external API (#585) * New add, get and delete access token APIs * Create auth token middleware * Update last_used timestamp when using an access token * Add auth'ed endpoint for sending system messages * Cleanup * Update api spec for new apis * Commit updated API documentation * Add auth'ed endpoint for sending user chat messages * Return access token string * Commit updated API documentation * Fix route * Support nil lastUsed time * Commit updated Javascript packages * Remove duplicate function post rebase * Fix msg id generation * Update controllers/admin/chat.go Co-authored-by: Aaron Ogle <geekgonecrazy@users.noreply.github.com> * Webhook query cleanup * Add SystemMessageSent to EventType Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Aaron Ogle <geekgonecrazy@users.noreply.github.com> * Set webhook as used on completion. Closes #610 * Display webhook errors as errors * Commit updated API documentation * Add user joined chat event * Change integration API paths. Update API spec * Update development version of admin that supports integration apis * Commit updated API documentation * Add automated tests for external integration APIs * check error * quiet this test for now * Route up some additional 3rd party apis. #638 * Commit updated API documentation * Save username on user joined event * Add missing scope to valid scopes list * Add generic chat action event API for 3rd parties. Closes #666 * Commit updated API documentation * First pass at moving WIP config framework into project for #234 * Only support exported fields in custom types * Using YP get/set key as a first pass at using the data layer. Fixes + integration. * Ignore test db * Start adding getters and setters for config values * More get/set config work. Starting to populate api with data * Wire up some config edit endpoints * More endpoints * Disable cors middleware * Add more endpoints and add test to test them * Remove the in-memory change APIs * Add endpoint for changing tags * Add more config endpoints * Starting to point more things away from config file and to the datastore * Populate YP with db data * Create new util method for parsing page body markdown and return it in api * Verify proposed path to ffmpeg * For development purposes show the config key in logs * Move stats values to datastore * Moving over more values to the datastore * Move S3 config to datastore * First pass the config -> db migrator * Add the start of the video config apis * It builds pointing everything away from the config * Tweak ffmpeg path error message * Backup database every hour. Closes #549 * Config + defaults + migration work for db * Cleanup logging * Remove all the old config structs * Add descriptive info about migration * Tweak ffmpeg validation logic * Fix db backup path. backup on db version migration * Set video and s3 configurations * Update api spec with new config endpoints * Add migrator for stats file * Commit updated API documentation * Use a dynamic system port for internal HLS writes. Closes #577 (#626) * Use a dynamic system port for internal HLS writes. Closes #577 * Cleanup * YP key migration to datastore * Create a backup directory if needed before migrations * Remove config test that no longer makes sense. Cleanup. * Change number types from float32 to float64 * Update automated test suite * Allow restoring a database backup via command line flags. Closes #549 * Add new hls segment config api * Commit updated API documentation * Update apis to require a value container property * add socialHandles api * Commit updated API documentation * Add new latancy level setting to replace segment settings * Commit updated API documentation * Fix spelling * Commit updated API documentation * hardcode a json api of available social platforms * Add additional icons * Return social handles in server config api * Add socialhandles validation to test * Move list of hard coded social platforms to an api * Remove audio only code from transcoder since we do not use it * Add latency levels api + snapshot of video settings as current broadcast * Add config/serverurl endpoint * Return 404 on YP api if disabled * Surface stream title in YP response * Add stream title to web ui * Cleanup log message. Closes #520 * Rename ffmpeg package to transcoder * Add ws package for testing * Reduce chat backlog to past 5hrs, max 50. Closes #548 * Fix error formatting * Add endpoint for resetting yp registration * Add yp/reset to api spec. return status in response * Return zero viewer count if stream is offline. Closes #422 * Post-rebase fixes * Fix merge conflict in openapi file * Commit updated API documentation * Standardize controller names * Support setting the stream key via the command line. Closes #665 * Return social handles with YP data. First half of https://github.com/owncast/owncast-yp/issues/28 * Give the YP package access to server status regardless if enabled or not * Change delay in automated tests * Add stream title integration API. For #638 * Commit updated API documentation * Add storage to the migrator * Missing returning NSFW value in server config * Add flag to ignore websocket client. Closes #537 * Add error for parsing broadcaster metadata * Add support for a cli specified http server port. Closes #674 * Add cpu usage levels and a temporary mapping between it and libx264 presets * Test for valid url endpoint when saving s3 config * Re-configure storage on every stream to allow changing storage providers * After 5 minutes of a stream being stopped clear the stream title * Hide viewer count once stream goes offline instead of when player stops * Pull steamTitle from the status that gets updated instead of the config * Commit updated API documentation * Optionally show stream title in the header * Reset stream title when server starts * Show chat action when stream title is updated * Allow system messages to come back in persistence * Split out getting chat history for moderation + fix tests * Remove server title and standardize on name only * Commit updated API documentation * Bump github.com/aws/aws-sdk-go from 1.37.1 to 1.37.2 (#680) Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.37.1 to 1.37.2. - [Release notes](https://github.com/aws/aws-sdk-go/releases) - [Changelog](https://github.com/aws/aws-sdk-go/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-go/compare/v1.37.1...v1.37.2) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add video variant and stream latency config file migrator * Remove mostly unused disable upgrade check bool * Commit updated API documentation * Allow bundling the admin from the 0.0.6 branch * Fix saving port numbers * Use name instead of old title on window focus * Work on latency levels. Fix test to use levels. Clean up transcoder to only reference levels * Another place where title -> name * Fix test * Bump github.com/aws/aws-sdk-go from 1.37.2 to 1.37.3 (#690) Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.37.2 to 1.37.3. - [Release notes](https://github.com/aws/aws-sdk-go/releases) - [Changelog](https://github.com/aws/aws-sdk-go/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-go/compare/v1.37.2...v1.37.3) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Update dependabot config * Bump github.com/aws/aws-sdk-go from 1.37.3 to 1.37.5 (#693) Bumps [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) from 1.37.3 to 1.37.5. - [Release notes](https://github.com/aws/aws-sdk-go/releases) - [Changelog](https://github.com/aws/aws-sdk-go/blob/master/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-go/compare/v1.37.3...v1.37.5) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump video.js from 7.10.2 to 7.11.4 in /build/javascript (#694) * Bump video.js from 7.10.2 to 7.11.4 in /build/javascript Bumps [video.js](https://github.com/videojs/video.js) from 7.10.2 to 7.11.4. - [Release notes](https://github.com/videojs/video.js/releases) - [Changelog](https://github.com/videojs/video.js/blob/main/CHANGELOG.md) - [Commits](https://github.com/videojs/video.js/compare/v7.10.2...v7.11.4) Signed-off-by: dependabot[bot] <support@github.com> * Commit updated Javascript packages Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> * Make the latency migrator dynamic so I can tweak values easier * Split out fetching ffmpeg path from validating the path so it can be changed in the admin * Some commenting and linter cleanup * Validate the path for a logo change and throw an error if it does not exist * Logo change requests have to be a real file now * Cleanup, making linter happy * Format javascript on push * Only format js in master * Tweak latency level values * Remove unused config file examples * Fix thumbnail generation after messing with the ffmpeg path getter * Reduce how often we report high hardware utilization warnings * Bundle the 0.0.6 branch version of the admin * Return validated ffmpeg path in admin server config * Change the logo to be stored in the data directory instead of webroot * Bump postcss from 8.2.4 to 8.2.5 in /build/javascript (#702) Bumps [postcss](https://github.com/postcss/postcss) from 8.2.4 to 8.2.5. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.2.4...8.2.5) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Default config file no longer used * don't show stream title when offline addresses https://github.com/owncast/owncast/issues/677 * Remove auto-clearing stream title. #677 * webroot -> data when using logo as thumbnail * Do not list websocket/access token create/delete as integration APIs * Commit updated API documentation * Bundle updated admin * Remove pointing to the 0.0.6 admin branch * Linter cleanup * Linter cleanup * Add donations and follow links to show up under social handles * Prettified Code! * More linter cleanup * Update admin bundle * Remove use of platforms.js and return icons with social handles. Closes #732 * Update admin bundle * Support custom config path for use in migration * Remove unused platform-logos.gif * Reduce log level of message * Remove unused logo files in static dir * Handle dev vs. release build info * Restore logo.png for initial thumbnail * Cleanup some files from the build process that are not needed * Fix incorrect build-time injection var * Fix missing file getting copied to the build * Remove console directory message. * Update admin bundle * Fix comment * Report storage setup error * add some value set error checking * Use validated dynamic ffmpeg path for animated gif preview * Make chat message links be white so they don't hide in the bg. Closes #599 * Restore conditional that was accidentally removed Co-authored-by: Aaron Ogle <geekgonecrazy@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Ginger Wong <omqmail@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: nebunez <uoj2y7wak869@opayq.net> Co-authored-by: gabek <gabek@users.noreply.github.com>
2021-02-19 10:05:52 +03:00
Spec-based API (#3653) * chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * 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 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 04:50:20 +03:00
// Middlewares
if enableVerboseLogging {
r.Use(chiMW.RequestLogger(&chiMW.DefaultLogFormatter{Logger: log.StandardLogger(), NoColor: true}))
}
r.Use(chiMW.Recoverer)
Spec-based API (#3653) * chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * 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 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 04:50:20 +03:00
addStaticFileEndpoints(r)
Spec-based API (#3653) * chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * 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 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 04:50:20 +03:00
// websocket
r.HandleFunc("/ws", chat.HandleClientConnection)
Spec-based API (#3653) * chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * 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 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 04:50:20 +03:00
// serve files
fs := http.FileServer(http.Dir(config.PublicFilesPath))
r.Handle("/public/*", http.StripPrefix("/public/", fs))
// Return HLS video
Spec-based API (#3653) * chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * 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 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 04:50:20 +03:00
r.HandleFunc("/hls/*", controllers.HandleHLSRequest)
Spec-based API (#3653) * chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * 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 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 04:50:20 +03:00
// The admin web app.
r.HandleFunc("/admin/*", middleware.RequireAdminAuth(controllers.IndexHandler))
Spec-based API (#3653) * chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * 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 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 04:50:20 +03:00
// Single ActivityPub Actor
r.HandleFunc("/federation/user/*", middleware.RequireActivityPubOrRedirect(apControllers.ActorHandler))
Spec-based API (#3653) * chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * 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 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 04:50:20 +03:00
// Single AP object
r.HandleFunc("/federation/*", middleware.RequireActivityPubOrRedirect(apControllers.ObjectHandler))
IndieAuth support (#1811) * Able to authenticate user against IndieAuth. For #1273 * WIP server indieauth endpoint. For https://github.com/owncast/owncast/issues/1272 * Add migration to remove access tokens from user * Add authenticated bool to user for display purposes * Add indieauth modal and auth flair to display names. For #1273 * Validate URLs and display errors * Renames, cleanups * Handle relative auth endpoint paths. Add error handling for missing redirects. * Disallow using display names in use by registered users. Closes #1810 * Verify code verifier via code challenge on callback * Use relative path to authorization_endpoint * Post-rebase fixes * Use a timestamp instead of a bool for authenticated * Propertly handle and display error in modal * Use auth'ed timestamp to derive authenticated flag to display in chat * don't redirect unless a URL is present avoids redirecting to `undefined` if there was an error * improve error message if owncast server URL isn't set * fix IndieAuth PKCE implementation use SHA256 instead of SHA1, generates a longer code verifier (must be 43-128 chars long), fixes URL-safe SHA256 encoding * return real profile data for IndieAuth response * check the code verifier in the IndieAuth server * Linting * Add new chat settings modal anad split up indieauth ui * Remove logging error * Update the IndieAuth modal UI. For #1273 * Add IndieAuth repsonse error checking * Disable IndieAuth client if server URL is not set. * Add explicit error messages for specific error types * Fix bad logic * Return OAuth-keyed error responses for indieauth server * Display IndieAuth error in plain text with link to return to main page * Remove redundant check * Add additional detail to error * Hide IndieAuth details behind disclosure details * Break out migration into two steps because some people have been runing dev in production * Add auth option to user dropdown Co-authored-by: Aaron Parecki <aaron@parecki.com>
2022-04-22 00:55:26 +03:00
Spec-based API (#3653) * chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * 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 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 04:50:20 +03:00
// The primary web app.
r.HandleFunc("/*", controllers.IndexHandler)
IndieAuth support (#1811) * Able to authenticate user against IndieAuth. For #1273 * WIP server indieauth endpoint. For https://github.com/owncast/owncast/issues/1272 * Add migration to remove access tokens from user * Add authenticated bool to user for display purposes * Add indieauth modal and auth flair to display names. For #1273 * Validate URLs and display errors * Renames, cleanups * Handle relative auth endpoint paths. Add error handling for missing redirects. * Disallow using display names in use by registered users. Closes #1810 * Verify code verifier via code challenge on callback * Use relative path to authorization_endpoint * Post-rebase fixes * Use a timestamp instead of a bool for authenticated * Propertly handle and display error in modal * Use auth'ed timestamp to derive authenticated flag to display in chat * don't redirect unless a URL is present avoids redirecting to `undefined` if there was an error * improve error message if owncast server URL isn't set * fix IndieAuth PKCE implementation use SHA256 instead of SHA1, generates a longer code verifier (must be 43-128 chars long), fixes URL-safe SHA256 encoding * return real profile data for IndieAuth response * check the code verifier in the IndieAuth server * Linting * Add new chat settings modal anad split up indieauth ui * Remove logging error * Update the IndieAuth modal UI. For #1273 * Add IndieAuth repsonse error checking * Disable IndieAuth client if server URL is not set. * Add explicit error messages for specific error types * Fix bad logic * Return OAuth-keyed error responses for indieauth server * Display IndieAuth error in plain text with link to return to main page * Remove redundant check * Add additional detail to error * Hide IndieAuth details behind disclosure details * Break out migration into two steps because some people have been runing dev in production * Add auth option to user dropdown Co-authored-by: Aaron Parecki <aaron@parecki.com>
2022-04-22 00:55:26 +03:00
Spec-based API (#3653) * chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * 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 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 04:50:20 +03:00
// mount the api
r.Mount("/api/", handler.New().Handler())
Social features / ActivityPub federation (#1629) * Support webfinger requests for the live account. Closes https://github.com/owncast/owncast/issues/1193 * Support for actor requests. Returns response for live actor. Closes https://github.com/owncast/owncast/issues/1203 * Handle follow and unfollow requests. Closes https://github.com/owncast/owncast/issues/1191 and https://github.com/owncast/owncast/issues/1205 and https://github.com/owncast/owncast/issues/1206 and https://github.com/owncast/owncast/issues/1194 * Add basic support for sending out text activities. For https://github.com/owncast/owncast/issues/1192 * Some error handling and passing of dynamic local account names. * Add hardcoded example image attachment to test post * Centralize the map of accounts and inboxes * No longer disable the preview generator based on YP toggle * Send a federated message to followers when stream starts. For https://github.com/owncast/owncast/issues/1192 * Placeholder for attaching tags * Add image description * Save and get to outbox persistence. Return using outbox endpoint for actor * Pass payloads to be handled through the gochan * Handle undo follow requests explitly, not all undo requests * Add API for manually sending simple federated messages. Closes #1215 * Verify inbox requests. Closes #1321 * Add route to fetch a single AP object by ID. For #1329 * Add responses to fediverse nodeinfo requests * Set and get federation config values for admin * Handle host-meta requests * Do not send out message if disabled. Use saved go live message. * Require AP-compatible content types for AP-related requests * Rename ap models to apmodels for clarity * Change how content type matching takes place. * io -> ioutil * Add stub delete activity callback * Handle likes and announces to surface engagement in chat. Part of #1229 * Append url to go live posts * Do not require specific content types for nodeinfo requests * Add follow engagement chat message via AP * add owncast user-agent to requests * Set note visibility to public (for now) * Fix saving/fetching a single object * Add support for x-nodeinfo2 responses * Point to the dev admin branch for ap * Bundle in dev admin for testing * Add error logging * Add AP middleware back * Point to the new external compatible logo endpoint * Clean up more AP logging to help testing * Tweak go live text and link hashtags * Fix bug in fetching init time * Send update actor activities when server details/profile is updated * Add federation config overview to web client config * Add additional actor properties * Make the AP middleware checking more flexible when looking at types * First pass at remote fediverse follow flow. For #1371 * Added a basic AP actor followers endpoint * WIP client followers API * Add profile-page reference to webfinger response * Add aliases to webfinger response * Fix content-type returned to be expected activitypub+json * First pass at followers api * Point at local dev copy of go-fed/activity * Add custom toot Hashtag objects to posts * Store additional user details to followers table * Fix AP followers endpoint. Closes #1204 * Add owncast hashtag as an invisible tag to go live posts * Reject AP requests when it is disabled * Add actor util for generating full account user from person object * Verify inbox requests before performing any other work * Accept actor update requests * Fix linter errors in federation branch * Migrate AP SQL to sqlc for type safe queries * Use the @unclearParadigm REST parameter helper * Fix verifying post ID on AP engagement * WIP privacy/request approval * Style the remote follow modal * First pass at a followers list component w/ mock data. #1370 * Revert "Use the @unclearParadigm REST parameter helper" This reverts commit c8af8a413f6f53e7d1a15a7d823ff28be2db3c23. * Fix get followers API * Add support for requiring approval. Closes https://github.com/owncast/owncast/issues/1208 * Handle Applications as Actors partly for PeerTube support * add temp todo list * check route on load, this might change later * style followers * account for just 1 tab case * Remove mock data. Allow showing follow button even when there are no external actions defined * Point to actual followers API * Support fallback img for follower views * Remove duplicate verification. Add some additional verbose logging * Bundle dev admin * Add type to host-meta webfinger template response * Tweak remote follow modal content * WIP federation followers refactor * Do not send pointer to middleware * Update admin * Add setting for toggling displaying fediverse engagement. Closes #1404 * Add in-development admin * Do not enable cors on admin followers api * Add db migration for updating messages table * Enable empty string go live messages to disable * Remove debug messages * Rework some ActivityPub handling. Create new Actor->Person handling. Create new Actor->Service handling. Add engagement handlers to send chat events and store event objects. Store inbound activities to new ap_inbound_activities table. * Support federated engagement events. Store them in the messages table and surface them via chat events. * Support federated event engatement in the chat * Tweak web UI followers handling * Point go.mod at remote fork instead of local * Update admin * Merged in develop. Couple fixes * Update dev admin * Update fedi engagement posts. - Fix incorrect action text. - Add action icons. * Set public as to instead of cc for ap msg * Updated styling for federated actions in chat * Add support for blocking federated domains. Closes #1209 * Force checking of https in verify step * Update dev admin * Return user scopes in chat history api. Closes #1586 * Update dev admin * Add AP outbound request worker pool. Closes #1571 * Disable (temporarily?) owncast tag on AP posts * Consolidate creating activity+notes in outbound AP messages * Add inbox worker pool. Closes #1570 * Update dev admin bundle * Clean up some logs * Re-enable inbound verfication * Save full IRI to outbox instead of path * Reject if full IRI is not found in outbox * Use full ActivityPub user account in chat event * Fix and expand follower APIs - Add missing IDs to AP follower endpoints - Split AP follower endpoints into initial request and pages. - Support pagination in AP requests. * Include IRI in error message * Hide chat toggle when chat is hidden. Closes #1606 * Updates to followers pagination * Set default go live message * Remove log * indirect -> direct import * Updates for inbound federated event handling. - Keep track of existing events and reject duplicates. - Change what is sent to chat for surfing federated engagement. - Keep track if outbound events are automated "go live" events or not. * Update chat federated engagement. * Update dev admin. * Move from being a person to a bot (service). Closes #1619 * Only set server init date if not already set * Only save notes to outbox able * Rework private-mode followers/approvals * API for returning a list of federated actions for #1573 * Fix too-small follower cells and jumpy tabs. Closes #1616 and closes #1516 * Fix shortcuts getting fired on inputs. Fixes #1489 and #1201 * Add spinner, autoclose + other fixes to follow modal. Fixes #1593 * Fix fetching a single object by IRI * SendFederationMessage -> SendFederatedMessage * Autolink and create tag objects from manual posts. Closes #1620 * Update dev admin bundle * Handle engagement from non-automated/live posts * Reject federated engagement actions if they do not match a local post * Update dev admin bundle * A bunch of cleanup * Fix unused assignments and logic * Remove unused function * Add content warning and sentive content flag if stream is NSFW. Closes #1624 * Disable fetching objects by IRI when in private mode. Closes #1623 * Update the error message of the remote follow dialog. closes #1622 * Update dev admin * Fix NREs throwing in test content * Fix query that wasn't properly filtering out hidden messages * Test against user being disabled instead of message visibility * Fix automated test NRE * Update comment * Adjust federated engagement chat views. Closes #1617 * Add additional index to users table * Add support for removing followers/requests. Closes #1630 * Reject federated actions from blocked actors. #1631 * Use fallback avatar if it fails to load. Closes #1635 * Fix styling of follower list. Closes #1636 * Add basic blurb stating they should follow the server. Closes #1641 * Update dev admin * Set default go live message in migration. Closes #1642 * Reset the messages table on 0.0.11 schema migration * Fix js error with moderation actions. Closes #1621 * Add a bit more clarification on follow modal. Closes #1599 * Remove todos * Split out actor and domain blocking checks * Check for errors on default values being set * Clean up actor rejection due to being blocked * Update dev admin * Add colon to error to make it easier to read * Remove markdown rendering of go live message. Reorganize text. Remove content warning. Closes #1645 * Break out the sort+render messages logic so it can be fired on visibility change. Closes #1643 * Do not send profile updates if federation is disabled * Save follow references to inbound activities table * Update dev admin * Add blocked actor test * Remove the overloaded term of Follow from social links * Fix test running in memory only * Remove "just" in engagement messags * Replace star with heart for like action. * Update dev admin * Explicitly set cc as public * Remove overly using the stream name in fediverse engagement messages * Some federated/follow UI tweaks * Remove explicit cc and bcc as they are not required * Explicitly set the audience * Remove extra margin * Add Join Fediverse button to follow modal. Closes #1651 * Do not allow multiple follows to send multiple events. Closes #1650 * Give events a min height * Do not allow old posts to be liked/shared. Closes #1652 * Remove value from log message * Alert followers on private mode toggle * Ignore clicks to follow button if disabled * Remove underline from action buttons * Add moderator icon to join message * Update admin * Post-merge remove unused var * Remove pointing at feature branch Co-authored-by: Ginger Wong <omqmail@gmail.com>
2022-01-13 00:53:10 +03:00
// ActivityPub has its own router
activitypub.Start(data.GetDatastore())
// Create a custom mux handler to intercept the /debug/vars endpoint.
// This is a hack because Prometheus enables this endpoint by default
// due to its use of expvar and we do not want this exposed.
Spec-based API (#3653) * chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * 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 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 04:50:20 +03:00
h2s := &http2.Server{}
http2Handler := h2c.NewHandler(r, h2s)
m := http.NewServeMux()
m.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
if r.URL.Path == "/debug/vars" {
w.WriteHeader(http.StatusNotFound)
return
} else if r.URL.Path == "/embed/chat/" || r.URL.Path == "/embed/chat" {
// Redirect /embed/chat
http.Redirect(w, r, "/embed/chat/readonly", http.StatusTemporaryRedirect)
} else {
Spec-based API (#3653) * chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * 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 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 04:50:20 +03:00
http2Handler.ServeHTTP(w, r)
}
})
Spec-based API (#3653) * chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * 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 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 04:50:20 +03:00
port := config.WebServerPort
ip := config.WebServerIP
compress, _ := httpcompression.DefaultAdapter() // Use the default configuration
2022-04-07 21:43:26 +03:00
server := &http.Server{
2022-07-18 21:08:49 +03:00
Addr: fmt.Sprintf("%s:%d", ip, port),
ReadHeaderTimeout: 4 * time.Second,
Handler: compress(m),
2022-04-07 21:43:26 +03:00
}
2023-06-05 18:44:14 +03:00
if ip != "0.0.0.0" {
log.Infof("Web server is listening at %s:%d.", ip, port)
} else {
log.Infof("Web server is listening on port %d.", port)
}
log.Infoln("Configure this server by visiting /admin.")
2022-04-07 21:43:26 +03:00
return server.ListenAndServe()
}
Spec-based API (#3653) * chore(deps): update dependency sass to v1.74.1 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.4 * Bundle embedded web app * Commit screenshots * fix(deps): update module github.com/yuin/goldmark to v1.7.1 * chore(deps): lock file maintenance (#3662) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/node to v20.12.5 * Bundle embedded web app * fix(deps): update module github.com/shirou/gopsutil/v3 to v3.24.3 * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.17 * fix(deps): update module golang.org/x/net to v0.24.0 * fix(deps): update module golang.org/x/mod to v0.17.0 * add get admin chat clients * comment out old code * add get admin logs * add get admin warnings * add get admin chat * add post admin chat messageVisibility * add post admin chat users enabled * add post admin chat users ipban create * add post admin chat users ipban remove * add get admin chat users ipbans * chore(deps): update dependency sass-loader to v14 (#3674) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7 (#3680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency less-loader to v12 (#3673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency chromatic to v11 (#3669) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency knip to v5 (#3672) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update nick-fields/retry action to v3 (#3678) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency @types/markdown-it to v14 (#3668) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v11 (#3666) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Bump version number * Bundle embedded web app * Bundle embedded web app * Bundle embedded web app * fix(deps): update dependency react-virtuoso to v4.7.8 * Commit screenshots * Bundle embedded web app * Optionally disable chat rate limiter and add optional chat slur/language filter (#3681) * 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 * Bundle embedded web app * chore(deps): update peter-evans/create-or-update-comment digest to 48bb05b * fix(deps): update dependency @codemirror/language-data to v6.5.0 * Bundle embedded web app * chore(deps): update dependency css-loader to v7 (#3670) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add get admin chat users disabled * add get admin chat users setModerator * add get admin chat users moderators * add get admin followers * chore(deps): update tj-actions/changed-files action to v44 (#3679) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix for copying stream key without revealing it only copies asterisks (#3663) * asterisk copy fix for #3460 * rename text to keys for consistency + linting fix * make onCopy spawn an antd message directly, remove redundant copyText function --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Commit updated Storybook stories * Bundle embedded web app * Commit screenshots * chore(deps): update dependency css-loader to v7.1.0 * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.6.0 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.75 (#3686) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * stream offline status embed updated (#3684) * Commit screenshots * add get admin followers pending * add get admin followers blocked * add post admin followers approve * add 400 error to admin requests * add post admin emoji upload * add post admin emoji delete * add post admin config adminpass * add post admin config streamkeys * add post admin config pagecontent * add post admin config streamtitle * add post admin config streamtitle * add post admin config serversummary * add post admin config offlinemessage * add post admin config welcomemessage * add post admin config chat disable * add post admin config chat joinmessageenabled * add post admin config chat establishedusermode * add post admin config chat forbiddenusernames * add post admin config chat suggestedusernames * add post admin config video codec * add post admin config appearance * Allow react/no-danger * Commit screenshots * Change tag to self-closing since the linter complains otherwise (#3690) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency css-loader to v7.1.1 (#3691) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency @types/node to v20.12.7 (#3688) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * Commit screenshots * chore(deps): update dependency npm to v10.5.2 * Bundle embedded web app * chore(deps): update dependency knip to v5.9.4 * Bundle embedded web app * chore(deps): update dependency typescript to v5.4.5 * Bundle embedded web app * prevent css-loader v7 renaming default to _default, needed for storybook (#3692) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency cypress to v13.7.3 * Bundle embedded web app * Fix custom runtimeCaching rules, default runtimeCaching rule order (#3685) Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * Fixes for aria-live bugs (#3694) * make the aria-live text adhere to the last message's username * Wrap lastMessage in an Interweave to handle pre-encoded characters properly --------- Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.77 * Bundle embedded web app * chore(deps): update dependency @storybook/addon-styling-webpack to v1 (#3667) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency storybook-addon-fetch-mock to v2 (#3675) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update dependency sass to v1.75.0 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency sass-loader to v14.2.0 * Bundle embedded web app * fix(deps): update codemirror * add get admin webhooks * add create and delete webhooks * add get, delete, create access token endpoints * add update endpoints * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.0 * Bundle embedded web app * fix(deps): update nextjs monorepo to v14.2.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency @types/markdown-it to v14.0.1 * Bundle embedded web app * chore(deps): update dependency @types/react to v18.2.78 * Bundle embedded web app * add send message to connected client * add deprecated send user message * add send message to 3rd party * add send user action * add update external message visibility * add update external stream title * add external get chat messages and fixed error with chat * add external get clients * remove options request * add update logo * add update tags * add update ffmpeg path * add update server port * add update server ip * add update rtmp port * add update websocket host override * add update custom video serving endpoint * add update nsfw * add update directory enabled * Commit screenshots * add update social handles * add update stream latency level * add update stream output variants * add update s3 config * add update server url * add reset yp registration * add update external action links * add update custom styles * add update custom javascript * add get video metrics * add update hide viewer count * add update search indexing * Change fediAuth message to be more succinct (#3696) * Change fediAuth message to be more succint * Update controllers/auth/fediverse/fediverse.go for -> from --------- Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Mute the 'stream ended' clip's audio (#3630) * Mute the 'stream ended' clip's audio The 'stream ended' clip plays at the at the end of every stream broadcast using owncast. It currently contains audio that peaks at -7.1db. (according to ffmpeg's volumedetect audio filter) This can result in a bad experience for viewers if the stream that they were just watching had a much lower average volume, and they had turned up their speakers or headphones to compensate. In extreme cases this could theoretically cause harm to viewers and/or their equipment. As an admin running owncast, there is no way to remove this audio *except* for patching the file. Even if you do patch the file, you need to notify your viewers to clear their browser caches if they have ever seen the clip, because offline.ts has a cache-control max-age header specifying 365 days. The caching of the previous version of this clip is out of scope of this PR. This issue is discussed in more detail in #1965. Unlike my previous attempt in #3332, which removed the audio track, this PR *mutes* the audio. Specifically, I used this ffmpeg command: ``` ffmpeg -i offline.ts -filter:a "volume=0.0" output.ts ``` There are no other modifications to the clip. * Commit updated API documentation * feat(video): make compatible muted offline clip. Rename clip as a v2 so it is not cached * Fix conflict * force add new offline file --------- Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> * Commit screenshots * chore(tests): retry cypress tests on failure * fix(deps): update module github.com/aws/aws-sdk-go to v1.51.23 * chore(deps): update dependency @types/video.js to v7.3.58 (#3705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * fix(deps): update dependency @codemirror/language-data to v6.5.1 (#3706) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * add update message visibility * add update user status * add get moderation user details * create file for /admin/config endpoints * chore(deps): update dependency style-loader to v4 (#3703) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Bundle embedded web app * chore(deps): update typescript-eslint monorepo to v7.7.0 * Bundle embedded web app * add non-api endpoints to new router * add set federation enabled * add set federation private * chore(tests): attempt to clean up test flakiness (#3710) * chore(deps): update dependency @types/react to v18.2.79 * add show federation engagement * add set federation username * add set federation go live message * add set federation blocked domains * add set discord notification configuration * add set browser notification configuration * add prometheus endpoint * add send federation message * add get federation activities * add indie auth documentation * add changes to indie auth server * Bundle embedded web app * add fediverse auth * add spam protection and slur filter * Commit screenshots * fix bug with hls endpoint * Add effect to set media session metadata (#3713) * Bundle embedded web app * chore(deps): update dependency sass-loader to v14.2.1 * Bundle embedded web app * Commit screenshots * fix(deps): update nextjs monorepo to v14.2.2 * Bundle embedded web app * Commit screenshots * fix(deps): update dependency react-virtuoso to v4.7.9 * Bundle embedded web app * chore(deps): update dependency cypress to v13.8.0 * Bundle embedded web app * Commit screenshots * chore(deps): lock file maintenance * Bundle embedded web app * add options requests and reformat operationIds * chore(go): update to go 1.22 (#3708) * chore(go): update to go 1.22 * fix: install go before running codeql to fix autobild * chore(test): explicitly set base crosscompile image * fix(test): do not point at image with incorrect version of Go * chore: troubleshoot js autoformating in workflow * Commit screenshots * add wildcard to index path * give /admin/ routes precedence * fix(deps): update dependency @fontsource/poppins to v5.0.14 * Bundle embedded web app * Bump formidable and artillery in /test/load (#3718) Removes [formidable](https://github.com/node-formidable/formidable). It's no longer used after updating ancestor dependency [artillery](https://github.com/artilleryio/artillery). These dependencies need to be updated together. Removes `formidable` Updates `artillery` from 2.0.2 to 2.0.10 - [Release notes](https://github.com/artilleryio/artillery/releases) - [Commits](https://github.com/artilleryio/artillery/compare/artillery-2.0.2...artillery-2.0.10) --- updated-dependencies: - dependency-name: formidable dependency-type: indirect - dependency-name: artillery dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Commit screenshots * chore(deps): update peter-evans/create-or-update-comment digest to da12db3 * fix(deps): update dependency react-virtuoso to v4.7.10 * add verbose logging and update handler precedence * Bundle embedded web app * Commit screenshots * chore(deps): update golangci/golangci-lint-action action to v5 (#3722) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update typescript-eslint monorepo to v7.7.1 * Bundle embedded web app * Commit screenshots * chore(deps): update dependency knip to v5.10.0 * Bundle embedded web app * add federation routers * updated comments to pass linter * fix bug with mount * fix linting errors * add router logs to log files * update emoji dir * fixed linting error --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Owncast <owncast@owncast.online> Co-authored-by: Gabe Kangas <gabek@real-ity.com> Co-authored-by: mahmed2000 <49453542+mahmed2000@users.noreply.github.com> Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com> Co-authored-by: Jeet Chawda <68128367+Jeetch8@users.noreply.github.com> Co-authored-by: Vivian Lim ⭐ <1565930+vivlim@users.noreply.github.com> Co-authored-by: vivlim <vivlim@vivl.im> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-02 04:50:20 +03:00
func addStaticFileEndpoints(r chi.Router) {
// Images
r.HandleFunc("/thumbnail.jpg", controllers.GetThumbnail)
r.HandleFunc("/preview.gif", controllers.GetPreview)
r.HandleFunc("/logo", controllers.GetLogo)
// return a logo that's compatible with external social networks
r.HandleFunc("/logo/external", controllers.GetCompatibleLogo)
// Custom Javascript
r.HandleFunc("/customjavascript", controllers.ServeCustomJavascript)
// robots.txt
r.HandleFunc("/robots.txt", controllers.GetRobotsDotTxt)
// Return a single emoji image.
emojiDir := config.EmojiDir
if !strings.HasSuffix(emojiDir, "*") {
emojiDir += "*"
}
r.HandleFunc(emojiDir, controllers.GetCustomEmojiImage)
// WebFinger
r.HandleFunc("/.well-known/webfinger", apControllers.WebfingerHandler)
// Host Metadata
r.HandleFunc("/.well-known/host-meta", apControllers.HostMetaController)
// Nodeinfo v1
r.HandleFunc("/.well-known/nodeinfo", apControllers.NodeInfoController)
// x-nodeinfo v2
r.HandleFunc("/.well-known/x-nodeinfo2", apControllers.XNodeInfo2Controller)
// Nodeinfo v2
r.HandleFunc("/nodeinfo/2.0", apControllers.NodeInfoV2Controller)
// Instance details
r.HandleFunc("/api/v1/instance", apControllers.InstanceV1Controller)
}