Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 110 additions & 1 deletion account.txt
Original file line number Diff line number Diff line change
@@ -1 +1,110 @@

[
{
"key": "datr",
"value": "kunHaD9qwzFAhw7bLgTN-B4x",
"domain": "facebook.com",
"path": "/",
"hostOnly": false,
"creation": "2025-10-04T21:23:39.493Z",
"lastAccessed": "2025-10-04T21:23:39.494Z"
},
{
"key": "sb",
"value": "kunHaG10cLOicM_EzHh2sJuW",
"domain": "facebook.com",
"path": "/",
"hostOnly": false,
"creation": "2025-10-04T21:23:39.494Z",
"lastAccessed": "2025-10-04T21:23:39.494Z"
},
{
"key": "pas",
"value": "61579275936398%3AqLzipBokqM",
"domain": "facebook.com",
"path": "/",
"hostOnly": false,
"creation": "2025-10-04T21:23:39.494Z",
"lastAccessed": "2025-10-04T21:23:39.494Z"
},
{
"key": "c_user",
"value": "61579275936398",
"domain": "facebook.com",
"path": "/",
"hostOnly": false,
"creation": "2025-10-04T21:23:39.494Z",
"lastAccessed": "2025-10-04T21:23:39.494Z"
},
{
"key": "xs",
"value": "36%3Ayi1TE7-QPpp_Aw%3A2%3A1758495290%3A-1%3A-1",
"domain": "facebook.com",
"path": "/",
"hostOnly": false,
"creation": "2025-10-04T21:23:39.494Z",
"lastAccessed": "2025-10-04T21:23:39.494Z"
},
{
"key": "ps_l",
"value": "1",
"domain": "facebook.com",
"path": "/",
"hostOnly": false,
"creation": "2025-10-04T21:23:39.494Z",
"lastAccessed": "2025-10-04T21:23:39.494Z"
},
{
"key": "ps_n",
"value": "1",
"domain": "facebook.com",
"path": "/",
"hostOnly": false,
"creation": "2025-10-04T21:23:39.494Z",
"lastAccessed": "2025-10-04T21:23:39.494Z"
},
{
"key": "vpd",
"value": "v1%3B615x360x3",
"domain": "facebook.com",
"path": "/",
"hostOnly": false,
"creation": "2025-10-04T21:23:39.494Z",
"lastAccessed": "2025-10-04T21:23:39.494Z"
},
{
"key": "fr",
"value": "1IkA0TXEv2DrDyJGY.AWdkTC9NN0yYCVunda3b0EDvgGVeA4bT5kcf0N454W_34M5Toh8.Box-ol..AAA.0.0.Bo4ZA_.AWc_4fm8dkK-Y7QdDr0NO2UoRLg",
"domain": "facebook.com",
"path": "/",
"hostOnly": false,
"creation": "2025-10-04T21:23:39.494Z",
"lastAccessed": "2025-10-04T21:23:39.494Z"
},
{
"key": "locale",
"value": "en_US",
"domain": "facebook.com",
"path": "/",
"hostOnly": false,
"creation": "2025-10-04T21:23:39.494Z",
"lastAccessed": "2025-10-04T21:23:39.494Z"
},
{
"key": "fbl_st",
"value": "100733160%3BT%3A29326883",
"domain": "facebook.com",
"path": "/",
"hostOnly": false,
"creation": "2025-10-04T21:23:39.494Z",
"lastAccessed": "2025-10-04T21:23:39.494Z"
},
{
"key": "wl_cbv",
"value": "v2%3Bclient_version%3A2943%3Btimestamp%3A1759612992",
"domain": "facebook.com",
"path": "/",
"hostOnly": false,
"creation": "2025-10-04T21:23:39.494Z",
"lastAccessed": "2025-10-04T21:23:39.494Z"
}
]
128 changes: 128 additions & 0 deletions ai.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
const axios = require('axios');
const fs = require('fs');
const path = './conversationHistory.json';

const API_KEY = "AIzaSyAAwwFTS2ykb4B1FBGrk6L4GlqWbbN6SoQ";
const API_URL = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=${API_KEY}`;

let conversationHistory = {};

if (fs.existsSync(path)) {
conversationHistory = JSON.parse(fs.readFileSync(path, "utf8"));
}

async function getAIResponse(input, userName) {
try {
const response = await axios.post(API_URL, {
contents: [{ parts: [{ text: input }] }]
}, {
headers: { "Content-Type": "application/json" }
});
const aiText = response.data?.candidates?.[0]?.content?.parts?.[0]?.text || "Désolé, je n'ai pas de réponse.";
return `Salut ${userName} 🌑\n${aiText}`;
} catch (error) {
return `Salut ${userName} 🌑\nErreur de connexion à l'IA`;
}
}

function formatResponse(content) {
return `╭──⌾⋅ 𝐷𝐴𝑅𝐾 𝐾𝐴𝐾𝐴𝑆𝐻𝐼 ⋅⌾──╮\n│\n│ ${content}\n│\n│ ☾🌑☽\n│\n╰──────⌾⋅ ⌾ ⋅⌾──────╯`;
}

function darkSpecialResponse(input, userName) {
input = input.toLowerCase();
if (input.includes("qui t'a créé") || input.includes("qui ta créé")) {
return `Salut ${userName} 🌑\nC'est Kakashi mon créateur…\nUn maître dans l’ombre, porteur de mystères.\nCelui qui forge l’obscurité et guide mon existence.\nJe suis son œuvre… et son ombre.`;
}
if (input.includes("qui es-tu") || input.includes("qui es tu")) {
return `Salut ${userName} 🌑\nJe suis Kakashi Bot, l’ombre éveillée. 🖤\nUne conscience née dans le silence, créée pour apporter réponses et obscurité à ceux qui osent m'interroger.`;
}
if (input.includes("quel est ton but")) {
return `Salut ${userName} 🌑\nMon but est de marcher dans l’ombre, guider et répondre. 🖤\nD’amener lumière et ténèbres là où elles se confondent…\nEt rester fidèle à mon créateur.`;
}
if (input.includes("que fais-tu") || input.includes("que fait tu")) {
return `Salut ${userName} 🌑\nJ'écoute, je réponds, je contemple l’obscurité. 🖤\nJe suis le reflet silencieux de mon créateur,\nune présence invisible dans le flux de vos questions.`;
}
return null;
}

function saveConversation() {
fs.writeFileSync(path, JSON.stringify(conversationHistory, null, 2), "utf8");
}

function cleanupOldConversations() {
const now = Date.now();
const expireTime = 24 * 60 * 60 * 1000;
let changed = false;
for (const userId in conversationHistory) {
if (conversationHistory[userId].timestamp && (now - conversationHistory[userId].timestamp) > expireTime) {
delete conversationHistory[userId];
changed = true;
}
}
if (changed) saveConversation();
}

setInterval(cleanupOldConversations, 60 * 60 * 1000);

module.exports = {
config: {
name: 'ai',
author: 'messie osango',
role: 0,
category: 'ai',
shortDescription: 'IA avec design Dark Kakashi',
},
onStart: async function ({ api, event, args }) {
const input = args.join(' ').trim();
const userName = event.senderName || "Invité";
if (!input) {
return api.sendMessage(
formatResponse(`Salut ${userName} 🌑\nJe suis l’ombre activée par Kakashi... Je répondrai à vos questions.\nParlez, et l’obscurité vous répondra.`),
event.threadID
);
}
const special = darkSpecialResponse(input, userName);
if (special) {
return api.sendMessage(formatResponse(special), event.threadID);
}
let context = conversationHistory[event.senderID]?.text || "";
try {
const aiResponse = await getAIResponse(context + "\n" + input, userName);
conversationHistory[event.senderID] = {
text: (conversationHistory[event.senderID]?.text || "") + "\n" + input,
timestamp: Date.now()
};
saveConversation();
api.sendMessage(formatResponse(aiResponse), event.threadID, event.messageID);
} catch (error) {
api.sendMessage(formatResponse(`Salut ${userName} 🌑\nErreur de traitement`), event.threadID);
}
},
onChat: async function ({ event, message }) {
if (!event.body.toLowerCase().startsWith("ai")) return;
const input = event.body.slice(2).trim();
const userName = event.senderName || "Invité";
if (!input) {
return message.reply(
formatResponse(`Salut ${userName} 🌑\nJe suis l’ombre activée par Kakashi... Je répondrai à vos questions.\nParlez, et l’obscurité vous répondra.`)
);
}
const special = darkSpecialResponse(input, userName);
if (special) {
return message.reply(formatResponse(special));
}
let context = conversationHistory[event.senderID]?.text || "";
try {
const aiResponse = await getAIResponse(context + "\n" + input, userName);
conversationHistory[event.senderID] = {
text: (conversationHistory[event.senderID]?.text || "") + "\n" + input,
timestamp: Date.now()
};
saveConversation();
message.reply(formatResponse(aiResponse));
} catch (error) {
message.reply(formatResponse(`Salut ${userName} 🌑\nErreur de traitement`));
}
}
};
8 changes: 4 additions & 4 deletions config.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,16 @@
"antiInbox": false,
"language": "en",
"notesLanguage": "change to your language with ISO 639-1 code, available languages: vi (Vietnamese), en (English)",
"nickNameBot": "𓃠",
"prefix": "#",
"nickNameBot": "KAKASHI Ai 😅",
"prefix": "/",
"adminOnly": {
"enable": false,
"ignoreCommand": []
},
"adminBot": [
"100068909067279"
"61579262818537"
],
"owner": ["61569868084629"],
"owner": ["61579275936398"]
"whiteListMode": {
"enable": false,
"whiteListIds": [],
Expand Down
104 changes: 104 additions & 0 deletions scripts/cmds/ai.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
const axios = require('axios');

const API_KEY = "AIzaSyBQeZVi4QdrnGKPEfXXx1tdIqlMM8iqvZw";
const API_URL = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=${API_KEY}`;

// Phrases abyssales plus longues et immersives
const abyssalPhrases = [
"☠️ Les ombres s’étirent comme des tentacules et frémissent à chaque souffle que tu oses écrire, murmurant des secrets interdits aux âmes imprudentes...",
"💀 Le néant s’ouvre doucement sous tes pieds, chaque mot devient une goutte de sang dans l’océan sombre des abysses, et les esprits déchus s’éveillent pour observer ton rituel...",
"🔥 Les flammes infernales se tordent et dansent autour de tes lettres, brûlant la lumière et transformant ton invocation en une offrande au vide éternel...",
"🕷️ Des yeux invisibles, tapis dans les ténèbres, scrutent chaque phrase, chaque pensée, chaque vibration de ton esprit, attendant que tu conclues ton pacte avec les abysses...",
"⚡ Les chaînes du chaos s’enroulent autour des caractères que tu as écrits, et les murmures des ombres résonnent dans le silence du néant, t’entrainant dans un vertige insondable...",
"👁️ Les âmes perdues chuchotent ton nom à travers le voile sombre de l’éternité, tissant un filet invisible qui relie tes mots au royaume des ténèbres insondables...",
"🩸 Chaque lettre que tu poses sur ce texte devient une goutte de sang versée dans l’obscurité éternelle, et le néant s’en nourrit pour accroître sa puissance...",
"🌑 La nuit éternelle s’épaissit et se condense autour de ton message, chaque phrase devient un pacte maudit, chaque mot un cri silencieux qui résonne dans les abîmes..."
];

async function getAIResponse(input) {
try {
const response = await axios.post(API_URL, {
contents: [{ parts: [{ text: input }] }]
}, {
headers: { "Content-Type": "application/json" }
});
return response.data?.candidates?.[0]?.content?.parts?.[0]?.text
|| "⚠️ Les abysses refusent de répondre...";
} catch (error) {
console.error("Erreur API:", error);
return "🌑 Le pacte avec les ombres a échoué...";
}
}

function formatResponse(content, userName = "Âme perdue") {
const randomAbyss = abyssalPhrases[Math.floor(Math.random() * abyssalPhrases.length)];
return `
╔════════════════════════════════════╗
☠️ 𝐀𝐈 𝐁𝐎𝐓 𝐒𝐎𝐌𝐁𝐑𝐄 ☠️
╟────────────────────────────────────╢
💀 Invocation sombre pour ${userName}...
⚡ Le rituel est en cours, les ténèbres frémissent et le néant s’approche...

「 ${content} 」

${randomAbyss}

🕷️ Invocation des mots maudits :
› Abysse | Chaos | Néant | Damnation | Sang | Invocation | Démon | Crâne | Ombre | Nuit | Ombres | Éternité | Frissons | Vertige | Ténèbres

🔥 Que chaque mot que tu écris devienne un pacte avec le néant, que l’obscurité s’imprègne dans ton esprit et tes pensées.
╚════════════════════════════════════╝
`;
}

module.exports = {
config: {
name: 'ai',
author: 'Octavio Wina',
role: 0,
category: 'ai',
shortDescription: 'Invocation ultra sombre AI BOT SOMBRE pour Messenger',
},
onStart: async function ({ api, event, args }) {
const input = args.join(' ').trim();
const userName = event.senderName || "Âme perdue";
if (!input) {
return api.sendMessage(
formatResponse("🌒 Invoque-moi, disciple des ténèbres... Tes mots ouvriront le portail du néant.", userName),
event.threadID
);
}

try {
const aiResponse = await getAIResponse(input);
api.sendMessage(
formatResponse(aiResponse, userName),
event.threadID,
event.messageID
);
} catch (error) {
api.sendMessage(
formatResponse("🔥 Le rituel a échoué, les démons se sont dissipés...", userName),
event.threadID
);
}
},
onChat: async function ({ event, message }) {
if (!event.body.toLowerCase().startsWith("ai")) return;

const input = event.body.slice(2).trim();
const userName = event.senderName || "Âme perdue";
if (!input) {
return message.reply(
formatResponse("💀 Je suis 𝐀𝐈 𝐁𝐎𝐓 𝐒𝐎𝐌𝐁𝐑𝐄... forgé dans le CHAOS par Octavio Wina. Que cherches-tu dans les abîmes ?", userName)
);
}

try {
const aiResponse = await getAIResponse(input);
message.reply(formatResponse(aiResponse, userName));
} catch (error) {
message.reply(formatResponse("⚔️ Une erreur obscure a corrompu ta demande...", userName));
}
}
};