Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- javascript:(function(){const raw=localStorage.getItem("savedAIChats");if(!raw){alert("No 'savedAIChats' key found.");return}let data;try{data=JSON.parse(raw)}catch(e){alert("Parse error: "+e.message);return}const chats=data.chats||[];const getText=m=>{let t=(m.content||"").trim();if(!t&&Array.isArray(m.parts))t=m.parts.filter(p=>p.type==="text"&&p.text).map(p=>p.text).join("\n\n").trim();if(((t.match(/```/g)||[]).length)%2!==0)t+="\n```";return t};const fmtDate=m=>{const d=m.createdAt||(m.generationTimestamp?new Date(m.generationTimestamp).toISOString():"");return d?new Date(d).toLocaleString():""};const cl=t=>(t||"").replace(/[\r\n]+/g," ").trim();const ts=t=>cl(t).replace(/([\[\]])/g,"\\$1").replace(/`/g,"'");const an=i=>"chat-"+(i+1);const banner=t=>{const l="+".repeat(45);const m="++++ "+t+" "+"+".repeat(Math.max(4,45-6-t.length));return"```\n"+l+"\n"+m+"\n"+l+"\n```\n\n"};let md="# Duck.ai Chat Export\n\n*Exported: "+new Date().toLocaleString()+"* \n*Version: "+(data.version||"?")+" | Chats: "+chats.length+"*\n\n## Table of Contents\n\n";chats.forEach((c,i)=>{const t=cl(c.title)||("Chat "+(i+1));md+=(i+1)+". ["+(ts(t)||("Chat "+(i+1)))+"](#"+an(i)+")\n"});md+="\n---\n\n";chats.forEach((c,i)=>{const t=cl(c.title)||("Chat "+(i+1));md+='<a id="'+an(i)+'"></a>\n\n'+banner((i+1)+". "+t)+"- **Chat ID:** `"+(c.chatId||"")+"`\n- **Model:** "+(c.model||"?")+"\n"+(c.lastEdit?"- **Last edit:** "+new Date(c.lastEdit).toLocaleString()+"\n":"")+"- **Messages:** "+((c.messages||[]).length)+"\n\n";(c.messages||[]).forEach(m=>{const who=m.role==="user"?"User":"Assistant";const when=fmtDate(m);md+="### "+who+(when?" — _"+when+"_":"")+"\n\n"+getText(m)+"\n\n"});md+="---\n\n"});const blob=new Blob([md],{type:"text/markdown;charset=utf-8"});const url=URL.createObjectURL(blob);const a=document.createElement("a");a.href=url;a.download="duckai-chats-"+new Date().toISOString().slice(0,10)+".md";document.body.appendChild(a);a.click();a.remove();URL.revokeObjectURL(url)})();
Advertisement
Add Comment
Please, Sign In to add comment