bot.mjs hinzugefügt
This commit is contained in:
parent
032de462f3
commit
1ca7d12141
73
bot.mjs
Normal file
73
bot.mjs
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
import { Client, GatewayIntentBits } from 'discord.js';
|
||||||
|
import 'dotenv/config';
|
||||||
|
import Groq from 'groq-sdk';
|
||||||
|
import unirest from 'unirest';
|
||||||
|
|
||||||
|
const client = new Client({
|
||||||
|
intents: [
|
||||||
|
GatewayIntentBits.Guilds,
|
||||||
|
GatewayIntentBits.GuildMessages,
|
||||||
|
GatewayIntentBits.MessageContent,
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
const DISCORD_LINUX_API_URL = 'https://api.ssh.surf';
|
||||||
|
const DISCORD_LINUX_API_KEY = process.env['DISCORD_LINUX_API_KEY'];
|
||||||
|
const GROQ_API_KEY = process.env['GROQ_API_KEY'];
|
||||||
|
|
||||||
|
const groqClient = new Groq({ apiKey: GROQ_API_KEY });
|
||||||
|
|
||||||
|
// Command handler
|
||||||
|
async function execCommandInContainer(cmd) {
|
||||||
|
const response = await unirest
|
||||||
|
.post(`${DISCORD_LINUX_API_URL}/exec`)
|
||||||
|
.headers({
|
||||||
|
'Accept': 'application/json',
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'x-ssh-auth': DISCORD_LINUX_API_KEY
|
||||||
|
})
|
||||||
|
.send({ cmd });
|
||||||
|
|
||||||
|
return response.body;
|
||||||
|
}
|
||||||
|
|
||||||
|
// When the bot is ready
|
||||||
|
client.once('ready', () => {
|
||||||
|
console.log('Bot is ready!');
|
||||||
|
});
|
||||||
|
|
||||||
|
// Listen for messages
|
||||||
|
client.on('messageCreate', async (message) => {
|
||||||
|
if (message.author.bot) return; // Ignore bot messages
|
||||||
|
|
||||||
|
if (message.content.startsWith('!goal ')) {
|
||||||
|
const goal = message.content.replace('!goal ', '').trim();
|
||||||
|
if (!goal) {
|
||||||
|
message.channel.send('Please specify a goal to achieve.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Automate goal achievement
|
||||||
|
const context = `Initial attempt. Goal: ${goal}`;
|
||||||
|
const result = await automateGoal(context, goal);
|
||||||
|
message.channel.send(result.success ? 'Goal achieved!' : 'Failed to achieve goal.');
|
||||||
|
} catch (error) {
|
||||||
|
message.channel.send('An error occurred while processing the goal.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Interactive chat (if needed)
|
||||||
|
if (message.content.startsWith('!chat ')) {
|
||||||
|
const userMessage = message.content.replace('!chat ', '').trim();
|
||||||
|
try {
|
||||||
|
const aiResponse = await chatWithAI('', userMessage); // Provide current context
|
||||||
|
message.channel.send(aiResponse);
|
||||||
|
} catch (error) {
|
||||||
|
message.channel.send('An error occurred during the chat.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Start the bot
|
||||||
|
client.login(process.env.BOT_TOKEN);
|
Loading…
Reference in New Issue
Block a user