Compare commits

...

2 Commits

Author SHA1 Message Date
Xinrea
c97e0649a9 bump version to 2.16.3 2025-11-09 17:07:40 +08:00
Xinrea
26e1271681 fix: video import with number roomId (#222) 2025-11-09 15:52:43 +08:00
5 changed files with 20 additions and 19 deletions

View File

@@ -1,7 +1,7 @@
{
"name": "bili-shadowreplay",
"private": true,
"version": "2.16.2",
"version": "2.16.3",
"type": "module",
"scripts": {
"dev": "vite",

2
src-tauri/Cargo.lock generated
View File

@@ -541,7 +541,7 @@ checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba"
[[package]]
name = "bili-shadowreplay"
version = "2.16.2"
version = "2.16.3"
dependencies = [
"async-ffmpeg-sidecar 0.0.1",
"async-std",

View File

@@ -4,7 +4,7 @@ resolver = "2"
[package]
name = "bili-shadowreplay"
version = "2.16.2"
version = "2.16.3"
description = "BiliBili ShadowReplay"
authors = ["Xinrea"]
license = ""

View File

@@ -6,9 +6,10 @@
import type { ProgressUpdate, ProgressFinished } from "../interface";
export let showDialog = false;
export let roomId: number | null = null;
export let roomId: string | null = null;
const dispatch = createEventDispatcher();
const IMPORTED_VIDEO_ROOM = "bsr:import";
let selectedFilePath: string | null = null;
let selectedFileName: string = "";
@@ -172,7 +173,7 @@
await uploadFile(file);
} else {
alert(
"请选择支持的视频文件格式 (MP4, MKV, AVI, MOV, WMV, FLV, M4V, WebM)"
"请选择支持的视频文件格式 (MP4, MKV, AVI, MOV, WMV, FLV, M4V, WebM)",
);
}
}
@@ -185,7 +186,7 @@
try {
const formData = new FormData();
formData.append("file", file);
formData.append("roomId", String(roomId || 0));
formData.append("roomId", roomId || IMPORTED_VIDEO_ROOM);
const xhr = new XMLHttpRequest();
@@ -259,7 +260,7 @@
}
const formData = new FormData();
formData.append("room_id", String(roomId || 0));
formData.append("room_id", roomId || IMPORTED_VIDEO_ROOM);
files.forEach((file) => {
formData.append("files", file);
@@ -276,7 +277,7 @@
// 根据进度估算当前正在上传的文件
const estimatedCurrentIndex = Math.min(
Math.floor((progress / 100) * totalFiles),
totalFiles - 1
totalFiles - 1,
);
currentFileName = fileNames[estimatedCurrentIndex] || fileNames[0];
}
@@ -360,7 +361,7 @@
if (match) {
currentFileIndex = parseInt(match[1]);
}
}
},
);
const clear_finished_listener = await listen(
`progress-finished:${eventId}`,
@@ -385,13 +386,13 @@
clear_update_listener();
clear_finished_listener();
}
},
);
await invoke("batch_import_external_videos", {
eventId: eventId,
filePaths: selectedFiles,
roomId: roomId || 0,
roomId: roomId || IMPORTED_VIDEO_ROOM,
});
} catch (error) {
console.error("批量导入失败:", error);
@@ -433,7 +434,7 @@
if (match) {
currentFileIndex = parseInt(match[1]);
}
}
},
);
const clear_finished_listener = await listen(
`progress-finished:${eventId}`,
@@ -458,14 +459,14 @@
clear_update_listener();
clear_finished_listener();
}
},
);
await invoke("import_external_video", {
eventId: eventId,
filePath: selectedFilePath,
title: videoTitle,
roomId: roomId || 0,
roomId: roomId || IMPORTED_VIDEO_ROOM,
});
// 注意成功处理移到了progressFinishedListener中

View File

@@ -31,8 +31,8 @@
let loading = false;
let sortBy = "created_at";
let sortOrder = "desc";
let selectedRoomId: number | null = null;
let roomIds: number[] = [];
let selectedRoomId = null;
let roomIds: string[] = [];
let selectedVideos: Set<number> = new Set();
let showDeleteConfirm = false;
@@ -169,7 +169,7 @@
try {
// 获取所有视频
const allVideos: VideoItem[] = [];
const roomIdsSet = new Set<number>();
const roomIdsSet = new Set<string>();
const tempVideos = await invoke<VideoItem[]>("get_all_videos");
for (const video of tempVideos) {
@@ -182,7 +182,7 @@
}
videos = allVideos;
roomIds = Array.from(roomIdsSet).sort((a, b) => a - b);
roomIds = Array.from(roomIdsSet).sort();
applyFilters();
} catch (error) {
@@ -428,7 +428,7 @@
// 更新筛选后的视频列表
const index = filteredVideos.findIndex(
(v) => v.id === videoToEditNote.id
(v) => v.id === videoToEditNote.id,
);
if (index !== -1) {
filteredVideos[index].note = editingNote;