diff --git a/public/locales/zh-CN/translation.json b/public/locales/zh-CN/translation.json index a16763b..eb5add8 100644 --- a/public/locales/zh-CN/translation.json +++ b/public/locales/zh-CN/translation.json @@ -283,6 +283,7 @@ "SOURCE_DETAILS": "媒体源信息", "DIRECT": "直接播放", "TRANSCODE": "转码", + "DIRECT_STREAM": "直接流", "USERNAME": "用户名", "PASSWORD": "密码", "LOGIN": "登录", diff --git a/src/pages/components/activity/activity-table.jsx b/src/pages/components/activity/activity-table.jsx index 65ed9c8..0df5cc1 100644 --- a/src/pages/components/activity/activity-table.jsx +++ b/src/pages/components/activity/activity-table.jsx @@ -214,6 +214,37 @@ export default function ActivityTable(props) { ); }, }, + { + accessorKey: "PlayMethod", + header: i18next.t("TRANSCODE"), + size: 150, + Cell: ({ row }) => { + row = row.original; + if (row.PlayMethod === "Transcode") { + return ( + + {i18next.t("TRANSCODE")} + {row.TranscodingInfo ? + + {!row.TranscodingInfo.IsVideoDirect && + ({i18next.t("VIDEO")}) + } + {!row.TranscodingInfo.IsAudioDirect && + ({i18next.t("AUDIO")}) + } + : "" + } + + ); + } else if (row.PlayMethod === "DirectPlay") { + return {i18next.t("DIRECT")}; + } else if (row.PlayMethod === "DirectStream") { + return {i18next.t("DIRECT_STREAM")}; + } else { + return -; + } + }, + }, { accessorKey: "DeviceName", header: i18next.t("ACTIVITY_TABLE.DEVICE"), diff --git a/src/pages/components/item-info/item-activity.jsx b/src/pages/components/item-info/item-activity.jsx index ebb52f6..960b629 100644 --- a/src/pages/components/item-info/item-activity.jsx +++ b/src/pages/components/item-info/item-activity.jsx @@ -122,7 +122,7 @@ function ItemActivity(props) { // } filteredData = filteredData.filter((item) => - streamTypeFilter == "All" + streamTypeFilter === "All" ? true : item.PlayMethod === (config?.IS_JELLYFIN ? streamTypeFilter : streamTypeFilter.replace("Play", "Stream")) ); @@ -155,6 +155,9 @@ function ItemActivity(props) { + diff --git a/src/pages/components/statCards/playback_method_stats.jsx b/src/pages/components/statCards/playback_method_stats.jsx index c285213..ebcc2ab 100644 --- a/src/pages/components/statCards/playback_method_stats.jsx +++ b/src/pages/components/statCards/playback_method_stats.jsx @@ -10,7 +10,8 @@ import BarChartGroupedLineIcon from "remixicon-react/BarChartGroupedLineIcon"; function PlaybackMethodStats(props) { const translations = { DirectPlay: , - Transocde: , + Transcode: , + DirectStream: }; const chartIcon = ; @@ -78,9 +79,15 @@ function PlaybackMethodStats(props) { return ( - stream.Name == "DirectPlay" ? { ...stream, Name: translations.DirectPlay } : { ...stream, Name: translations.Transocde } - )} + data={data.map((stream) => { + if (stream.Name === "DirectPlay") { + return { ...stream, Name: translations.DirectPlay }; + } else if (stream.Name === "DirectStream") { + return { ...stream, Name: translations.DirectStream }; + } else { + return { ...stream, Name: translations.Transcode }; + } + })} icon={chartIcon} heading={} units={} diff --git a/src/pages/components/user-info/user-activity.jsx b/src/pages/components/user-info/user-activity.jsx index ccdc360..5776821 100644 --- a/src/pages/components/user-info/user-activity.jsx +++ b/src/pages/components/user-info/user-activity.jsx @@ -226,6 +226,9 @@ function UserActivity(props) { +