3 lines
6.2 KiB
JavaScript
3 lines
6.2 KiB
JavaScript
import{d as V,u as $,q as T,s as u,e as M,f as B,w as G,a as e,c as o,m as P,v as d,x as f,p as x,t as n,y as h,F,g as U,z as k,o as i,n as L,h as N}from"./index-B4XM2BaA.js";import{_ as R}from"./AppLayout.vue_vue_type_script_setup_true_lang-a7NF1jhN.js";const D={class:"max-w-4xl mx-auto"},A={class:"card mb-6"},E={class:"space-y-4"},O={key:0,class:"border-t pt-4"},q={class:"flex space-x-4"},H=["disabled"],W={class:"text-sm text-gray-500 mt-2"},j={class:"card mb-6"},J={class:"space-y-4"},K=["disabled"],Q={class:"card mb-6"},X={class:"card mb-6"},Y={key:0,class:"text-red-600"},Z={key:1,class:"space-y-3"},ee=["checked","onChange"],le={class:"text-gray-700 capitalize"},te={class:"border-t pt-4"},se=["disabled"],ae={key:0,class:"card mt-6"},ie={class:"space-y-3"},oe={class:"font-semibold capitalize"},de=V({__name:"PublishPage",setup(ne){const C=$(),r=T(),t=u({mediaUrl:"",title:"",caption:"",topic:"",tone:"professional",selectedPlatforms:[],visibility:"private",useIpfs:!1}),p=u(!1),c=u(!1),v=u(!1),m=u(null),b=u(null),y=M(()=>C.getConnectedPlatforms().filter(s=>["youtube","facebook","instagram","tiktok"].includes(s))),S=s=>{const l=s.target;l.files&&l.files[0]&&(b.value=l.files[0])},_=async()=>{if(b.value){v.value=!0;try{r.isInitialized||await r.initialize();const s=await r.uploadFile(b.value);s?(t.value.mediaUrl=`ipfs://${s}`,alert(`File uploaded to IPFS: ${s}`)):alert("Failed to upload to IPFS")}catch(s){alert(`IPFS upload error: ${s.message}`)}finally{v.value=!1}}},I=async()=>{if(!t.value.topic){alert("Please enter a topic");return}p.value=!0;try{const s=await k.post("/api/caption",{topic:t.value.topic,tone:t.value.tone,platforms:t.value.selectedPlatforms,max_length:2200});t.value.caption=s.data.caption}catch(s){alert(`Failed to generate caption: ${s.message}`)}finally{p.value=!1}},w=async()=>{if(!t.value.mediaUrl){alert("Please enter a media URL or upload a file");return}if(t.value.selectedPlatforms.length===0){alert("Please select at least one platform");return}c.value=!0,m.value=null;try{const s=await k.post("/api/publish",{media_url:t.value.mediaUrl,title:t.value.title,caption:t.value.caption,platforms:t.value.selectedPlatforms,visibility:t.value.visibility});m.value=s.data.results}catch(s){alert(`Failed to publish: ${s.message}`)}finally{c.value=!1}},z=s=>{const l=t.value.selectedPlatforms.indexOf(s);l>-1?t.value.selectedPlatforms.splice(l,1):t.value.selectedPlatforms.push(s)};return(s,l)=>(i(),B(R,null,{default:G(()=>[e("div",D,[l[19]||(l[19]=e("h2",{class:"text-3xl font-bold text-gray-800 mb-6"},"Publish Content",-1)),e("div",A,[l[9]||(l[9]=e("h3",{class:"text-xl font-semibold text-gray-800 mb-4"},"Media",-1)),e("div",E,[e("div",null,[l[6]||(l[6]=e("label",{class:"label"},"Media URL *",-1)),d(e("input",{"onUpdate:modelValue":l[0]||(l[0]=a=>t.value.mediaUrl=a),type:"url",placeholder:"https://example.com/video.mp4 or ipfs://...",class:"input"},null,512),[[f,t.value.mediaUrl]])]),x(r).isInitialized||!x(r).isLoading?(i(),o("div",O,[l[7]||(l[7]=e("label",{class:"label"},"Or Upload to IPFS",-1)),e("div",q,[e("input",{type:"file",onChange:S,accept:"video/*,image/*",class:"flex-1 input"},null,32),e("button",{onClick:_,disabled:!b.value||v.value,class:"btn btn-secondary"},n(v.value?"Uploading...":"Upload to IPFS"),9,H)]),e("p",W,n(x(r).isInitialized?"IPFS Ready":"IPFS Initializing..."),1)])):P("",!0),e("div",null,[l[8]||(l[8]=e("label",{class:"label"},"Title",-1)),d(e("input",{"onUpdate:modelValue":l[1]||(l[1]=a=>t.value.title=a),type:"text",placeholder:"My awesome video",class:"input"},null,512),[[f,t.value.title]])])])]),e("div",j,[l[13]||(l[13]=e("h3",{class:"text-xl font-semibold text-gray-800 mb-4"},"AI Caption Generator",-1)),e("div",J,[e("div",null,[l[10]||(l[10]=e("label",{class:"label"},"Topic",-1)),d(e("input",{"onUpdate:modelValue":l[2]||(l[2]=a=>t.value.topic=a),type:"text",placeholder:"What is your content about?",class:"input"},null,512),[[f,t.value.topic]])]),e("div",null,[l[12]||(l[12]=e("label",{class:"label"},"Tone",-1)),d(e("select",{"onUpdate:modelValue":l[3]||(l[3]=a=>t.value.tone=a),class:"input"},[...l[11]||(l[11]=[e("option",{value:"professional"},"Professional",-1),e("option",{value:"casual"},"Casual",-1),e("option",{value:"friendly"},"Friendly",-1),e("option",{value:"formal"},"Formal",-1),e("option",{value:"humorous"},"Humorous",-1)])],512),[[h,t.value.tone]])]),e("button",{onClick:I,disabled:p.value,class:"btn btn-primary"},n(p.value?"Generating...":"Generate Caption"),9,K)])]),e("div",Q,[l[14]||(l[14]=e("h3",{class:"text-xl font-semibold text-gray-800 mb-4"},"Caption",-1)),d(e("textarea",{"onUpdate:modelValue":l[4]||(l[4]=a=>t.value.caption=a),placeholder:"Enter or generate a caption...",rows:"6",class:"input resize-y"},null,512),[[f,t.value.caption]])]),e("div",X,[l[17]||(l[17]=e("h3",{class:"text-xl font-semibold text-gray-800 mb-4"},"Platforms *",-1)),y.value.length===0?(i(),o("div",Y," No platforms connected. Please connect platforms in Settings first. ")):(i(),o("div",Z,[(i(!0),o(F,null,U(y.value,a=>(i(),o("label",{key:a,class:"flex items-center space-x-3 cursor-pointer"},[e("input",{type:"checkbox",checked:t.value.selectedPlatforms.includes(a),onChange:g=>z(a),class:"w-4 h-4 text-primary-600 border-gray-300 rounded focus:ring-primary-500"},null,40,ee),e("span",le,n(a),1)]))),128)),e("div",te,[l[16]||(l[16]=e("label",{class:"label"},"Visibility",-1)),d(e("select",{"onUpdate:modelValue":l[5]||(l[5]=a=>t.value.visibility=a),class:"input"},[...l[15]||(l[15]=[e("option",{value:"private"},"Private",-1),e("option",{value:"public"},"Public",-1),e("option",{value:"unlisted"},"Unlisted",-1)])],512),[[h,t.value.visibility]])])]))]),e("button",{onClick:w,disabled:c.value||y.value.length===0,class:"btn btn-primary w-full py-3 text-lg"},n(c.value?"Publishing...":"Publish to Selected Platforms"),9,se),m.value?(i(),o("div",ae,[l[18]||(l[18]=e("h3",{class:"text-xl font-semibold text-gray-800 mb-4"},"Publish Results",-1)),e("div",ie,[(i(!0),o(F,null,U(m.value,(a,g)=>(i(),o("div",{key:g,class:L(["p-4 rounded-lg border",a.success?"bg-green-50 border-green-200":"bg-red-50 border-red-200"])},[e("span",oe,n(g)+":",1),N(" "+n(a.success?"Published successfully":`Failed - ${a.error}`),1)],2))),128))])])):P("",!0)])]),_:1}))}});export{de as default};
|
|
//# sourceMappingURL=PublishPage-BbQc4mIl.js.map
|