File size: 3,282 Bytes
10e17a7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
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)"]}
  ]}
}