diff --git a/backend/appsettings/serializers.py b/backend/appsettings/serializers.py index 4ac45f93..5e6e434b 100644 --- a/backend/appsettings/serializers.py +++ b/backend/appsettings/serializers.py @@ -62,6 +62,7 @@ class AppConfigAppSerializer( """serialize app config""" enable_snapshot = serializers.BooleanField() + enable_cast = serializers.BooleanField() class AppConfigSerializer(ValidateUnknownFieldsMixin, serializers.Serializer): diff --git a/backend/appsettings/src/config.py b/backend/appsettings/src/config.py index 34631774..3c14a2c0 100644 --- a/backend/appsettings/src/config.py +++ b/backend/appsettings/src/config.py @@ -51,6 +51,7 @@ class ApplicationConfigType(TypedDict): """describes application config""" enable_snapshot: bool + enable_cast: bool class AppConfigType(TypedDict): @@ -93,7 +94,10 @@ class AppConfig: "integrate_ryd": False, "integrate_sponsorblock": False, }, - "application": {"enable_snapshot": True}, + "application": { + "enable_snapshot": True, + "enable_cast": False, + }, } def __init__(self): diff --git a/frontend/src/api/loader/loadAppsettingsConfig.ts b/frontend/src/api/loader/loadAppsettingsConfig.ts index 34ba3e38..df731e17 100644 --- a/frontend/src/api/loader/loadAppsettingsConfig.ts +++ b/frontend/src/api/loader/loadAppsettingsConfig.ts @@ -29,6 +29,7 @@ export type AppSettingsConfigType = { }; application: { enable_snapshot: boolean; + enable_cast: boolean; }; }; diff --git a/frontend/src/components/EmbeddableVideoPlayer.tsx b/frontend/src/components/EmbeddableVideoPlayer.tsx index d3be212d..80b0906f 100644 --- a/frontend/src/components/EmbeddableVideoPlayer.tsx +++ b/frontend/src/components/EmbeddableVideoPlayer.tsx @@ -92,8 +92,7 @@ const EmbeddableVideoPlayer = ({ videoId }: EmbeddableVideoPlayerProps) => { const likes = formatNumbers(video.stats.like_count); const hasDislikes = video.stats.dislike_count > 0 && appSettingsConfig.downloads.integrate_ryd; const dislikes = formatNumbers(video.stats.dislike_count); - // const config = videoResponse.config; - const cast = false; // config.enable_cast; + const cast = appSettingsConfig.application.enable_cast; return ( <> diff --git a/frontend/src/pages/SettingsApplication.tsx b/frontend/src/pages/SettingsApplication.tsx index 103b20d5..c47d776c 100644 --- a/frontend/src/pages/SettingsApplication.tsx +++ b/frontend/src/pages/SettingsApplication.tsx @@ -92,6 +92,7 @@ const SettingsApplication = () => { const [showApiToken, setShowApiToken] = useState(false); const [downloadDislikes, setDownloadDislikes] = useState(false); const [enableSponsorBlock, setEnableSponsorBlock] = useState(false); + const [enableCast, setEnableCast] = useState(false); // Snapshots const [enableSnapshots, setEnableSnapshots] = useState(false); @@ -135,6 +136,7 @@ const SettingsApplication = () => { // Integrations setDownloadDislikes(appSettingsConfig.downloads.integrate_ryd); setEnableSponsorBlock(appSettingsConfig.downloads.integrate_sponsorblock); + setEnableCast(appSettingsConfig.application.enable_cast); // Snapshots setEnableSnapshots(appSettingsConfig.application.enable_snapshot); @@ -867,6 +869,16 @@ const SettingsApplication = () => { updateCallback={handleUpdateConfig} /> +
Enable Cast
+