mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-07-05 20:12:51 +01:00
Fix some formatting
This commit is contained in:
@@ -96,14 +96,23 @@ export const PlayButton: React.FC<Props> = ({
|
|||||||
|
|
||||||
const queryParams = new URLSearchParams({
|
const queryParams = new URLSearchParams({
|
||||||
itemId: item.Id!,
|
itemId: item.Id!,
|
||||||
audioIndex: selectedOptions.audioIndex?.toString() ?? "",
|
|
||||||
subtitleIndex: selectedOptions.subtitleIndex?.toString() ?? "",
|
|
||||||
mediaSourceId: selectedOptions.mediaSource?.Id ?? "",
|
mediaSourceId: selectedOptions.mediaSource?.Id ?? "",
|
||||||
bitrateValue: selectedOptions.bitrate?.value?.toString() ?? "",
|
bitrateValue: selectedOptions.bitrate?.value?.toString() ?? "",
|
||||||
playbackPosition: item.UserData?.PlaybackPositionTicks?.toString() ?? "0",
|
playbackPosition: item.UserData?.PlaybackPositionTicks?.toString() ?? "0",
|
||||||
offline: isOffline ? "true" : "false",
|
offline: isOffline ? "true" : "false",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (selectedOptions.audioIndex !== undefined) {
|
||||||
|
queryParams.set("audioIndex", selectedOptions.audioIndex.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (selectedOptions.subtitleIndex !== undefined) {
|
||||||
|
queryParams.set(
|
||||||
|
"subtitleIndex",
|
||||||
|
selectedOptions.subtitleIndex.toString(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
const queryString = queryParams.toString();
|
const queryString = queryParams.toString();
|
||||||
|
|
||||||
if (!client) {
|
if (!client) {
|
||||||
@@ -292,6 +301,29 @@ export const PlayButton: React.FC<Props> = ({
|
|||||||
t,
|
t,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
const buildOfflineQueryParams = useCallback(
|
||||||
|
(downloadedItem: NonNullable<ReturnType<typeof getDownloadedItemById>>) => {
|
||||||
|
const isTranscoded = downloadedItem.userData?.isTranscoded === true;
|
||||||
|
const audioIdx = isTranscoded
|
||||||
|
? downloadedItem.userData?.audioStreamIndex
|
||||||
|
: selectedOptions.audioIndex;
|
||||||
|
const subtitleIdx = isTranscoded
|
||||||
|
? downloadedItem.userData?.subtitleStreamIndex
|
||||||
|
: selectedOptions.subtitleIndex;
|
||||||
|
const params = new URLSearchParams({
|
||||||
|
itemId: item.Id!,
|
||||||
|
offline: "true",
|
||||||
|
playbackPosition:
|
||||||
|
item.UserData?.PlaybackPositionTicks?.toString() ?? "0",
|
||||||
|
});
|
||||||
|
if (audioIdx !== undefined) params.set("audioIndex", audioIdx.toString());
|
||||||
|
if (subtitleIdx !== undefined)
|
||||||
|
params.set("subtitleIndex", subtitleIdx.toString());
|
||||||
|
return params;
|
||||||
|
},
|
||||||
|
[item, selectedOptions],
|
||||||
|
);
|
||||||
|
|
||||||
const onPress = useCallback(async () => {
|
const onPress = useCallback(async () => {
|
||||||
if (!item) return;
|
if (!item) return;
|
||||||
|
|
||||||
@@ -302,20 +334,7 @@ export const PlayButton: React.FC<Props> = ({
|
|||||||
|
|
||||||
// If already in offline mode, play downloaded file directly
|
// If already in offline mode, play downloaded file directly
|
||||||
if (isOffline && downloadedItem) {
|
if (isOffline && downloadedItem) {
|
||||||
const isTranscoded = downloadedItem.userData?.isTranscoded === true;
|
goToPlayer(buildOfflineQueryParams(downloadedItem).toString());
|
||||||
const queryParams = new URLSearchParams({
|
|
||||||
itemId: item.Id!,
|
|
||||||
offline: "true",
|
|
||||||
audioIndex: isTranscoded
|
|
||||||
? (downloadedItem.userData?.audioStreamIndex?.toString() ?? "")
|
|
||||||
: (selectedOptions.audioIndex?.toString() ?? ""),
|
|
||||||
subtitleIndex: isTranscoded
|
|
||||||
? (downloadedItem.userData?.subtitleStreamIndex?.toString() ?? "-1")
|
|
||||||
: (selectedOptions.subtitleIndex?.toString() ?? "-1"),
|
|
||||||
playbackPosition:
|
|
||||||
item.UserData?.PlaybackPositionTicks?.toString() ?? "0",
|
|
||||||
});
|
|
||||||
goToPlayer(queryParams.toString());
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -338,23 +357,9 @@ export const PlayButton: React.FC<Props> = ({
|
|||||||
<Button
|
<Button
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
hideModal();
|
hideModal();
|
||||||
const isTranscoded =
|
goToPlayer(
|
||||||
downloadedItem.userData?.isTranscoded === true;
|
buildOfflineQueryParams(downloadedItem).toString(),
|
||||||
const queryParams = new URLSearchParams({
|
);
|
||||||
itemId: item.Id!,
|
|
||||||
offline: "true",
|
|
||||||
audioIndex: isTranscoded
|
|
||||||
? (downloadedItem.userData?.audioStreamIndex?.toString() ??
|
|
||||||
"")
|
|
||||||
: (selectedOptions.audioIndex?.toString() ?? ""),
|
|
||||||
subtitleIndex: isTranscoded
|
|
||||||
? (downloadedItem.userData?.subtitleStreamIndex?.toString() ??
|
|
||||||
"-1")
|
|
||||||
: (selectedOptions.subtitleIndex?.toString() ?? "-1"),
|
|
||||||
playbackPosition:
|
|
||||||
item.UserData?.PlaybackPositionTicks?.toString() ?? "0",
|
|
||||||
});
|
|
||||||
goToPlayer(queryParams.toString());
|
|
||||||
}}
|
}}
|
||||||
color='purple'
|
color='purple'
|
||||||
>
|
>
|
||||||
@@ -391,23 +396,7 @@ export const PlayButton: React.FC<Props> = ({
|
|||||||
{
|
{
|
||||||
text: t("player.downloaded_file_yes"),
|
text: t("player.downloaded_file_yes"),
|
||||||
onPress: () => {
|
onPress: () => {
|
||||||
const isTranscoded =
|
goToPlayer(buildOfflineQueryParams(downloadedItem).toString());
|
||||||
downloadedItem.userData?.isTranscoded === true;
|
|
||||||
const queryParams = new URLSearchParams({
|
|
||||||
itemId: item.Id!,
|
|
||||||
offline: "true",
|
|
||||||
audioIndex: isTranscoded
|
|
||||||
? (downloadedItem.userData?.audioStreamIndex?.toString() ??
|
|
||||||
"")
|
|
||||||
: (selectedOptions.audioIndex?.toString() ?? ""),
|
|
||||||
subtitleIndex: isTranscoded
|
|
||||||
? (downloadedItem.userData?.subtitleStreamIndex?.toString() ??
|
|
||||||
"-1")
|
|
||||||
: (selectedOptions.subtitleIndex?.toString() ?? "-1"),
|
|
||||||
playbackPosition:
|
|
||||||
item.UserData?.PlaybackPositionTicks?.toString() ?? "0",
|
|
||||||
});
|
|
||||||
goToPlayer(queryParams.toString());
|
|
||||||
},
|
},
|
||||||
isPreferred: true,
|
isPreferred: true,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -20,13 +20,23 @@ export const useDownloadedFileOpener = () => {
|
|||||||
const queryParams = new URLSearchParams({
|
const queryParams = new URLSearchParams({
|
||||||
itemId: item.Id,
|
itemId: item.Id,
|
||||||
offline: "true",
|
offline: "true",
|
||||||
audioIndex:
|
|
||||||
downloadedItem?.userData?.audioStreamIndex?.toString() ?? "",
|
|
||||||
subtitleIndex:
|
|
||||||
downloadedItem?.userData?.subtitleStreamIndex?.toString() ?? "-1",
|
|
||||||
playbackPosition:
|
playbackPosition:
|
||||||
item.UserData?.PlaybackPositionTicks?.toString() ?? "0",
|
item.UserData?.PlaybackPositionTicks?.toString() ?? "0",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (downloadedItem?.userData?.audioStreamIndex !== undefined) {
|
||||||
|
queryParams.set(
|
||||||
|
"audioIndex",
|
||||||
|
downloadedItem.userData.audioStreamIndex.toString(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (downloadedItem?.userData?.subtitleStreamIndex !== undefined) {
|
||||||
|
queryParams.set(
|
||||||
|
"subtitleIndex",
|
||||||
|
downloadedItem.userData.subtitleStreamIndex.toString(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
router.push(`/player/direct-player?${queryParams.toString()}`);
|
router.push(`/player/direct-player?${queryParams.toString()}`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
@@ -193,12 +193,12 @@ export const usePlaybackManager = ({
|
|||||||
? localItem.userData
|
? localItem.userData
|
||||||
: {
|
: {
|
||||||
...localItem.userData,
|
...localItem.userData,
|
||||||
...(playbackProgressInfo.AudioStreamIndex != null && {
|
audioStreamIndex:
|
||||||
audioStreamIndex: playbackProgressInfo.AudioStreamIndex,
|
playbackProgressInfo.AudioStreamIndex ??
|
||||||
}),
|
localItem.userData.audioStreamIndex,
|
||||||
...(playbackProgressInfo.SubtitleStreamIndex != null && {
|
subtitleStreamIndex:
|
||||||
subtitleStreamIndex: playbackProgressInfo.SubtitleStreamIndex,
|
playbackProgressInfo.SubtitleStreamIndex ??
|
||||||
}),
|
localItem.userData.subtitleStreamIndex,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
// Force invalidate queries so they refetch from updated local database
|
// Force invalidate queries so they refetch from updated local database
|
||||||
|
|||||||
Reference in New Issue
Block a user