@@ -15,20 +15,13 @@ import { handleSseOpen } from "@/utils/sseOpen";
1515import { defaultSavedOptions , defaultTempOptions , dummyMeta , IMPORT_STEP , ImportChartMessageEx , ImportMeta , STEP } from "./types" ;
1616import getNextUnusedMusicId from "@/utils/getNextUnusedMusicId" ;
1717import { useI18n } from 'vue-i18n' ;
18+ import { createImportFatal , createVideoConvertWarning , getCaptureTarget , isAbortError } from "./importErrors" ;
19+ import tryGetFile from "@/utils/tryGetFile" ;
1820
19- const tryGetFile = async ( dir : FileSystemDirectoryHandle , file : string ) => {
20- try {
21- const handle = await dir . getFileHandle ( file ) ;
22- return await handle . getFile ( ) ;
23- } catch ( e ) {
24- return ;
25- }
26- }
27-
28- export let startProcess = ( dir ?: FileSystemDirectoryHandle | FileSystemDirectoryHandle [ ] ) => { }
21+ export let startProcess = ( _dir ?: FileSystemDirectoryHandle | FileSystemDirectoryHandle [ ] ) => { }
2922
3023export default defineComponent ( {
31- setup ( props ) {
24+ setup ( ) {
3225 const savedOptions = useStorage ( 'importMusicOptions' , defaultSavedOptions , undefined , { mergeDefaults : true } ) ;
3326 const tempOptions = ref ( { ...defaultTempOptions } ) ;
3427 const step = ref ( STEP . none ) ;
@@ -186,24 +179,24 @@ export default defineComponent({
186179 music . importStep = IMPORT_STEP . movie ;
187180 try {
188181 await uploadMovie ( music . id , music . movie , audioPadding ) ;
189- } catch ( e : any ) {
190- errors . value . push ( { level : MessageLevel . Warning , message : t ( 'chart.import.error.videoConvertFailed' ) + `: ${ e . error ?. message || e . error ?. detail || e ?. message || e ?. toString ( ) || t ( 'error.unknown' ) } ` , name : music . name } ) ;
182+ } catch ( e ) {
183+ errors . value . push ( createVideoConvertWarning ( e , music . name , t ( 'chart.import.error.videoConvertFailed' ) , t ( 'error.unknown' ) ) ) ;
191184 }
192185 }
193186
194187 music . importStep = IMPORT_STEP . jacket ;
195188 if ( music . bg ) await api . SetMusicJacket ( music . id , selectedADir . value , { file : music . bg } ) ;
196189
197190 music . importStep = IMPORT_STEP . finish ;
198- } catch ( e : any ) {
191+ } catch ( e ) {
199192 console . log ( music , e )
200- captureException ( e . error || e , {
193+ captureException ( getCaptureTarget ( e ) , {
201194 tags : {
202195 context : t ( 'chart.import.error.importError' ) ,
203196 step : music . importStep ,
204197 }
205198 } )
206- errors . value . push ( { level : MessageLevel . Fatal , message : e . error ?. message || e . error ?. detail || e . message || e . toString ( ) , name : music . name } ) ;
199+ errors . value . push ( createImportFatal ( e , music . name ) ) ;
207200 if ( music . importStep !== IMPORT_STEP . create ) {
208201 // 如果是在创建乐曲这步就挂了,说明乐曲XML没有创建成功,则不需要删除乐曲。
209202 // 否则,在ID冲突的情况下,会把原本的乐曲给删除掉,见 https://github.com/MuNET-OSS/MaiChartManager/issues/34
@@ -269,8 +262,8 @@ export default defineComponent({
269262 if ( errors . value . length ) {
270263 step . value = STEP . showResultError
271264 }
272- } catch ( e : any ) {
273- if ( e . name === 'AbortError' ) return
265+ } catch ( e ) {
266+ if ( isAbortError ( e ) ) return
274267 console . log ( e )
275268 globalCapture ( e , t ( 'chart.import.error.importErrorGlobal' ) )
276269 } finally {
0 commit comments