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