mirror of
https://github.com/Xinrea/bili-shadowreplay.git
synced 2025-11-25 04:22:24 +08:00
fix: video import with number roomId (#222)
This commit is contained in:
@@ -6,9 +6,10 @@
|
|||||||
import type { ProgressUpdate, ProgressFinished } from "../interface";
|
import type { ProgressUpdate, ProgressFinished } from "../interface";
|
||||||
|
|
||||||
export let showDialog = false;
|
export let showDialog = false;
|
||||||
export let roomId: number | null = null;
|
export let roomId: string | null = null;
|
||||||
|
|
||||||
const dispatch = createEventDispatcher();
|
const dispatch = createEventDispatcher();
|
||||||
|
const IMPORTED_VIDEO_ROOM = "bsr:import";
|
||||||
|
|
||||||
let selectedFilePath: string | null = null;
|
let selectedFilePath: string | null = null;
|
||||||
let selectedFileName: string = "";
|
let selectedFileName: string = "";
|
||||||
@@ -172,7 +173,7 @@
|
|||||||
await uploadFile(file);
|
await uploadFile(file);
|
||||||
} else {
|
} else {
|
||||||
alert(
|
alert(
|
||||||
"请选择支持的视频文件格式 (MP4, MKV, AVI, MOV, WMV, FLV, M4V, WebM)"
|
"请选择支持的视频文件格式 (MP4, MKV, AVI, MOV, WMV, FLV, M4V, WebM)",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -185,7 +186,7 @@
|
|||||||
try {
|
try {
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
formData.append("file", file);
|
formData.append("file", file);
|
||||||
formData.append("roomId", String(roomId || 0));
|
formData.append("roomId", roomId || IMPORTED_VIDEO_ROOM);
|
||||||
|
|
||||||
const xhr = new XMLHttpRequest();
|
const xhr = new XMLHttpRequest();
|
||||||
|
|
||||||
@@ -259,7 +260,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
formData.append("room_id", String(roomId || 0));
|
formData.append("room_id", roomId || IMPORTED_VIDEO_ROOM);
|
||||||
|
|
||||||
files.forEach((file) => {
|
files.forEach((file) => {
|
||||||
formData.append("files", file);
|
formData.append("files", file);
|
||||||
@@ -276,7 +277,7 @@
|
|||||||
// 根据进度估算当前正在上传的文件
|
// 根据进度估算当前正在上传的文件
|
||||||
const estimatedCurrentIndex = Math.min(
|
const estimatedCurrentIndex = Math.min(
|
||||||
Math.floor((progress / 100) * totalFiles),
|
Math.floor((progress / 100) * totalFiles),
|
||||||
totalFiles - 1
|
totalFiles - 1,
|
||||||
);
|
);
|
||||||
currentFileName = fileNames[estimatedCurrentIndex] || fileNames[0];
|
currentFileName = fileNames[estimatedCurrentIndex] || fileNames[0];
|
||||||
}
|
}
|
||||||
@@ -360,7 +361,7 @@
|
|||||||
if (match) {
|
if (match) {
|
||||||
currentFileIndex = parseInt(match[1]);
|
currentFileIndex = parseInt(match[1]);
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
const clear_finished_listener = await listen(
|
const clear_finished_listener = await listen(
|
||||||
`progress-finished:${eventId}`,
|
`progress-finished:${eventId}`,
|
||||||
@@ -385,13 +386,13 @@
|
|||||||
|
|
||||||
clear_update_listener();
|
clear_update_listener();
|
||||||
clear_finished_listener();
|
clear_finished_listener();
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
await invoke("batch_import_external_videos", {
|
await invoke("batch_import_external_videos", {
|
||||||
eventId: eventId,
|
eventId: eventId,
|
||||||
filePaths: selectedFiles,
|
filePaths: selectedFiles,
|
||||||
roomId: roomId || 0,
|
roomId: roomId || IMPORTED_VIDEO_ROOM,
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("批量导入失败:", error);
|
console.error("批量导入失败:", error);
|
||||||
@@ -433,7 +434,7 @@
|
|||||||
if (match) {
|
if (match) {
|
||||||
currentFileIndex = parseInt(match[1]);
|
currentFileIndex = parseInt(match[1]);
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
const clear_finished_listener = await listen(
|
const clear_finished_listener = await listen(
|
||||||
`progress-finished:${eventId}`,
|
`progress-finished:${eventId}`,
|
||||||
@@ -458,14 +459,14 @@
|
|||||||
|
|
||||||
clear_update_listener();
|
clear_update_listener();
|
||||||
clear_finished_listener();
|
clear_finished_listener();
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
await invoke("import_external_video", {
|
await invoke("import_external_video", {
|
||||||
eventId: eventId,
|
eventId: eventId,
|
||||||
filePath: selectedFilePath,
|
filePath: selectedFilePath,
|
||||||
title: videoTitle,
|
title: videoTitle,
|
||||||
roomId: roomId || 0,
|
roomId: roomId || IMPORTED_VIDEO_ROOM,
|
||||||
});
|
});
|
||||||
|
|
||||||
// 注意:成功处理移到了progressFinishedListener中
|
// 注意:成功处理移到了progressFinishedListener中
|
||||||
|
|||||||
@@ -31,8 +31,8 @@
|
|||||||
let loading = false;
|
let loading = false;
|
||||||
let sortBy = "created_at";
|
let sortBy = "created_at";
|
||||||
let sortOrder = "desc";
|
let sortOrder = "desc";
|
||||||
let selectedRoomId: number | null = null;
|
let selectedRoomId = null;
|
||||||
let roomIds: number[] = [];
|
let roomIds: string[] = [];
|
||||||
|
|
||||||
let selectedVideos: Set<number> = new Set();
|
let selectedVideos: Set<number> = new Set();
|
||||||
let showDeleteConfirm = false;
|
let showDeleteConfirm = false;
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
try {
|
try {
|
||||||
// 获取所有视频
|
// 获取所有视频
|
||||||
const allVideos: VideoItem[] = [];
|
const allVideos: VideoItem[] = [];
|
||||||
const roomIdsSet = new Set<number>();
|
const roomIdsSet = new Set<string>();
|
||||||
const tempVideos = await invoke<VideoItem[]>("get_all_videos");
|
const tempVideos = await invoke<VideoItem[]>("get_all_videos");
|
||||||
|
|
||||||
for (const video of tempVideos) {
|
for (const video of tempVideos) {
|
||||||
@@ -182,7 +182,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
videos = allVideos;
|
videos = allVideos;
|
||||||
roomIds = Array.from(roomIdsSet).sort((a, b) => a - b);
|
roomIds = Array.from(roomIdsSet).sort();
|
||||||
|
|
||||||
applyFilters();
|
applyFilters();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -428,7 +428,7 @@
|
|||||||
|
|
||||||
// 更新筛选后的视频列表
|
// 更新筛选后的视频列表
|
||||||
const index = filteredVideos.findIndex(
|
const index = filteredVideos.findIndex(
|
||||||
(v) => v.id === videoToEditNote.id
|
(v) => v.id === videoToEditNote.id,
|
||||||
);
|
);
|
||||||
if (index !== -1) {
|
if (index !== -1) {
|
||||||
filteredVideos[index].note = editingNote;
|
filteredVideos[index].note = editingNote;
|
||||||
|
|||||||
Reference in New Issue
Block a user