import wweb from 'whatsapp-web.js' var model ={ chat:process.env.chat_model, imagine:process.env.imagine_model } function buildResponse(message){ return {"messages":[message], "previewToken":null, "codeModelMode":true, "agentMode":{ "mode":true, "id":model.chat, "name":"CUSTOM"}, "trendingAgentMode":{}, "isMicMode":false, "isChromeExt":false, "githubToken":null, "clickedAnswer2":false, "clickedAnswer3":false, "clickedForceWebSearch":false, "visitFromDelta":null } } function getMessage(content,special,role){ return {"id":special.generateAlphanumericString(10), "content":content, "role":(role==undefined)?"user":role } } async function chat(msg,text,special){ let response=buildResponse(getMessage(text,special)) let r=await fetch("https://blackbox.ai/api/chat",{ method:"post", headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.3"}, body:JSON.stringify(response) }); let co=await r.text(); await special.delay(5000); await msg.reply(co.split("$@$").slice(2).join('$@$')); } async function imagine(msg,args,special){ let seed=special.between(1,100000); let prompt=args.shift(); let negative_prompt=(args.length>0)?args[0]:""; const sampler="DPM++ 2M Karras"; let params={ new:true, model: model.imagine, sampler: sampler, cfg:13, steps:20, seed:seed, prompt:prompt, negative_prompt:negative_prompt }; const url = "https://api.prodia.com/generate?"+new URLSearchParams(params).toString(); let resp=await fetch(url); let response=await resp.json(); await special.delay(5000); let r = await fetch("https://api.prodia.com/job/"+response.job); let s=await r.json(); while(s.status!="succeeded"){ await special.delay(500); r = await fetch("https://api.prodia.com/job/"+response.job); s=await r.json(); } const rurl="https://images.prodia.xyz/"+response.job+".png"; const pic =await wweb.MessageMedia.fromUrl(rurl); await special.delay(1000); await msg.reply(pic); } export default function(client,_,special){ client.on('message_create',async msg=>{ let texto=msg.body.toString() if(!texto.startsWith(special.prefix) || !msg.fromMe) return; let args=texto.slice(special.prefix.length).split(" "); let command=args.shift(); args=args.join(" ").split("|"); if(command=="ia"){ await chat(msg,args.join('|'),special); }else if(command=="imagine"){ await imagine(msg,args,special); } }); return {name:"IA External", comandos:[ {name:"ia",description:"Interactua con una ia",args:["[texto]"]}, {name:"imagine",description:"Imagina",args:["[prompt]","(negative prompt)"]} ]} }