bodegAI/commands/guide_command.js
2024-11-11 07:40:48 +00:00

61 lines
2.3 KiB
JavaScript

const fs = require('fs');
const path = require('path');
// Cargar ubicaciones guardadas desde el archivo JSON
const locationsFilePath = path.join(__dirname, '../database/ubications.json');
let destinationLocation = null; // Variable para guardar la ubicación deseada temporalmente
function handleGuideCommand(client, message) {
const commandParts = message.body.trim().split(' ');
if (commandParts.length < 2) {
message.reply('❌ Por favor, especifica la ubicación deseada. Ejemplo: !guiaciudad casa');
return;
}
const locationName = commandParts[1];
let locations;
try {
locations = JSON.parse(fs.readFileSync(locationsFilePath, 'utf8'));
} catch (error) {
message.reply('❌ No se pudo leer el archivo de ubicaciones. Asegúrate de que exista y esté en formato JSON.');
console.error('Error leyendo ubicaciones:', error);
return;
}
if (!locations[locationName]) {
message.reply(`❌ Ubicación "${locationName}" no encontrada en tu base de datos.`);
return;
}
// Guardar la ubicación deseada temporalmente
destinationLocation = locations[locationName];
message.reply(`📍 Ubicación "${locationName}" encontrada. Por favor, envía tu ubicación actual para planificar la ruta.`);
}
function handleLocationMessage(client, message) {
if (destinationLocation) {
const currentLatitude = message.location.latitude;
const currentLongitude = message.location.longitude;
const destinationLatitude = destinationLocation.latitude;
const destinationLongitude = destinationLocation.longitude;
// Generar el enlace de Google Maps para la ruta
const mapsUrl = `https://www.google.com/maps/dir/?api=1&origin=${currentLatitude},${currentLongitude}&destination=${destinationLatitude},${destinationLongitude}`;
// Responder con el enlace de Google Maps
message.reply(`🗺️ Aquí tienes la ruta a la ubicación deseada: ${mapsUrl}`);
// Limpiar la ubicación de destino para la próxima vez
destinationLocation = null;
} else {
message.reply('❌ No has especificado una ubicación de destino. Usa el comando !guiaciudad {ubicacion_deseada} primero.');
}
}
module.exports = {
handleGuideCommand,
handleLocationMessage
};