lucianotonet's picture
Test on Hugging Face
5e641bf
raw
history blame
1.88 kB
require('dotenv').config();
const express = require('express');
const bodyParser = require('body-parser');
const BotManager = require('./botManager');
const axios = require('axios');
const https = require('https');
const { APP_URL } = process.env;
// Create an express app
const app = express();
app.use(bodyParser.json());
const port = process.env.PORT || 7860;
const botManager = new BotManager();
// API status
app.get('/api', (req, res) => {
res.json({ status: 'ok', message: 'Discord Bot Manager is running' });
});
// Bots status
app.get('/api/status', (req, res) => {
const status = botManager.getBotsStatus();
res.json(status);
});
// Endpoint para iniciar um bot
app.post('/api/start', (req, res) => {
const { token } = req.body;
if (!token) return res.status(400).json({ error: 'Token is required' });
const response = botManager.startBot(token);
res.json({ message: response });
});
// Endpoint para parar um bot
app.post('/api/stop', (req, res) => {
const { token } = req.body;
if (!token) return res.status(400).json({ error: 'Token is required' });
const response = botManager.stopBot(token);
res.json({ message: response });
});
// Fetch active bots and start them
axios.get(`${APP_URL}/api/assistants/active`, {
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
},
httpsAgent: new https.Agent({
rejectUnauthorized: false
}),
headers: {
'Authorization': `Bearer ${process.env.API_TOKEN}`
}
})
.then(response => {
const bots = response.data;
bots.forEach(bot => {
botManager.startBot(bot.discord_bot_token);
});
})
.catch(error => {
console.error('Error fetching active bots:', error.message);
});
// Start the server
app.listen(port, () => {
console.log(`Server running on port ${port}`);
});