diff --git a/backend/channel/serializers.py b/backend/channel/serializers.py index ec95de12..ed4ca78b 100644 --- a/backend/channel/serializers.py +++ b/backend/channel/serializers.py @@ -99,21 +99,6 @@ class ChannelUpdateSerializer(serializers.Serializer): channel_overwrites = ChannelOverwriteSerializer(required=False) -class ChannelAggBucketSerializer(serializers.Serializer): - """serialize channel agg bucket""" - - value = serializers.IntegerField() - value_str = serializers.CharField(required=False) - - -class ChannelAggSerializer(serializers.Serializer): - """serialize channel aggregation""" - - total_items = ChannelAggBucketSerializer() - total_size = ChannelAggBucketSerializer() - total_duration = ChannelAggBucketSerializer() - - class ChannelNavSerializer(serializers.Serializer): """serialize channel navigation""" diff --git a/backend/channel/urls.py b/backend/channel/urls.py index 4b4ec53e..6661fef5 100644 --- a/backend/channel/urls.py +++ b/backend/channel/urls.py @@ -19,11 +19,6 @@ urlpatterns = [ views.ChannelApiView.as_view(), name="api-channel", ), - path( - "/aggs/", - views.ChannelAggsApiView.as_view(), - name="api-channel-aggs", - ), path( "/nav/", views.ChannelNavApiView.as_view(), diff --git a/backend/channel/views.py b/backend/channel/views.py index e27aa44d..f5e0a846 100644 --- a/backend/channel/views.py +++ b/backend/channel/views.py @@ -1,7 +1,6 @@ """all channel API views""" from channel.serializers import ( - ChannelAggSerializer, ChannelListQuerySerializer, ChannelListSerializer, ChannelNavSerializer, @@ -189,38 +188,6 @@ class ChannelApiView(ApiBaseView): return Response(error.data, status=404) -class ChannelAggsApiView(ApiBaseView): - """resolves to /api/channel//aggs/ - GET: get channel aggregations - """ - - search_base = "ta_video/_search" - - @extend_schema( - responses={ - 200: OpenApiResponse(ChannelAggSerializer()), - }, - ) - def get(self, request, channel_id): - """get channel aggregations""" - self.data.update( - { - "query": { - "term": {"channel.channel_id": {"value": channel_id}} - }, - "aggs": { - "total_items": {"value_count": {"field": "youtube_id"}}, - "total_size": {"sum": {"field": "media_size"}}, - "total_duration": {"sum": {"field": "player.duration"}}, - }, - } - ) - self.get_aggs() - serializer = ChannelAggSerializer(self.response) - - return Response(serializer.data) - - class ChannelNavApiView(ApiBaseView): """resolves to /api/channel//nav/ GET: get channel nav diff --git a/frontend/src/pages/ChannelVideo.tsx b/frontend/src/pages/ChannelVideo.tsx index 47d34860..cfe30d68 100644 --- a/frontend/src/pages/ChannelVideo.tsx +++ b/frontend/src/pages/ChannelVideo.tsx @@ -22,8 +22,8 @@ import loadVideoListByFilter, { WatchTypes, WatchTypesEnum, } from '../api/loader/loadVideoListByPage'; -import loadChannelAggs, { ChannelAggsType } from '../api/loader/loadChannelAggs'; import humanFileSize from '../functions/humanFileSize'; +import formatTime from '../functions/formatTime'; import { useUserConfigStore } from '../stores/UserConfigStore'; import { FileSizeUnits } from '../api/actions/updateUserConfig'; import { ApiResponseType } from '../functions/APIClient'; @@ -51,16 +51,12 @@ const ChannelVideo = ({ videoType }: ChannelVideoProps) => { const [channelResponse, setChannelResponse] = useState>(); const [videoResponse, setVideoReponse] = useState>(); - const [videoAggsResponse, setVideoAggsResponse] = useState>(); - const { data: channelResponseData } = channelResponse ?? {}; const { data: videoResponseData } = videoResponse ?? {}; - const { data: videoAggsResponseData } = videoAggsResponse ?? {}; const channel = channelResponseData; const videoList = videoResponseData?.data; const pagination = videoResponseData?.paginate; - const videoAggs = videoAggsResponseData; const hasVideos = videoResponseData?.data?.length !== 0; const useSiUnits = userConfig.file_size_unit === FileSizeUnits.Metric; @@ -87,11 +83,8 @@ const ChannelVideo = ({ videoType }: ChannelVideoProps) => { type: videoType, height: filterHeight, }); - const channelAggs = await loadChannelAggs(channelId); - setChannelResponse(channelResponse); setVideoReponse(videos); - setVideoAggsResponse(channelAggs); setRefresh(false); })(); }, [ @@ -123,13 +116,13 @@ const ChannelVideo = ({ videoType }: ChannelVideoProps) => { setRefresh={setRefresh} />
- {videoAggs && ( + {channel.channel_video_count !== undefined && ( <>

- {videoAggs.total_items.value} videos |{' '} - {videoAggs.total_duration.value_str} playback{' '} + {channel.channel_video_count} videos |{' '} + {formatTime(channel.channel_media_duration ?? 0)} playback{' '} | Total size{' '} - {humanFileSize(videoAggs.total_size.value, useSiUnits)} + {humanFileSize(channel.channel_media_size ?? 0, useSiUnits)}