//const { ollama } = require('ollama'); import ollama from 'ollama' import error from 'console'; import { Client, Message, MessageAttachment } from 'discord.js-selfbot-v13'; import axios from 'axios'; import config from './config.json' with { type: "json" }; const client = new Client(); function newAIMessage(text) { return { role: 'user', content: text } } function requestAIMessage(prevmessages) { return ollama.chat({ model: config.modelname, messages: prevmessages, stream: false}) } client.on('ready', async () => { console.log(`${client.user.username} is ready!`); }) let savedMessage; let history = [{ role: 'system', content: config.systemd }]; let count = 0; function isAllowedUser(id) { if (config.ALLOWED_IDS.find(string => string == id)) return true; return false; } async function getMessageContent(message) { if (!message.reference) return message.author.displayName + ": " + message.content; else { let reply = message.channel.messages.fetch(message.reference.messageId); return message.author.displayName + ": " + message.content + " `Ответ на: " + reply.author.displayName + ": " + reply.content + "`"; } } client.on("messageCreate", async function(message){ try { history.push(newAIMessage(await getMessageContent(message))); if (message.author.id == config.admin && message.content.startsWith("e ")) { eval(message.content.substring(1)); } else if ((message.author.id != client.user.id && (message.mentions.users.get(client.user.id) || isAllowedUser(message.author.id) || (!isAllowedUser && count % 5 == 0) || (message.reference && message.channel.messages.cache.get(message.reference.messageId).author.id == client.user.id)))) { savedMessage = message; savedMessage.channel.sendTyping(); let aimessage = (await requestAIMessage(history)).message.content history.push({role: 'assistant', content: aimessage}); savedMessage.channel.send("<@" + savedMessage.author.id + "> " + aimessage); } if (!isAllowedUser(message.author.id)) count++; } catch(error) { console.error(error); } }); client.login(config.token);