61 lines
2.3 KiB
JavaScript
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
|
|
};
|