"use strict";const e=require("../../common/vendor.js"),i=require("../../config/api.js"),o={data:()=>({API_BASE:i.API_BASE,videos:[],loading:!1,enablePrecache:!1,precacheQueue:[],precaching:!1,precacheInFlight:{},publishDialogVisible:!1,publishTitle:"",publishTargetVideo:null,shareTargetVideo:null}),onLoad(){this.loadVideos()},onShareAppMessage(){const e=this.shareTargetVideo||{},i=e&&(e.name||"").trim()?e.name:"我的视频",o=e&&e.photo_url?e.photo_url:void 0,t=e&&(e.edited_video_url||e.local_video_path||e.video_url)?String(e.edited_video_url||e.local_video_path||e.video_url):"";return{title:i,path:"/pages/video-player/video-player?audioInVideo=1&url="+encodeURIComponent(t)+"&title="+encodeURIComponent(i),imageUrl:o}},onShareTimeline(){const e=this.shareTargetVideo||{},i=e&&(e.name||"").trim()?e.name:"我的视频",o=e&&e.photo_url?e.photo_url:void 0,t=e&&(e.edited_video_url||e.local_video_path||e.video_url)?String(e.edited_video_url||e.local_video_path||e.video_url):"";return{title:i,query:"url="+encodeURIComponent(t)+"&title="+encodeURIComponent(i),imageUrl:o}},methods:{normalizeMediaUrl(e){return e?e.startsWith("/")?`${this.API_BASE}${e}`:e.startsWith("http://115.190.167.176:20002")?e.replace("http://115.190.167.176:20002",this.API_BASE):e:e},ensureLoginOrRedirect(){const i=e.index.getStorageSync("token")||"",o=e.index.getStorageSync("userId")||"";return!(!i||!o)||(e.index.showToast({title:"请先登录",icon:"none"}),setTimeout((()=>{e.index.navigateTo({url:"/pages/login/login"})}),800),!1)},isVideoPublishable(e){if(!e)return!1;return!!(e.edited_video_url||e.local_video_path||e.video_url||e.videoUrl||e.localVideoPath)},openPublishDialog(e){this.publishTargetVideo=e,this.publishTitle=e&&e.name?e.name:"复活视频",this.publishDialogVisible=!0},closePublishDialog(){this.publishDialogVisible=!1,this.publishTitle="",this.publishTargetVideo=null},confirmPublish(){const i=this.publishTargetVideo;if(!i)return void this.closePublishDialog();const o=(this.publishTitle||"").trim();o?o.length>20?e.index.showToast({title:"标题不能超过20字",icon:"none"}):(this.closePublishDialog(),this.publishVideo(i,o)):e.index.showToast({title:"请输入标题",icon:"none"})},publishVideo(i,o){const t=e.index.getStorageSync("token")||"",s=e.index.getStorageSync("userId")||"";t&&s?(e.index.showLoading({title:"发布中..."}),e.index.request({url:`${this.API_BASE}/api/works/publish/revival-video`,method:"POST",header:{"Content-Type":"application/json","X-User-Id":s,Authorization:t?`Bearer ${t}`:""},data:{userId:Number(s),revivalVideoId:i.id,title:o},success:o=>{var t;200===o.statusCode&&o.data&&o.data.success?(i.published=!0,i.workId=o.data.data&&o.data.data.id,e.index.showToast({title:"发布成功",icon:"success"})):e.index.showToast({title:(null==(t=o.data)?void 0:t.message)||"发布失败",icon:"none"})},fail:()=>{e.index.showToast({title:"发布失败",icon:"none"})},complete:()=>{e.index.hideLoading()}})):e.index.showToast({title:"请先登录",icon:"none"})},loadVideos(){if(!this.ensureLoginOrRedirect())return this.loading=!1,void(this.videos=[]);this.loading=!0;const i=e.index.getStorageSync("userId")||"",o=e.index.getStorageSync("token")||"";e.index.request({url:`${this.API_BASE}/api/photo-revival/videos`,method:"GET",header:{"X-User-Id":i,Authorization:o?`Bearer ${o}`:""},success:e=>{console.log("[RevivalHistory] API响应:",e.data),console.log("[RevivalHistory] 用户ID:",i),e.data.success&&(this.videos=(e.data.videos||[]).map((e=>({...e,photo_url:this.normalizeMediaUrl(e&&e.photo_url?String(e.photo_url):""),video_url:this.normalizeMediaUrl(e&&e.video_url?String(e.video_url):""),edited_video_url:this.normalizeMediaUrl(e&&e.edited_video_url?String(e.edited_video_url):""),local_video_path:this.normalizeMediaUrl(e&&e.local_video_path?String(e.local_video_path):""),audio_url:this.normalizeMediaUrl(e&&e.audio_url?String(e.audio_url):""),published:!1,workId:null}))),console.log("[RevivalHistory] 加载视频数量:",this.videos.length),this.checkVideosCache(),this.loadPublishStatus())},fail:i=>{console.error("[RevivalHistory] 加载失败:",i),e.index.showToast({title:"加载失败",icon:"none"})},complete:()=>{this.loading=!1}})},loadPublishStatus(){const i=e.index.getStorageSync("token")||"",o=e.index.getStorageSync("userId")||"";this.videos.forEach((t=>{e.index.request({url:`${this.API_BASE}/api/works/source?sourceType=REVIVAL_VIDEO&sourceId=${t.id}`,method:"GET",header:{"X-User-Id":o,Authorization:i?`Bearer ${i}`:""},success:e=>{200===e.statusCode&&e.data&&(t.published=1===e.data.published,t.workId=e.data.id)}})}))},togglePublish(i){const o=e.index.getStorageSync("token")||"",t=e.index.getStorageSync("userId")||"";o&&t?i.published?e.index.showModal({title:"取消发布",content:"确定要从作品广场下架该作品吗?",success:s=>{s.confirm&&(e.index.showLoading({title:"处理中..."}),e.index.request({url:`${this.API_BASE}/api/works/unpublish?workId=${i.workId}&userId=${t}`,method:"POST",header:{"X-User-Id":t,Authorization:o?`Bearer ${o}`:""},success:o=>{var t;200===o.statusCode&&o.data&&o.data.success?(i.published=!1,e.index.showToast({title:"已取消发布",icon:"success"})):e.index.showToast({title:(null==(t=o.data)?void 0:t.message)||"操作失败",icon:"none"})},fail:()=>{e.index.showToast({title:"操作失败",icon:"none"})},complete:()=>{e.index.hideLoading()}}))}}):this.openPublishDialog(i):e.index.showToast({title:"请先登录",icon:"none"})},checkVideosCache(){let i=0;this.videos.forEach((o=>{const t=o.edited_video_url||o.local_video_path||o.video_url;if(t){const s=this.normalizeMediaUrl(t),a=this.generateCacheKey(s),n=e.index.getStorageSync(a);o.isCached=!!n,this.enablePrecache&&!o.isCached&&"undefined"!=typeof plus&&i<3&&(i++,this.enqueuePrecache(s))}}))},enqueuePrecache(e){e&&(this.precacheInFlight[e]||-1===this.precacheQueue.indexOf(e)&&(this.precacheQueue.push(e),this.processPrecacheQueue()))},async processPrecacheQueue(){if(!this.precaching&&this.precacheQueue.length){this.precaching=!0;try{for(;this.precacheQueue.length;){const i=this.precacheQueue.shift();if(i&&!this.precacheInFlight[i]){this.precacheInFlight[i]=!0;try{await this.precacheVideoApp(i)}catch(e){}finally{delete this.precacheInFlight[i]}}}}finally{this.precaching=!1}}},precacheVideoApp(i){return new Promise(((o,t)=>{if("undefined"==typeof plus)return void o();const s=this.generateCacheKey(i);e.index.getStorageSync(s)?o():e.index.downloadFile({url:i,success:a=>{200===a.statusCode?e.index.saveFile({tempFilePath:a.tempFilePath,success:t=>{const a=t.savedFilePath;e.index.setStorageSync(s,a);const n=e.index.getStorageSync("video_cache_info")||{};n[s]={path:a,url:i,time:Date.now()},e.index.setStorageSync("video_cache_info",n),o(a)},fail:e=>{t(e)}}):t(new Error("download failed"))},fail:e=>{t(e)}})}))},generateCacheKey(e){let i=0;for(let o=0;o{console.log("[RevivalHistory] 跳转成功")},fail:i=>{console.error("[RevivalHistory] 跳转失败:",i),e.index.showToast({title:"跳转失败: "+i.errMsg,icon:"none"})}})},playVideo(i){const o=i&&i.local_video_path?String(i.local_video_path):"",t=i.edited_video_url||i.local_video_path||i.video_url,s=t?String(t):"";if(i.edited_video_url||-1!==o.indexOf("/static/videos/revival_")||s.indexOf("/static/videos/revival_"),!t)return void e.index.showToast({title:"视频地址不存在",icon:"none"});let a=`/pages/video-player/video-player?audioInVideo=1&url=${encodeURIComponent(t)}&title=${encodeURIComponent(i.name||"复活视频")}`;e.index.navigateTo({url:a,fail:i=>{console.error("[RevivalHistory] 跳转失败:",i),e.index.showToast({title:"播放失败,请稍后重试",icon:"none"})}})},prepareShare(e){this.shareTargetVideo=e||null},shareVideo(i){console.log("[RevivalHistory] 分享视频:",i);i.edited_video_url||i.local_video_path||i.video_url?e.index.showActionSheet({itemList:["保存到相册","复制链接"],success:e=>{0===e.tapIndex?this.saveVideoToAlbum(i):1===e.tapIndex&&this.copyVideoLink(i)}}):e.index.showToast({title:"视频地址不存在",icon:"none"})},async copyVideoLink(i){const o=i.edited_video_url||i.local_video_path||i.video_url;o?e.index.setClipboardData({data:o,success:()=>{e.index.showToast({title:"链接已复制",icon:"success"})}}):e.index.showToast({title:"视频地址不存在",icon:"none"})},async saveVideoToAlbum(e){const i=e.edited_video_url||e.local_video_path||e.video_url;console.log("[RevivalHistory] 保存视频:",i),this.saveVideoOnly(i)},saveVideoOnly(i){e.index.showLoading({title:"保存中..."}),i.startsWith("file://")||i.startsWith("wxfile://")?e.index.saveVideoToPhotosAlbum({filePath:i,success:()=>{e.index.hideLoading(),e.index.showToast({title:"保存成功",icon:"success"})},fail:i=>{e.index.hideLoading(),console.error("[RevivalHistory] 保存失败:",i),i.errMsg.includes("auth")?e.index.showModal({title:"需要授权",content:"请授权保存到相册",success:i=>{i.confirm&&e.index.openSetting()}}):e.index.showToast({title:"保存失败",icon:"none"})}}):e.index.downloadFile({url:i,success:i=>{200===i.statusCode?e.index.saveVideoToPhotosAlbum({filePath:i.tempFilePath,success:()=>{e.index.hideLoading(),e.index.showToast({title:"保存成功",icon:"success"})},fail:i=>{e.index.hideLoading(),console.error("[RevivalHistory] 保存失败:",i),i.errMsg.includes("auth")?e.index.showModal({title:"需要授权",content:"请授权保存到相册",success:i=>{i.confirm&&e.index.openSetting()}}):e.index.showToast({title:"保存失败",icon:"none"})}}):(e.index.hideLoading(),e.index.showToast({title:"下载失败",icon:"none"}))},fail:i=>{e.index.hideLoading(),console.error("[RevivalHistory] 下载失败:",i),e.index.showToast({title:"下载失败",icon:"none"})}})},async deleteVideo(o){e.index.showModal({title:"确认删除",content:`确定要删除视频"${o.name||"复活视频"}"吗?`,success:t=>{if(t.confirm){const t=e.index.getStorageSync("userId")||"",s=e.index.getStorageSync("token")||"";e.index.request({url:`${i.API_BASE}/api/photo-revival/videos/${o.id}`,method:"DELETE",header:{"X-User-Id":t,Authorization:s?`Bearer ${s}`:""},success:i=>{var o;200===i.statusCode&&i.data&&i.data.success?(e.index.showToast({title:"删除成功",icon:"success"}),this.loadVideos()):e.index.showToast({title:(null==(o=i.data)?void 0:o.message)||"删除失败",icon:"none"})},fail:i=>{e.index.showToast({title:"删除失败,请重试",icon:"none"})}})}}})},formatTime(e){if(!e)return"";const i=new Date(e);return`${i.getFullYear()}-${String(i.getMonth()+1).padStart(2,"0")}-${String(i.getDate()).padStart(2,"0")} ${String(i.getHours()).padStart(2,"0")}:${String(i.getMinutes()).padStart(2,"0")}`},formatDuration(e){if(!e)return"";return`${Math.floor(e/60)}:${String(e%60).padStart(2,"0")}`}}};const t=e._export_sfc(o,[["render",function(i,o,t,s,a,n){return e.e({a:e.t(a.videos.length),b:a.loading},a.loading||0===a.videos.length?{}:{d:e.f(a.videos,((i,o,t)=>e.e({a:i.photo_url},i.photo_url?{b:i.photo_url}:{},{c:i.isCached},(i.isCached,{}),{d:e.t(i.name||"复活视频"),e:i.text},i.text?{f:e.t(i.text)}:{},{g:e.t(n.formatTime(i.create_time)),h:e.o((e=>n.viewVideo(i)),i.id),i:e.o((e=>n.saveVideoToAlbum(i)),i.id),j:e.o((e=>n.prepareShare(i)),i.id),k:n.isVideoPublishable(i)},n.isVideoPublishable(i)?{l:e.t(i.published?"↩️":"📢"),m:e.t(i.published?"下架":"发布"),n:e.o((e=>n.togglePublish(i)),i.id)}:{},{o:e.o((e=>n.deleteVideo(i)),i.id),p:i.id,q:e.o((e=>n.viewVideo(i)),i.id)})))},{c:0===a.videos.length,e:a.publishDialogVisible},a.publishDialogVisible?{f:a.publishTitle,g:e.o((e=>a.publishTitle=e.detail.value)),h:e.o(((...e)=>n.closePublishDialog&&n.closePublishDialog(...e))),i:e.o(((...e)=>n.confirmPublish&&n.confirmPublish(...e))),j:e.o((()=>{})),k:e.o(((...e)=>n.closePublishDialog&&n.closePublishDialog(...e)))}:{})}],["__scopeId","data-v-29c0c228"]]);o.__runtimeHooks=6,wx.createPage(t);