1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,892471,e=>{"use strict";var t=e.i(325735);let r=function(e){return e&&e.length?(0,t.default)(e):[]};var a=e.i(203828),i=e.i(679935),o=e.i(193905),n=e.i(112349),s=e.i(674408),l=e.i(184092),u=e.i(526454),c=e.i(500276),d=e.i(180523),m=e.i(970728),p=e.i(748629),f=e.i(984295),g=e.i(506918),h=e.i(496323),b=e.i(228768),y=e.i(915729),T=e.i(491416),S=e.i(699573),w=e.i(7272);e.s(["useSubmitUrls",0,function(){let{t:e}=(0,o.useTranslation)(),{analytics:t}=(0,n.useAnalytics)(),I=(0,a.useRouter)(),v=g.useStoreAuto.use.setCurrentVideoUrl(),{cleanLocalFile:k,handleNewUrl:C}=(0,u.useUrls)(),{checkUser:E}=(0,l.useCheckUserAndLogin)(),P=(0,p.useAppStore)(e=>e.setShowCreateCollectionDialog),_=(0,p.useAppStore)(e=>e.setShowAddNewContentModal);return{submitUrls:async(a,o={})=>{let{useQueue:n=!0,clearInput:l=!0,skipAnalytics:u=!1}=o;if(!E())return!1;let p=a.trim();if(!p)return!1;let g=p.includes("\n")||p.includes(",")||p.includes("ï¼");if(console.log("submitUrls",{hasMultipleUrls:g,value:p}),g){let a=p.split(/[\n,ï¼]/).map(e=>e.trim()).filter(Boolean),o=a.map(e=>(0,S.parseUrlFromText)(e)).filter(e=>e.startsWith("http")),c=o.length-r(o).length,d=r(o),m=a.length-o.length;if(d.length>s.MAX_BATCH_SUMMARIZE_VIDEOS)return i.toast.error(e("æå¤åæ¶æ¯æ {{max}} ä¸ªé¾æ¥å¦ï¼",{max:s.MAX_BATCH_SUMMARIZE_VIDEOS}),{description:e("æ±æï¼æå¡å¨è´è½½ææ¶æéï¼è¯·åæ¹æ¬¡è¿è¡æ»ç»å¦~")}),!1;if(0===d.length)return i.toast.error(e("æªæ£æµå°ææçURL龿¥")),!1;let g=0,h=m+Math.max(0,c);for(let t of d)try{if((0,f.requestCnOverseasHandoff)(t)){h++;continue}if((0,b.isBilibiliBangumiUrl)(t)){i.toast.error(e("è·³è¿Bç«çªå§é¾æ¥: {{url}}",{url:t}),{description:e("çªå§å±äºçæå å®¹ï¼ææ¶æ æ³è§£æ"),duration:4e3}),h++;continue}await C(t,{useQueue:n}),g++}catch(r){console.error(`å¤çURL失败: ${t}`,r),(0,w.getShortLinkErrorCode)(r)||i.toast.error(e("å¤ç失败")+`: ${t}`),h++}if(g>0){let t=[];c>0&&t.push(e("éå¤ {{count}}",{count:c})),m>0&&t.push(e("æ æ {{count}}",{count:m}));let r=h-m-Math.max(0,c);r>0&&t.push(e("失败 {{count}}",{count:r})),i.toast.success(e("æåæ·»å {{count}} 个è§é¢å°å¤çéå",{count:g}),{description:h>0?e("è¯å« {{total}} æ¡ï¼è·³è¿ {{skipped}} æ¡ï¼{{reasons}}ï¼",{total:a.length,skipped:h,reasons:t.join(e("ã"))}):e("è§é¢æ£å¨åå°å¤çä¸"),action:{label:e("å å ¥åé"),onClick:()=>{P(!0,{selectedUrls:d,source:"other"})}}}),l&&v("")}return u||t.track("ContentFormInput BatchSubmit",{success:!0,totalUrls:d.length,rawLines:a.length,successCount:g,skipCount:h,duplicateCount:c,invalidCount:m}),g>0&&{success:!0,totalUrls:d.length,successCount:g,skipCount:h}}{let e=(0,S.parseUrlFromText)(p)||"";if(!e)return i.toast.error("请è¾å ¥ææçURL龿¥"),!1;if((0,b.isBilibiliBangumiUrl)(e))return i.toast.error("æä¸æ¯æBç«çªå§é¾æ¥",{description:"çªå§å±äºçæå å®¹ï¼ææ¶æ æ³è§£æã请å°è¯ä½¿ç¨æ®éçBç«è§é¢é¾æ¥ï¼bilibili.com/video/ï¼",duration:8e3}),!1;if("bilibili-watchlater"===(0,m.classifyUrl)(e)&&!(0,h.isTauri)())return i.toast.info("ãç¨ååçãæ¯ä½ çç§äººæ¸ å",{description:"ç½é¡µç«¯è¯»ä¸äºå®ï¼ç¨æ¡é¢ç«¯ App æå¼ç¨ååçå°±è½æ¹éæ»ç»å¦",duration:8e3,action:{label:"ä¸è½½æ¡é¢ç«¯",onClick:()=>window.open("/apps/desktop","_blank")}}),!1;if((0,f.requestCnOverseasHandoff)(e))return!1;if((0,T.isChannelUrl)(e))return _(!1),await I.push((0,y.getChannelUrl)(e,(0,m.isPlaylistListUrl)(e)?{intent:"summarize"}:void 0)),{success:!0,totalUrls:1,successCount:1,skipCount:0};try{await C(e,{useQueue:n})}catch(e){throw(0,c.trackEvent)(d.ProductEvents.SUMMARIZE_FAILED,{error_class:e instanceof Error?e.name:"failed"}),e}return l&&v(""),k(),u||t.track("ContentFormInput SingleSubmit",{success:!0,url:e}),{success:!0,totalUrls:1,successCount:1,skipCount:0}}}}}],892471)},177946,e=>{"use strict";var t=e.i(370947),r=e.i(679935),a=e.i(959170),i=e.i(196118),o=e.i(713457),n=e.i(706994),s=e.i(496323),l=e.i(654967),u=e.i(965066),c=e.i(450293);let d=()=>({md:"",txt:""});function m(e){return e.toString().padStart(2,"0")}let p=Promise.resolve();async function f(e){let a=(0,o.sanitizeObsidianFilename)(e.title),i=await (0,t.invoke)("write_obsidian_note",{vaultPath:e.vaultPath,folder:e.folder,filename:a,content:(0,o.buildObsidianNoteContent)(e.note),writeMode:"overwrite"});"written"===i.status&&r.toast.success(`å·²èªå¨ä¿åå° Obsidianï¼${i.path}`,{action:{label:"æå¼",onClick:()=>(0,l.openFileLocation)(i.path)}})}async function g(e){var a,i;let n,s,u,c,d=(a=e.filenameTemplate,i={title:e.title,videoId:e.noteId},n=new Date,s=`${n.getFullYear()}-${m(n.getMonth()+1)}-${m(n.getDate())}`,u=`${s} ${m(n.getHours())}-${m(n.getMinutes())}`,c={title:i.title,videoId:i.videoId,date:s,datetime:u},a.replace(/\{(title|videoId|date|datetime)\}/g,(e,t)=>c[t]??"")),p=(0,o.sanitizeObsidianFilename)(d),f=await (0,t.invoke)("write_local_note",{folderPath:e.folderPath,subfolder:"",filename:p,content:e.note,srtContent:e.srt.trim()?e.srt:null,writeMode:"overwrite"});"written"===f.status&&r.toast.success(`å·²èªå¨ä¿åå°æ¬å°æä»¶å¤¹ï¼${f.md_path}`,{action:{label:"æå¼",onClick:()=>(0,l.openFileLocation)(f.md_path)}})}e.s(["runAutoSyncExportOnTaskComplete",0,function(e){if(!(0,s.isTauri)())return;let t=e.integrations;if(!t)return;let o=!!t.obsidian_auto_sync&&!!t.obsidian_vault_path?.trim(),l=!!t.local_folder_auto_sync&&!!t.local_folder_path?.trim();if(o||l){var m;if(!e.summary?.trim()&&!e.videoDetail.summary?.trim())return void console.warn("[runAutoSyncExport] skip: empty summary");m=async()=>{try{let r=(0,i.getAutoSyncExportConfig)(),s=function(e){let{videoDetail:t,summary:r,chapterSummary:a}=e,i=(0,u.formatSummaryText)({title:t.title,cover:t.cover,url:t.url,dbId:t.dbId},{summary:r||t.summary||"",chapterSummary:a||void 0}),o=i.summaryHeadingMarkdown?`${i.summaryHeadingMarkdown} 2 3${i.formattedSummary}`:i.formattedSummary,n=i.summaryHeadingText?`${i.summaryHeadingText} 4 5${i.formattedSummaryText}`:i.formattedSummaryText,s=(t.descriptionText||"").trim(),l=t.subtitlesArray||[],m=(0,c.mapSubtitleString)(l,"TXT_NO_TIMESTAMPS"),p=(0,c.mapSubtitleString)(l,"SRT");return{videoDescription:{md:s?`## ç®ä» 6 7${s}`:"",txt:s?`ç®ä» 8 9${s}`:""},fullSummary:{md:o,txt:n},chapterSummary:{md:i.chapterSummaryMarkdown||"",txt:i.chapterSummaryText||""},customSummaries:d(),reasoning:d(),fullSubtitles:{md:m,txt:m,srt:p,vtt:(0,c.mapSubtitleString)(l,"WebVTT")},aiArticle:d(),polishedArticle:d(),rawArticle:d(),mindmapData:d(),highlightNotes:d(),aiHighlightNotes:d(),plainNote:d(),chatMessages:d(),videoDetail:t}}({videoDetail:e.videoDetail,summary:e.summary,chapterSummary:e.chapterSummary}),m=(0,a.getAggregatedContent)(r.parts,s,"md",n.PARTS_TO_CONSIDER,r.options);if(!m.trim())return void console.warn("[runAutoSyncExport] skip: aggregated note empty");let p=e.videoDetail.title||"Untitled",h=e.videoDetail.dbId||e.videoDetail.id||e.videoDetail.url,b=t.local_folder_include_srt&&s.fullSubtitles.srt?.trim()?s.fullSubtitles.srt:"";o&&await f({title:p,note:m,vaultPath:t.obsidian_vault_path.trim(),folder:t.obsidian_folder||"BibiGPT/"}),l&&await g({title:p,noteId:h,note:m,srt:b,folderPath:t.local_folder_path.trim(),filenameTemplate:t.local_folder_filename_template?.trim()||"{title}"})}catch(t){console.error("[runAutoSyncExport] failed",t);let e=t instanceof Error?t.message:String(t);r.toast.error(`èªå¨å¯¼åºç¬è®°å¤±è´¥ï¼${e}`)}},p=p.then(m).catch(e=>
9{console.error("[runAutoSyncExport] write queue error",e)})}}])},96540,869401,e=>{"use strict";var t=e.i(191788),r=e.i(145029);function a(e){return Math.max(1,Math.round(e/60))}function i(e,t){if(!t||t<=0||!e||e<=0)return{action:"ok"};let a=e/t;return a>=r.SUBTITLE_COVERAGE_THRESHOLD?{action:"ok"}:e>=60?{action:"warn-preview",previewSeconds:e,totalSeconds:t,coverage:a}:{action:"fail-too-short",previewSeconds:e,totalSeconds:t,coverage:a}}e.s(["decideTruncatedAudioAction",0,i,"minutesFromSeconds",0,a],869401);var o=e.i(895294),n=e.i(490914),s=e.i(496323);function l(e){let t=(0,o.findHandler)(e);return t?.localExtraction?{name:t.name,displayName:t.displayName,isMatch:t.canHandle,preferredLanguages:t.localExtraction.preferredLanguages,authErrorKeywords:t.localExtraction.authErrorKeywords,canFallbackToServer:t.canFallbackToServer,showDesktopHint:t.showDesktopHint}:null}function u(e){let t;return!!(0,s.isTauri)()&&(t=(0,o.findHandler)(e),!!t?.localExtraction&&!t.localExtraction.requiresUserCookies)}function c(e,t){return/fresh cookies|cookies? (expired|are needed|are missing)|pass cookies/i.test(e)||t.filter(e=>"cookie"!==e).some(t=>e.includes(t))}e.s(["canExtractLocally",0,u,"getPlatformConfig",0,l,"getPlatformErrorMessage",0,function(e,t){let r=l(e);return r?r.canFallbackToServer?t:(0,s.isTauri)()?`${r.displayName} å
容å¤ç失败ï¼è¯·å¨è®¾ç½®ä¸ææè´¦å·æä½¿ç¨ç¬¬ä¸æ¹å·¥å
·ä¸è½½åä¸ä¼ `:`${r.displayName} æä¸æ¯æå¨çº¿è§£æï¼è¯·ä½¿ç¨æ¡é¢ç«¯å¤çæç¬¬ä¸æ¹å·¥å
·ä¸è½½åä¸ä¼ `:t},"needsDesktopForExtraction",0,function(e){let t=(0,o.findHandler)(e);return t?.showDesktopHint??!1},"useLocalSubtitleExtractor",0,function(o){let{user:d,uploadFileToOSS:m,updateTaskProgress:p,setTaskError:f,setTaskWarning:g,abortIfInactive:h,processAfterSubtitles:b}=o,y=(0,t.useRef)(new Map),T=(0,t.useCallback)(e=>{y.current.delete(e)},[]);return{processSubtitlesLocally:(0,t.useCallback)(async(t,o)=>{let u=l(t.url);if(!(0,s.isTauri)()||!u)return{success:!1,handled:!1};let y=`[${u.displayName} Local]`;console.log(`${y} ð¬ å¼å§æ¬å°å广å:`,t.url),p(t.id,45,"subtitles","ä¸è½½åå¹");try{let{invoke:s}=await e.A(639641),l=!!t.audioConfig?.transcribeProvider,S=null;if(l)console.log(`${y} âï¸ è·³è¿ Step 1 åå¹ä¸è½½ï¼ç¨æ·éäº ASR engineï¼`,t.audioConfig?.transcribeProvider),p(t.id,48,"subtitles",`åå¤ç¨ ${t.audioConfig?.transcribeProvider} éæ°è½¬å½`);else if(console.log(`${y} Step 1: ä¸è½½åå¹...`),S=await s("ytdlp_download_subtitles",{url:t.url,language:u.preferredLanguages}),h(t.id))return{success:!1,handled:!0,platform:u.name};if(S?.success&&S.subtitles&&S.subtitles.length>0){let e=S.subtitles[S.subtitles.length-1],a=(e?.start||0)+(e?.duration||0),i=(0,r.detectSubtitleIncomplete)(a,Number(o.duration||0));if(i.incomplete)console.warn(`${y} â ï¸ åå¹ä¸å®æ´(${i.reason})ï¼åéå°é³é¢è½¬å½`,{count:S.subtitles.length,coverage:i.coverage.toFixed(2),gap:i.gap.toFixed(0),reason:i.reason,isRetry:!0===t.isRetry,duration:o.duration,language:S.language}),p(t.id,50,"subtitles","åå¹ä¸å®æ´ï¼è½¬é³é¢è½¬å½");else{console.log(`${y} â
åå¹ä¸è½½æå:`,S.subtitles.length,"æ¡",{coverage:i.coverage.toFixed(2)}),p(t.id,80,"subtitles","åå¹ä¸è½½æå");let e=S.subtitles.map((e,t)=>({text:e.text,startTime:e.start,end:e.start+e.duration,index:t}));if(o.dbId)try{await n.apiClient.contentPipeline.pushSubtitles.mutate({contentId:o.dbId,subtitles:e}),console.log(`${y} åå¹å·²ä¸ä¼ å°æå¡ç«¯ (pipeline)`)}catch(t){console.warn(`${y} pipeline æ¨é失败ï¼åéæ§æ¥å£:`,t);try{await n.apiClient.content.uploadLocalSubtitles.mutate({contentId:o.dbId,subtitlesArray:e,language:S.language}),console.log(`${y} åå¹å·²ä¸ä¼ å°æå¡ç«¯ (legacy fallback)`)}catch(e){console.error(`${y} åå¹ä¸ä¼ 失败:`,e)}}let r={...o,subtitlesArray:e};return p(t.id,85,"summary"),await b(t,r),{success:!0,handled:!0,subtitles:e,platform:u.name}}}let w=S?.error||"",I=c(w,u.authErrorKeywords);console.log(`${y} åå¹ä¸è½½ç»æ:`,{subtitleError:w,needsAuthForSubtitle:I}),I&&console.warn(`${y} â ï¸ åå¹ä¸è½½éè¦ææï¼å°è¯ä»ç¼åé³é¢æå...`),console.log(`${y} Step 2: åå¹ç¼ºå¤±æä¸å®æ´ï¼ä¼å
æåç¼åé³é¢...`),p(t.id,50,"subtitles","ä¸è½½é³é¢");let v=null,k="download";try{let e=await s("ytdlp_extract_audio_from_playback_cache",{url:t.url});if(h(t.id))return{success:!1,handled:!0,platform:u.name};if(e?.success&&e.file_path){let t=Number(o.duration||0),r=Number(e.duration||0);t>0&&r>0&&r<.9*t?console.warn(`${y} â ï¸ ç¼åé³é¢æ¶é¿åçï¼åééæ°ä¸è½½`,{expectedDuration:t,cachedDuration:r}):(v=e,k="cache",console.log(`${y} â
å·²ä»ç¼åè§é¢æåé³é¢:`,e.file_path))}else console.log(`${y} æªå½ä¸å¯ç¨ææ¾ç¼åï¼åå¤ä¸è½½é³é¢`)}catch(e){console.warn(`${y} ä»ç¼åè§é¢æåé³é¢å¤±è´¥ï¼åéä¸è½½:`,e)}if(!v?.success||!v.file_path){let r;try{let{listen:a}=await e.A(734371);r=await a("ytdlp-audio-progress",e=>{var r;let a=e.payload;if(a?.url&&a.url!==t.url)return;let i=(r=Number(a?.progress),!Number.isFinite(r)||r<=0?null:Math.min(68,50+Math.round(r/100*18)));null!=i&&p(t.id,i,"subtitles",a?.message||"ä¸è½½é³é¢")})}catch(e){console.warn(`${y} æ æ³çå¬é³é¢ä¸è½½è¿åº¦:`,e)}
9try{if(v=await s("ytdlp_download_audio",{url:t.url}),h(t.id))return{success:!1,handled:!0,platform:u.name};if(v?.success&&v.file_path){let e=Number(o.duration||0),r=Number(v.duration||0);if(e>0&&r>0&&r<.9*e&&(console.warn(`${y} â ï¸ ä¸è½½/ç¼åé³é¢æ¶é¿åçï¼å¼ºå¶éä¸`,{expectedDuration:e,downloadedDuration:r}),v=await s("ytdlp_download_audio",{url:t.url,forceRedownload:!0}),h(t.id)))return{success:!1,handled:!0,platform:u.name}}k="download"}finally{r?.()}}if(h(t.id))return{success:!1,handled:!0,platform:u.name};if(!v?.success||!v.file_path){let e=v?.error||"é³é¢ä¸è½½å¤±è´¥";if(console.warn(`${y} â ï¸ é³é¢ä¸è½½å¤±è´¥:`,e),u.canFallbackToServer)return console.log(`${y} åéå°æå¡ç«¯åå¹å¤ç`,{error:e}),{success:!1,handled:!1,platform:u.name};if(c(e,u.authErrorKeywords))return f(t.id,`${u.displayName} éè¦ç»å½ææï¼è¯·å¨è®¾ç½®ä¸ææåéè¯`),T(t.id),{success:!1,handled:!0,error:e,needsAuth:!0,platform:u.name};return f(t.id,`${u.displayName} å
容ä¸è½½å¤±è´¥: ${e}`),T(t.id),{success:!1,handled:!0,error:e,platform:u.name}}let C=Number(o.duration||0),E=Number(v.duration||0),P=i(E,C);if("ok"!==P.action&&console.warn(`${y} â ï¸ é³é¢æ¶é¿ä»åçï¼çä¼¼è´¦å·æ ä»è´¹/ä¼åè§çæé`,{action:P.action,finalAudioDuration:E,expectedDuration:C,coverage:P.coverage.toFixed(2)}),"fail-too-short"===P.action){let e=a(P.previewSeconds),r=a(P.totalSeconds);return f(t.id,`${u.displayName} è§é¢ï¼å½åè´¦å·å¯è½æ ä»è´¹/ä¼åè§çæéï¼ä»
è½è·å ${e} åéå
容ï¼è§é¢å
± ${r} åéï¼ã请å°ç½ç«è®¾ç½®é
ç½®è´¦å·ææåéè¯ã`),T(t.id),{success:!1,handled:!0,error:"audio-truncated-likely-no-purchase",platform:u.name}}"warn-preview"===P.action&&g(t.id,{kind:"paid-preview",previewSeconds:P.previewSeconds,totalSeconds:P.totalSeconds}),console.log(`${y} â
é³é¢${"cache"===k?"æå":"ä¸è½½"}æå:`,v.file_path),p(t.id,65,"subtitles","ä¸ä¼ é³é¢"),console.log(`${y} Step 3: ä¸ä¼ é³é¢è¿è¡è½¬å½...`);let _=null;try{if(!d){if(console.warn(`${y} ç¨æ·æªç»å½ï¼æ æ³ä¸ä¼ é³é¢`),u.canFallbackToServer)return{success:!1,handled:!1,platform:u.name};return f(t.id,"ç¨æ·æªç»å½ï¼æ æ³å¤çé³é¢"),T(t.id),{success:!1,handled:!0,platform:u.name}}try{let{readFile:t}=await e.A(74012);console.log(`${y} è¯»åæ¬å°é³é¢æä»¶:`,v.file_path);let r=await t(v.file_path),a=v.file_path.split("/").pop()||"audio.mp3",i=new File([r],a,{type:"audio/mpeg"});console.log(`${y} ä¸ä¼ é³é¢æä»¶:`,i.name,i.size,"bytes"),_=await m(i,d),console.log(`${y} é³é¢å·²ä¸ä¼ å° OSS:`,_)}catch(l){console.warn(`${y} å端ä¸ä¼ 失败ï¼åé Tauri åçä¸ä¼ :`,l),p(t.id,68,"subtitles","ä¸ä¼ é³é¢ï¼éè¯ï¼");let r=v.file_path.split(/[/\\]/).pop()||"audio.mp3",{uploadUrl:a,filePath:i}=await n.apiClient.file.getUploadUrl.query({fileName:r,contentType:"audio/mpeg"}),{uploadLocalFileToOSS:o,ossBaseUrl:s}=await e.A(355216);await o(v.file_path,a,"audio/mpeg"),_=`${s}/${i}`,console.log(`${y} Tauri åçä¸ä¼ æå:`,_)}}catch(e){if(console.warn(`${y} é³é¢ä¸ä¼ OSS 失败:`,e),u.canFallbackToServer)return{success:!1,handled:!1,platform:u.name};return f(t.id,"é³é¢ä¸ä¼ 失败"),T(t.id),{success:!1,handled:!0,platform:u.name}}if(!_){if(console.log(`${y} é³é¢ä¸ä¼ 失败`),u.canFallbackToServer)return{success:!1,handled:!1,platform:u.name};return f(t.id,"é³é¢ä¸ä¼ 失败"),T(t.id),{success:!1,handled:!0,platform:u.name}}p(t.id,75,"subtitles","æäº¤è½¬å½ä»»å¡");let A=await n.apiClient.contentPipeline.transcribe.mutate({contentId:o.dbId,audioUrl:_,forceFresh:!0===t.isRetry,audioConfig:t.audioConfig}).then(e=>{let t="failed"===e.subtitle.status;return{success:!t,error:t?"转å½ä»»å¡æäº¤å¤±è´¥":void 0}}).catch(async e=>(console.warn(`${y} pipeline transcribe 失败ï¼åéæ§æ¥å£:`,e),n.apiClient.content.transcribeAudioUrlSubmit.mutate({audioUrl:_,contentId:o.dbId,isRetry:!0===t.isRetry,audioConfig:t.audioConfig})));if(h(t.id))return{success:!1,handled:!0,platform:u.name};if(!A.success){if(console.warn(`${y} â ï¸ è½¬å½ä»»å¡æäº¤å¤±è´¥:`,A.error),u.canFallbackToServer)return{success:!1,handled:!1,platform:u.name};return f(t.id,A.error||"转å½ä»»å¡æäº¤å¤±è´¥"),T(t.id),{success:!1,handled:!0,error:A.error,platform:u.name}}return console.log(`${y} â
转å½ä»»å¡å·²æäº¤:`,{externalTaskId:"externalTaskId"in A?A.externalTaskId:"(pipeline)",reused:"reused"in A?A.reused:void 0}
9),p(t.id,80,"subtitles","è¯é³è½¬å½ä¸"),{success:!1,handled:!1,platform:u.name}}catch(e){if(console.error(`${y} â æ¬å°æå失败:`,e),u.canFallbackToServer)return{success:!1,handled:!1,platform:u.name};return f(t.id,e.message||"æ¬å°å广å失败"),T(t.id),{success:!1,handled:!0,error:e.message,platform:u.name}}},[d,m,p,f,g,h,b,T]),cleanupTask:T,getPlatformConfig:l,canExtractLocally:u}}],96540)},207333,e=>{"use strict";var t=e.i(191788),r=e.i(679935),a=e.i(193905),i=e.i(874010),o=e.i(496323),n=e.i(481304),s=e.i(892471),l=e.i(112349);let u=0;function c(){let{t:e}=(0,a.useTranslation)(),{analytics:c}=(0,l.useAnalytics)(),{submitUrls:d}=(0,s.useSubmitUrls)();return(0,t.useCallback)(async t=>{let a=Date.now();if(a-u<300)return void console.debug("Global paste debounced - too frequent");u=a;try{if((0,o.isAigtdBuild)()&&(0,o.isTauri)()){let t=await (0,i.readTauriClipboard)({prioritizeFiles:!0});if(t.hasFiles||t.hasImage){console.log("[usePaste] AIGTD: Files/images detected, please use Cmd+V"),r.toast.info(e("æ£æµå°åªè´´æ¿ä¸ææä»¶"),{description:e("è¯·ä½¿ç¨ Cmd/Ctrl+V ç²è´´å建任å¡")});return}}let a="string"==typeof t?t:await navigator.clipboard.readText();if(!a.trim()){(0,r.toast)(e("åªè´´æ¿ä¸ºç©º"),{description:e("请确ä¿åªè´´æ¿ä¸å
å«è§é¢é¾æ¥")}),c.track("PasteButton Clicked",{success:!1,reason:"empty_clipboard"});return}await d(a,{useQueue:!0,clearInput:!1})?c.track("PasteButton Clicked",{success:!0}):c.track("PasteButton Clicked",{success:!1,reason:"invalid_urls"})}catch(a){var s;console.error("Failed to read clipboard:",a);let t=(0,n.getShortcutKey)("V",(0,o.isTauri)());(0,r.toast)(e("读ååªè´´æ¿å¤±è´¥"),{description:(s=e("æµè§å¨æ¦ä½äºåªè´´æ¿ï¼è¯·ç¨å¿«æ·é®"),s.replaceAll("{{shortcut}}",t))}),c.track("PasteButton Clicked",{success:!1,reason:"clipboard_error"})}},[e,c,d])}e.s(["useGlobalPasteListener",0,function(){let e=c(),{analytics:r}=(0,l.useAnalytics)();(0,t.useEffect)(()=>{if((0,o.isAigtdBuild)())return;let t=t=>{let a=document.activeElement;if(a&&("INPUT"===a.tagName||"TEXTAREA"===a.tagName||a.isContentEditable))return;let i=t.clipboardData?.items;if(i&&Array.from(i).some(e=>e.type.startsWith("image/")))return;let o=t.clipboardData?.getData("text")??"";t.preventDefault(),r.track("PasteShortcut Used"),e(o)};return document.addEventListener("paste",t),()=>document.removeEventListener("paste",t)},[r,e])},"usePaste",0,function(){return{handlePaste:c()}}],207333)},109078,779885,716237,e=>{"use strict";var t=e.i(191788),r=e.i(679935),a=e.i(203828),i=e.i(960368),o=e.i(579319),n=e.i(251686),s=e.i(345303),l=e.i(193905);function u(e){if("string"!=typeof e||!e.startsWith("{")||!e.includes("__rateLimit"))return null;try{let t=JSON.parse(e);if(t?.__rateLimit!==!0)return null;return t}catch{return null}}function c(e){if(!e)return null;for(let t of[e?.message,e?.shape?.message,e?.data?.message,"string"==typeof e?.cause?e.cause:e?.cause?.message,e?.response?.data?.message,e?.response?.data?.error?.message]){let e=u(t);if(e)return e}return null}var d=e.i(496323);async function m(t){if((0,d.isTauri)()&&t.id)try{let{invoke:r}=await e.A(639641);await r("cli_complete_job",t)}catch(e){console.warn("[CLI] cli_complete_job failed:",e)}}var p=e.i(361934);function f(e){return"string"==typeof e&&e.trim().length>0}function g(e){return e?(()=>{try{return decodeURIComponent(e)}catch{return e}})().trim().toLowerCase().replace(/\\/g,"/").replace(/-[a-z0-9]+-encoded\.(mp3|m4a|webm)(\?.*)?$/i,"").replace(/-encoded\.(mp3|m4a|webm)(\?.*)?$/i,"").replace(/-compressed\.mp4(\?.*)?$/i,"").replace(/\.(mp3|m4a|mp4|wav|webm|mov|m4v)(\?.*)?$/i,""):""}function h(e){let t=(e.split("?")[0]||e).split("/");return t[t.length-1]||""}function b(e){for(let t of[e.generated,e.videoInfo,e.cached])if(f(t))return t.trim();return null}e.s(["hasUsableSummary",0,f,"pickRecoveredSummary",0,b,"taskMatchesViewedContent",0,function(e,t){let r=t.contentId?.trim();if(r&&(e.contentId===r||e.videoDetail?.dbId===r))return!0;let a=g(t.url);if(!a)return!1;for(let t of[e.url,e.videoDetail?.url,e.localFilePath,e.sourceFilePath]){let e=g(t);if(!e)continue;if(e===a)return!0;let r=h(a),i=h(e);if(r.length>=12&&r===i)return!0}return!1}],779885);var y=e.i(285562),T=e.i(748629),S=e.i(226568),w=e.i(994421),I=e.i(49
90914),v=e.i(975682),k=e.i(177946),C=e.i(197083),E=e.i(184603),P=e.i(325669),_=e.i(983410),A=e.i(994135),L=e.i(866020),$=e.i(96540),R=e.i(666111),U=e.i(955129),x=e.i(134936);let M="YOUTUBE_SUBTITLE_ERROR",N="BILIBILI_SUBTITLE_ERROR";function F(e,t){return(0,d.isTauri)()?t:(0,x.isYouTubeVideo)(e)&&!t.startsWith(M)?`${M}:${t}`:e.includes("bilibili.com/video")&&!t.startsWith(N)?`${N}:${t}`:t}function D(e,t,r){if(!e)return t;let a=[],i=new Set,o=e=>{if("string"!=typeof e)return;let t=e.trim();if(!(!t||i.has(t))){if(i.add(t),r){let e=u(t);if(e){let t;return void a.push((t=r("5h"===e.window?"rateLimitWindow_5h":"rateLimitWindow_7d"),r("rateLimitMessage_summary",{tier:e.tier,window:t,resetIn:e.resetIn})))}}a.push(t)}};o(e?.message),o(e?.shape?.message),o(e?.data?.message),o("string"==typeof e?.cause?e.cause:e?.cause?.message),o(e?.response?.data?.message),o(e?.response?.data?.error?.message);let n=a.length>0?a.join(" · "):t;return(0,U.containsTechLeak)(n)?(0,U.toClientInternalErrorMessage)(n,t):n}function O(e,t,r="errors:page.somethingWentWrong"){return e.startsWith("errors:")?t({message:e},r):e}function B(e,t,r){let a=t||r;if("number"==typeof a&&a>0){let t=Math.floor(a/60),r=Math.floor(a%60);return t>0?`${e} é³é¢ ${t} å ${r.toString().padStart(2,"0")} ç§`:`${e} é³é¢ ${r} ç§`}return e}e.s(["BILIBILI_SUBTITLE_ERROR",0,N,"YOUTUBE_SUBTITLE_ERROR",0,M,"extractErrorMessage",0,D,"localizeErrorsCode",0,O,"withPlatformErrorPrefix",0,F],716237);class q extends Error{isPipelineWireUnavailable=!0;constructor(e){super(`contentPipeline wire unavailable: ${e}`)}}function Q(e){return!!e?.isPipelineWireUnavailable}async function H(e){let t=await I.apiClient.contentPipeline.fetch.mutate({url:e.url||void 0,contentId:e.contentId||void 0,target:e.target,forceFresh:e.forceFresh,audioConfig:e.audioConfig,clientTitle:e.clientTitle,includeDetail:!0}),r=t?.detail;if(!r)throw new q("fetch returned no detail projection");return r}async function W(e){let t=await I.apiClient.contentPipeline.summarize.mutate({url:e.url,promptConfig:e.promptConfig}),r=t?.summaryText;if("string"!=typeof r)throw new q("summarize returned no summaryText (promptConfig ignored?)");return{summary:r,contentId:t?.id}}async function G(e,t){return e.content.info.fetch({url:t.url,contentId:t.contentId,audioConfig:t.audioConfig,skipSubtitleTask:t.skipSubtitleTask,isRefresh:t.isRefresh,clientTitle:t.clientTitle})}async function V(e){let t=await I.apiClient.video.summaryBySetting.mutate({url:e.url,promptConfig:e.promptConfig});return{summary:t.summary,contentId:t.contentId}}let Y="__pipelineWire";async function z(e,t){try{let e={url:t.url||void 0,contentId:t.contentId||void 0,target:t.skipSubtitleTask?"metadata":"subtitle",forceFresh:t.isRefresh,audioConfig:t.audioConfig,clientTitle:t.clientTitle},r=await H(e);return r[Y]=!0,r}catch(r){return Q(r)||console.warn("[TaskProcessor] contentPipeline.fetch 失败ï¼åé content.info å
¥å£:",r),G(e,{url:t.url,contentId:t.contentId,audioConfig:t.audioConfig,skipSubtitleTask:t.skipSubtitleTask,isRefresh:t.isRefresh,clientTitle:t.clientTitle})}}async function K(e){var t;if(t=e.videoInfo,t?.[Y])try{return await W({url:e.url,promptConfig:e.promptConfig})}catch(e){if(!Q(e))throw e;console.warn("[TaskProcessor] contentPipeline.summarize è½å缺失ï¼åé summaryBySetting")}return V({url:e.url,promptConfig:e.promptConfig})}e.s(["useTaskProcessor",0,function(){let{t:e}=(0,l.useTranslation)(),u=(0,L.useTranslateError)(),{summarySetting:d,audioConfig:g}=(0,R.default)(),h=(0,v.useUser)(),U=(0,v.useSupabaseClient)(),{isPaidMemberUser:x,isProPaidMemberUser:M}=(0,_.useUserOrdersAndMemberType)(),N=(0,C.useUserIntegrations)(),q=(0,t.useRef)(new Map),Q=(0,a.useRouter)(),H=I.api.useUtils(),W=(0,A.useInvalidateUserContent)(),G=(0,E.useAttachToCollection)(),V=(0,T.useAppStore)(e=>e.uploadFileToOSS),Y=(0,T.useAppStore)(e=>e.fetchSelectTranslation),j=(0,T.useAppStore)(e=>e.updateContent),X=(0,w.useTaskQueueStore)(e=>e.queue),J=(0,w.useTaskQueueStore)(e=>e.updateTaskProgress),Z=(0,w.useTaskQueueStore)(e=>e.updateTaskVideoDetail),ee=(0,w.useTaskQueueStore)(e=>e.setTaskError),et=(0,t.useCallback)((e,t)=>{ee(e,t);let r=w.useTaskQueueStore.getState().queue.find(t=>
9t.id===e);r?.cliJobId&&m({id:r.cliJobId,ok:!1,error:t,needs_auth:!!t&&/ææ|ç»å½|ä¼å|å
çµ|Sign in|cookies?/i.test(t)})},[ee]),er=(0,w.useTaskQueueStore)(e=>e.setTaskWarning),ea=(0,w.useTaskQueueStore)(e=>e.setTaskCompleted),ei=(0,w.useTaskQueueStore)(e=>e.setMaxConcurrent),eo=(0,w.useTaskQueueStore)(e=>e.dispatchTaskEvent),en=(0,w.useTaskQueueStore)(e=>e.enterRateLimitWait),es=(0,w.useTaskQueueStore)(e=>e.clearRateLimited),el=(0,w.useTaskQueueStore)(e=>e.requeueForSubtitleTimeout),eu=(0,w.useTaskQueueStore)(e=>e.rateLimitedUntil),ec=(0,t.useCallback)(()=>w.useTaskQueueStore.getState().queue||[],[]);(0,t.useEffect)(()=>{ei(M?w.MAX_CONCURRENT_PRO:w.MAX_CONCURRENT_PLUS)},[M,ei]);let ed=(0,t.useCallback)(e=>ec().some(t=>t.id===e),[ec]),em=(0,t.useCallback)(e=>{let t=ed(e);return t||(q.current.delete(e),console.log("â¹ï¸ ä»»å¡å·²è¢«åæ¶ï¼åæ¢åç»å¤ç:",e)),console.log("ä»»å¡ä»å¨æ´»è·ï¼å³å°å¤çä»»å¡:",e),!t},[ed]),ep=(0,t.useCallback)(async(t,a)=>{if(em(t.id))return;let s="";try{var l;let e=!!t.isRetry,o={...d,customPrompt:t.customPrompt??""},u=e?{...o,isRefresh:!0}:o;console.log("========å¼å§èªå¨çææ»ç»========",{taskId:t.id,contentId:a.dbId,customInput:u.customPrompt,model:u.model,shouldForceRefresh:e,isPaidMemberUser:x});let c=null;if(x){let r=d.outputLanguage||i.DEFAULT_LANGUAGE,o={contentId:a.dbId,outputLanguage:r,summaryType:n.CHAPTER_SUMMARY_TYPE.TIMELINE,...e?{retryFlag:!0}:{}},l=K({url:t.url,promptConfig:u,videoInfo:a}),m=null!=w.useTaskQueueStore.getState().rateLimitedUntil?Promise.resolve(null):H.video.chapterSummary.fetch(o).catch(e=>(console.warn("ç« èæ»ç»é¢å失败ï¼ä½ä¸å½±å主æµç¨:",e),null)),p=await l;if(em(t.id))return;if(!p.summary)throw console.error("[useTaskProcessor] empty summary from server",p),Error(`æ»ç»çæå¤±è´¥ï¼æå¡ç«¯è¿å空å
容ï¼contentId=${p.contentId||"n/a"}ï¼`);s=p.summary,J(t.id,95,"chapter");let f=await m;if(em(t.id))return;e&&f&&H.video.chapterSummary.setData({contentId:a.dbId,outputLanguage:r,summaryType:n.CHAPTER_SUMMARY_TYPE.TIMELINE},f),c=f??null,console.log("========æ»ç»åç« èæ»ç»çæ/é¢åæå========",{taskId:t.id,summaryLength:p.summary?.length||0,hasChapterSummary:!!f?.chapterSummary,chapterCached:"æ°æ®å·²ç¼åå° React Queryï¼SummaryWithChapter ç»ä»¶å°ç´æ¥ä½¿ç¨ç¼å"})}else{let e=await K({url:t.url,promptConfig:u,videoInfo:a});if(em(t.id))return;if(!e.summary)throw console.error("[useTaskProcessor] empty summary from server",e),Error(`æ»ç»çæå¤±è´¥ï¼æå¡ç«¯è¿å空å
容ï¼contentId=${e.contentId||"n/a"}ï¼`);s=e.summary,console.log("========æ»ç»çææå========",{taskId:t.id,summaryLength:e.summary?.length||0})}if(e){let e=d.outputLanguage||i.DEFAULT_LANGUAGE;try{await Promise.all([H.video.cachedSummary.invalidate(),H.video.chapterSummary.invalidate({contentId:a.dbId,outputLanguage:e,summaryType:n.CHAPTER_SUMMARY_TYPE.TIMELINE})])}catch(e){console.warn("[useTaskProcessor] invalidate after summary failed:",e)}}if(J(t.id,100,"completed"),ea(t.id,a.dbId||"",a),t.cliJobId){let e=s||a.summary;m({id:t.cliJobId,ok:!0,summary:e,subtitles:a.subtitlesArray,json_body:{success:!0,id:a.dbId||"",summary:e,detail:{subtitlesArray:a.subtitlesArray||[]}}})}(0,k.runAutoSyncExportOnTaskComplete)({videoDetail:{...a,summary:s||a.summary},summary:s,chapterSummary:c,integrations:N});let f=w.useTaskQueueStore.getState().queue.find(e=>e.id===t.id)??t,g=(0,P.resolveTaskTargetCollectionId)(f,{readFormTarget:()=>T.useAppStore.getState().targetCollectionId}),h=a.dbId||f.contentId;g&&h&&await G(g,[h]),es(),W.forCompletedTask({videoUrl:t.url}),q.current.delete(t.id);let b=w.useTaskQueueStore.getState().queue,y=b.filter(e=>"pending"===e.status).length,S=b.filter(e=>"processing"===e.status&&e.id!==t.id).length;console.log("ð å³å®éç¥è¡ä¸º:",{taskId:t.id,pendingTasks:y,processingTasks:S,totalQueueLength:b.length,isPaidMemberUser:x});let I=`è§é¢"${t.videoDetail?.title||t.title}"æ»ç»å®æ`;((l={pendingTasks:y,processingTasks:S,currentPath:Q.asPath||Q.pathname}).pendingTasks>0||l.processingTasks>0?1:(0,p.isMiniPlayerDetailPath)(l.currentPath))?r.toast.success(I,{description:x?"å·²èªå¨çææ»ç»åç« èæ»ç»å
容ï¼ç¹å»æ¥ç":"å·²èªå¨çææ»ç»å
容ï¼ç¹å»æ¥ç",action:{label:"æ¥çæ»ç»",onClick:()=>{Q.push(`/content/${a.dbId}`)}}}):(r.toast.success(I,{description:x?"å·²èªå¨çææ»ç»åç« èæ»ç»å
å®¹ï¼æ£å¨ä¸ºæ¨æå¼é¡µé¢...":"å·²èªå¨çææ»ç»å
å®¹ï¼æ£å¨ä¸ºæ¨æå¼é¡µé¢..."}),setTimeout(()=>{Q.push(`/content/${a.dbId}`)},1e3))}catch(m){if(console.error("å¤çæ»ç»å¤±è´¥:",m),em(t.id))return;let i=c(m);if(i){en(t.id,Date.now()+6e4*Math.max(i.resetIn,1)),q.current.delete(t.id);return}let n=b({generated:s,videoInfo:a?.summary});if(!n&&(a?.dbId||t.url))try{let e=await H.video.cachedSummary.ensureData({summarySetting:{...S.SUMMARY_SETTINGS_DEFAULTS,outputLanguage:d.outputLanguage,detailLevel:d.detailLevel},...a?.dbId?{contentId:a.dbId}:{videoUrl:t.url},shouldNotSave:!0});n=b({cached:e?.summary})}catch(e){console.warn("[useTaskProcessor] recover cachedSummary failed:",e)}if(f(n)){J(t.id,100,"completed"),ea(t.id,a.dbId||"",{...a,summary:n}),q.current.delete(t.id),W.forCompletedTask({videoUrl:t.url});let i=t.videoDetail?.title||t.title||"";f(s)?r.toast.success(e("è§é¢ã{{title}}ãæ»ç»å®æ",{title:i}
9)):r.toast.warning(e("è§é¢ã{{title}}ãå·²ææ»ç»",{title:i}),{description:e("éæ°çææªå®æï¼ä»æ¾ç¤ºå·²ææ»ç»")});return}let l=D(m,e("æ»ç»çæå¤±è´¥"),e),u=e(l);et(t.id,u),q.current.delete(t.id),r.toast.error(`è§é¢"${t.videoDetail?.title||t.title}"æ»ç»å¤±è´¥`,{description:u,action:u.includes(o.PAYMENT_ERROR_MESSAGE)?{label:"å级ä¼å",onClick:()=>{Q.push("/shop")}}:{label:"éè¯",onClick:()=>{J(t.id,85,"summary"),setTimeout(()=>ep(t,a),1e3)}}})}},[J,ea,et,d,x,N,Q.pathname,H,W,G,em,en,es]),ef=(0,t.useCallback)(async(t,a)=>{if(em(t.id))return;let i=T.useAppStore.getState().savedVideoDetail?.url,o=!i||i===t.url;if(o&&j(a),!t.autoTranslateLanguage){J(t.id,85,"summary"),await ep(t,a);return}if(!o){console.log("âï¸ è·³è¿èªå¨ç¿»è¯ï¼éå½åæ¥ççè§é¢ï¼ï¼ç´æ¥è¿å
¥æ»ç»é¶æ®µ:",t.id),J(t.id,85,"summary"),await ep(t,a);return}try{if(console.log("========å¼å§èªå¨ç¿»è¯========",{taskId:t.id,targetLanguage:t.autoTranslateLanguage,subtitlesCount:a.subtitlesArray?.length||0}),J(t.id,75,"translating"),em(t.id))return;let e={[t.autoTranslateLanguage]:!0};if(await Y(e),em(t.id))return;console.log("========èªå¨ç¿»è¯å®æ========",{taskId:t.id,targetLanguage:t.autoTranslateLanguage}),J(t.id,85,"summary"),await ep(t,a)}catch(o){if(console.error("èªå¨ç¿»è¯å¤±è´¥:",o),em(t.id))return;let i=D(o,e("请ç¨åå¨å
容页æå¨ç¿»è¯"));console.warn("ç¿»è¯å¤±è´¥ï¼ç»§ç»çææ»ç»:",i),r.toast.warning(e("åå¹ç¿»è¯å¤±è´¥ï¼ä½ä¼ç»§ç»çææ»ç»"),{description:i}),J(t.id,85,"summary"),await ep(t,a)}},[J,j,Y,ep,em,e]),{processSubtitlesLocally:eg,cleanupTask:eh}=(0,$.useLocalSubtitleExtractor)({user:h,uploadFileToOSS:V,updateTaskProgress:J,setTaskError:et,setTaskWarning:er,abortIfInactive:em,processAfterSubtitles:ef}),eb=(0,t.useCallback)(async(e,t)=>{let r,a;if(em(e.id))return;if(!t.dbId){et(e.id,"è§é¢ä¿¡æ¯æ æ"),q.current.delete(e.id);return}let i=(r=[],a=!1,{nudge(){if(0===r.length){a=!0;return}let e=r;r=[],e.forEach(e=>e())},wait:e=>a?(a=!1,Promise.resolve("nudged")):new Promise(t=>{let a=setTimeout(()=>{r=r.filter(e=>e!==i),t("timeout")},e),i=()=>{clearTimeout(a),t("nudged")};r.push(i)})}),o=(0,y.subscribeContentSignal)(U,t.dbId,()=>i.nudge()),n=()=>o.unsubscribe(),l=t=>{console.error("å¤çåå¹å¤±è´¥:",t),n(),em(e.id)||(et(e.id,F(e.url,D(t,"åå¹å¤ç失败"))),q.current.delete(e.id))};try{var c;let r,a,d={taskId:e.id,taskUrl:e.url,videoInfo:t,maxPollingCount:s.MAX_POLLING_COUNT,getPollCount:()=>q.current.get(e.id)||0,setPollCount:t=>q.current.set(e.id,t),clearPollCount:()=>q.current.delete(e.id),waitNext:()=>i.wait(o.isConnected()?3*s.SUBTITLE_POLLING_INTERVAL:s.SUBTITLE_POLLING_INTERVAL),stopSignal:n,abortIfInactive:()=>em(e.id),updateProgress:(t,r,a)=>J(e.id,t,r,a),failTask:t=>et(e.id,t),dispatchAuthRequired:(t,r)=>{eo(e.id,{type:"AUTH_REQUIRED",reason:t,platform:r??(0,$.getPlatformConfig)(e.url)?.name??"youtube",resumeStep:"extract"}),q.current.delete(e.id)},requeueForTimeout:()=>!((w.useTaskQueueStore.getState().queue.find(t=>t.id===e.id)?.subtitleAutoRetries||0)>=2)&&(q.current.delete(e.id),el(e.id),!0),translateError:(e,t)=>u(e,t),withPlatformPrefix:t=>F(e.url,t),onSubtitlesReady:async(r,a)=>{await ef(e,{...t,subtitlesArray:r,duration:a||t.duration})},onPollError:l},m=r=async()=>{if(d.abortIfInactive())return void d.stopSignal();let e=d.getPollCount();if(e>=d.maxPollingCount){d.stopSignal(),d.failTask("åå¹å¤çè¶
æ¶ï¼è¯·ç¨åéè¯"),d.clearPollCount();return}let t=await I.apiClient.content.subtitlesTaskStatus.query({taskId:d.videoInfo.dbId});if(d.abortIfInactive())return void d.stopSignal();if(!t){d.setPollCount(e+1),d.waitNext().then(()=>r().catch(d.onPollError));return}let{status:a,subtitlesArray:i,duration:o}=t,n={pending:"æéä¸",processing:"è¯é³è½¬å½ä¸"}[a],s=n?B(n,o,d.videoInfo?.duration):void 0;if(d.updateProgress({pending:50,processing:70,completed:90,failed:0}[a]||50,"subtitles",s),"completed"===a&&i)d.stopSignal(),await d.onSubtitlesReady(i,o);else if("failed"===a)if(d.stopSignal(),t.authRequired)d.dispatchAuthRequired(t.authRequired.reason,t.authRequired.platform),d.clearPollCount();else if("retryable"in t&&!0===t.retryable&&d.requeueForTimeout())d.clearPollCount();else{let e=t.message||"åå¹å¤ç失败",r=e.startsWith("errors:")?d.translateError({message:e},"errors:subtitle.transcriptionFailed"):e;d.failTask(d.withPlatformPrefix(r)),d.clearPollCount()}else d.setPollCount(e+1),d.waitNext().then(()=>r().catch(d.onPollError))},p=(c={fallbackToLegacy:()=>m()},a=async()=>{let e;if(d.abortIfInactive())return void d.stopSignal();let t=d.getPollCount();if(t>=d.maxPollingCount){d.stopSignal(),d.failTask("åå¹å¤çè¶
æ¶ï¼è¯·ç¨åéè¯"),d.clearPollCount();return}try{e=await I.apiClient.contentPipeline.observe.query({contentId:d.videoInfo.dbId})}catch(e){console.warn("[TaskProcessor] contentPipeline.observe 失败ï¼åé subtitlesTaskStatus 轮询:",e),await c.fallbackToLegacy();return}if(d.abortIfInactive())return void d.stopSignal();let r=e.subtitle;if("ready"===r.status){d.stopSignal();let t=await I.apiClient.contentPipeline.readSubtitles.query({contentId:d.videoInfo.dbId});if(d.abortIfInactive())return;d.updateProgress(90,"subtitles"),await d.onSubtitlesReady(t.subtitles,t.duration||e.duration);return}if("failed"===r.status){d.stopSignal();let e=r.errorMessage||"åå¹å¤ç失败";if("auth_required"===r.errorClass)d.dispatchAuthRequired(e),d.clearPollCount();else if("watchdog_timeout"===r.errorClass&&d.requeueForTimeout())d.clearPollCount();else{let t=e.startsWith("errors:")?d.translateError({message:e},"errors:subtitle.transcriptionFailed"):e;d.failTask(d.withPlatformPrefix(t)),d.clearPollCount()}return}let i="running"===r.status;d.updateProgress(i?70:50,"subtitles",B(i?"è¯é³è½¬å½ä¸":"æéä¸",e.duration,d.videoInfo?.duration)),d.setPollCount(t+1),d.waitNext().then(()=>a().catch(d.onPollError))});await p()}catch(e){l(e)}},[et,J,ef,em,eo,el,u,U]),ey=(0,t.useCallback)(async t=>{if(!em(t.id)){if(!h?.id){et(t.id,"ç¨æ·æªç»å½"),q.current.delete(t.id);return}try{if(t.isUploadedFile&&t.contentId){J(t.id,60,"subtitles");let e=await z(H,{url:t.url,contentId:t.contentId,audioConfig:g,isRefresh:t.isRetry});if(em(t.id))return;if(!e)throw Error("è·åæä»¶ä¿¡æ¯å¤±è´¥");if(Z(t.id,e),e.subtitlesArray&&e.subtitlesArray.length>0)return void await ef(t,e);await eb(t,e);return}J(t.id,10,"info");let e=(0,$.canExtractLocally)(t.url),r=t.audioConfig||g,a=await z(H,{url:t.url,contentId:"",audioConfig:r,skipSubtitleTask:e,isRefresh:t.isRetry,clientTitle:t.title});if(em(t.id))return;if(!a)throw Error("è·åè§é¢ä¿¡æ¯å¤±è´¥");if(console.log("========æ´æ°ä»»å¡çè§é¢è¯¦æ
========",a),Z(t.id,a),J(t.id,30,"info"),t.isRetry){let e=T.useAppStore.getState().savedVideoDetail?.url;e&&e!==t.url||T.useAppStore.getState().updateContent({...a,subtitlesArray:[]})}if(a.subtitlesArray&&a.subtitlesArray.length>0&&!t.isRetry)return void await ef(t,a);if(J(t.id,40,"subtitles"),(0,$.canExtractLocally)(t.url)){let e=(0,$.getPlatformConfig)(t.url);console.log(`[TaskProcessor] ð¬ æ£æµå° ${e?.displayName} è§é¢ï¼å°è¯æ¬å°å广å...`);let r=await eg(t,a);if(r.handled)return void(r.success?console.log(`[TaskProcessor] â
${e?.displayName} æ¬å°å广åæå`):console.log(`[TaskProcessor] â ï¸ ${e?.displayName} æ¬å°å广åå·²å¤çï¼å¯è½éè¦ææï¼`));console.log(`[TaskProcessor] âªï¸ ${e?.displayName} 移交 pipeline observe 轮询`)}setTimeout(()=>{eb(t,a)},2*s.SUBTITLE_POLLING_INTERVAL)}catch(o){if(console.error("å¤çè§é¢ä¿¡æ¯å¤±è´¥:",o),em(t.id))return;let r=c(o);if(r){en(t.id,Date.now()+6e4*Math.max(r.resetIn,1)),q.current.delete(t.id);return}let a=O(D(o,"è·åè§é¢ä¿¡æ¯å¤±è´¥",e),u),i=F(t.url,(0,$.getPlatformErrorMessage)(t.url,a));et(t.id,i),q.current.delete(t.id)}}},[h?.id,J,Z,et,ea,ef,eb,eg,g,em,en,u,e]);return(0,t.useEffect)(()=>{let e=X?.filter(e=>"processing"===e.status&&!e.isLocalMode)||[];e.length>0&&console.log("ð¯ çå¬å°processing任塿°é:",e.length,e.map(e=>({id:e.id,title:e.title}
9))),e.forEach(e=>{q.current.has(e.id)?console.log("â¸ï¸ ä»»å¡å·²å¨å¤çä¸ï¼è·³è¿:",e.id):(console.log("ð å¼å§å¤çæ°ä»»å¡:",e.id,e.title),q.current.set(e.id,0),ey(e))})},[X,ey]),(0,t.useEffect)(()=>()=>{q.current.clear()},[]),(0,t.useEffect)(()=>{if(!X)return;let e=new Set(X.map(e=>e.id));for(let t of Array.from(q.current.keys()))e.has(t)||q.current.delete(t)},[X]),(0,t.useEffect)(()=>{if(!eu)return;let e=setInterval(()=>{let e=w.useTaskQueueStore.getState();e.rateLimitedUntil&&(!e.queue.some(e=>"pending"===e.status||"processing"===e.status)&&Date.now()>=e.rateLimitedUntil?e.clearRateLimited():e.processNextTask())},15e3);return()=>clearInterval(e)},[eu]),{processVideoInfo:ey,processSubtitles:eb,processSummary:ep,cancelAllTasks:(0,t.useCallback)(e=>{let t=ec(),r=e&&e.length>0?e:t.filter(e=>"pending"===e.status||"processing"===e.status).map(e=>e.id);if(0===r.length)return{cancelled:0};let a=new Set(r);return w.useTaskQueueStore.setState(e=>{let t=e.queue.filter(e=>!a.has(e.id));return{queue:t,processingCount:t.filter(e=>"processing"===e.status).length}}),r.forEach(e=>q.current.delete(e)),setTimeout(()=>{w.useTaskQueueStore.getState().processNextTask()},50),{cancelled:r.length}},[ec])}}],109078)},866020,e=>{"use strict";var t=e.i(191788),r=e.i(193905);e.s(["useTranslateError",0,function(){let{t:e}=(0,r.useTranslation)();return(0,t.useCallback)((t,r="errors:page.somethingWentWrong")=>{let a=t?.message;if(!a)return e(r);let i=e(a);return i!==a?i:e(r)},[e])}])},184092,e=>{"use strict";var t=e.i(748629),r=e.i(975682);e.s(["useCheckUserAndLogin",0,()=>{let e=(0,r.useUser)(),a=(0,t.useAppStore)(e=>e.showSignIn);return{checkUser:function(){return e||a(!0),e}}}])},325669,e=>{"use strict";let t="bibigpt-folder-target-collection";e.s(["FOLDER_MONITOR_TARGET_COLLECTION_KEY",0,t,"resolveTaskTargetCollectionId",0,function(e,r){if(e.isLocalMode)return null;let a=e.targetCollectionId?.trim();return a?a:e.localFilePath||e.sourceFilePath?(r?.readFolderTarget??(()=>(function(){let e=(void 0)??("u">typeof globalThis&&"localStorage"in globalThis?globalThis.localStorage:null);if(!e)return null;try{let r=e.getItem(t);if(null==r)return null;let a=JSON.parse(r);if("string"!=typeof a)return null;let i=a.trim();return i.length>0?i:null}catch{return null}})()))():r?.readFormTarget?.()?.trim()||null}])},874010,e=>{"use strict";var t=e.i(496323);async function r(r){if(!(0,t.isTauri)())return{hasText:!1,hasImage:!1,hasFiles:!1};try{let t,a,i,o,n,{hasText:s,hasImage:l,hasFiles:u,readText:c,readFiles:d}=await e.A(718168);if(r?.prioritizeFiles){let[e,r,o]=await Promise.all([s(),l(),u()]);i=o,a=r,t=e}else{let e=await Promise.all([s(),l(),u()]);t=e[0],a=e[1],i=e[2]}i?n=(await d()).files.map(e=>e.path):t&&(o=await c());let m=a;return{hasText:t&&!i,hasImage:m,hasFiles:i,text:o,files:n}}catch(e){return console.error("[tauriClipboard] Failed to read clipboard:",e),{hasText:!1,hasImage:!1,hasFiles:!1}}}e.s(["readTauriClipboard",0,r])}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.