diff --git a/src/bot/handler.js b/src/bot/handler.js index ccf979c..d7f72a0 100644 --- a/src/bot/handler.js +++ b/src/bot/handler.js @@ -1247,7 +1247,11 @@ Digite /help para ver todos os comandos disponíveis! // Formato padrão Datacom: check_signal_olt_dito_SERIAL ou check_signal_olt_pedro_afonso_SERIAL let oltId, serialNumber; - if (parts.length === 5) { + if (parts.length === 6 && parts[2] === 'olt' && parts[3] === 'pedro' && parts[4] === 'afonso') { + // Caso: check_signal_olt_pedro_afonso_SERIAL + oltId = parts[2] + '_' + parts[3] + '_' + parts[4]; // "olt_pedro_afonso" + serialNumber = parts[5]; + } else if (parts.length === 5) { // Caso: check_signal_olt_dito_SERIAL oltId = parts[2] + '_' + parts[3]; // "olt_dito" serialNumber = parts[4]; @@ -1356,7 +1360,12 @@ Digite /help para ver todos os comandos disponíveis! // Formato: show_config_olt_dito_slot_onuid ou show_config_olt_pedro_afonso_slot_onuid let oltId, slot, onuId; - if (parts.length === 6) { + if (parts.length === 7 && parts[2] === 'olt' && parts[3] === 'pedro' && parts[4] === 'afonso') { + // Caso: show_config_olt_pedro_afonso_slot_onuid + oltId = parts[2] + '_' + parts[3] + '_' + parts[4]; // "olt_pedro_afonso" + slot = parts[5]; + onuId = parts[6]; + } else if (parts.length === 6) { // Caso: show_config_olt_dito_slot_onuid oltId = parts[2] + '_' + parts[3]; // "olt_dito" slot = parts[4]; @@ -1419,7 +1428,12 @@ Digite /help para ver todos os comandos disponíveis! // Formato: reset_onu_olt_dito_slot_onuid ou reset_onu_olt_pedro_afonso_slot_onuid let oltId, slot, onuId; - if (parts.length === 6) { + if (parts.length === 7 && parts[2] === 'olt' && parts[3] === 'pedro' && parts[4] === 'afonso') { + // Caso: reset_onu_olt_pedro_afonso_slot_onuid + oltId = parts[2] + '_' + parts[3] + '_' + parts[4]; // "olt_pedro_afonso" + slot = parts[5]; + onuId = parts[6]; + } else if (parts.length === 6) { // Caso: reset_onu_olt_dito_slot_onuid oltId = parts[2] + '_' + parts[3]; // "olt_dito" slot = parts[4]; @@ -1567,7 +1581,12 @@ Digite /help para ver todos os comandos disponíveis! // Formato: update_onu_olt_dito_slot_onuid ou update_onu_olt_pedro_afonso_slot_onuid let oltId, slot, onuId; - if (parts.length === 6) { + if (parts.length === 7 && parts[2] === 'olt' && parts[3] === 'pedro' && parts[4] === 'afonso') { + // Caso: update_onu_olt_pedro_afonso_slot_onuid + oltId = parts[2] + '_' + parts[3] + '_' + parts[4]; // "olt_pedro_afonso" + slot = parts[5]; + onuId = parts[6]; + } else if (parts.length === 6) { // Caso: update_onu_olt_dito_slot_onuid oltId = parts[2] + '_' + parts[3]; // "olt_dito" slot = parts[4]; @@ -1817,9 +1836,13 @@ Digite /help para ver todos os comandos disponíveis! let oltId, serialNumber; - if (parts.length >= 5) { - // Caso: remove_onu_olt_dito_SERIAL ou remove_onu_olt_pedro_afonso_SERIAL - oltId = parts[2] + '_' + parts[3]; // "olt_dito" ou "olt_pedro_afonso" + if (parts.length >= 6 && parts[3] === 'pedro' && parts[4] === 'afonso') { + // Caso: remove_onu_olt_pedro_afonso_SERIAL + oltId = parts[2] + '_' + parts[3] + '_' + parts[4]; // "olt_pedro_afonso" + serialNumber = parts.slice(5).join('_'); // Serial pode ter underscores + } else if (parts.length >= 5) { + // Caso: remove_onu_olt_dito_SERIAL ou outras OLTs de duas palavras + oltId = parts[2] + '_' + parts[3]; // "olt_dito" serialNumber = parts.slice(4).join('_'); // Serial pode ter underscores } else { // Fallback - caso não siga o padrão esperado @@ -1831,7 +1854,7 @@ Digite /help para ver todos os comandos disponíveis! await this.bot.editMessageText( `🔍 **Buscando ONU ${serialNumber}**\n\n` + - `🏢 OLT: ${oltId.replace('olt_', '').toUpperCase()}\n` + + `🏢 OLT: ${oltId.replace('olt_', '').replace(/_/g, '\\_').toUpperCase()}\n` + `📱 Serial: ${serialNumber}\n\n` + `⏳ Localizando ONU e service-port...`, { @@ -1862,7 +1885,7 @@ Digite /help para ver todos os comandos disponíveis! `📱 **Serial:** ${serialNumber}\n` + `📍 **Localização:** Slot ${result.slot}, ONU ${result.onuId}\n` + `🔌 **Service-port:** ${result.servicePort}\n` + - `🏢 **OLT:** ${oltId.replace('olt_', '').toUpperCase()}\n\n` + + `🏢 **OLT:** ${oltId.replace('olt_', '').replace(/_/g, '\\_').toUpperCase()}\n\n` + `⚠️ **ATENÇÃO:** Esta ação não pode ser desfeita!\n` + `A ONU será completamente removida da OLT.\n\n` + `🔴 **Confirme que deseja remover esta ONU:**`, @@ -1877,7 +1900,7 @@ Digite /help para ver todos os comandos disponíveis! await this.bot.editMessageText( `❌ **ONU não encontrada**\n\n` + `📱 **Serial:** ${serialNumber}\n` + - `🏢 **OLT:** ${oltId.replace('olt_', '').toUpperCase()}\n\n` + + `🏢 **OLT:** ${oltId.replace('olt_', '').replace(/_/g, '\\_').toUpperCase()}\n\n` + `❌ **Erro:** ${result.message}\n\n` + `💡 Verifique se o serial está correto ou se a ONU existe nesta OLT`, { @@ -1914,9 +1937,16 @@ Digite /help para ver todos os comandos disponíveis! let oltId, slot, onuId, servicePort, serialNumber; - if (parts.length >= 8) { + if (parts.length >= 9 && parts[3] === 'pedro' && parts[4] === 'afonso') { + // Caso: confirm_remove_olt_pedro_afonso_slot_onuId_servicePort_serialNumber + oltId = parts[2] + '_' + parts[3] + '_' + parts[4]; // "olt_pedro_afonso" + slot = parts[5].replace(/-/g, '/'); // Converter de volta: "1-1-3" -> "1/1/3" + onuId = parts[6]; + servicePort = parts[7]; + serialNumber = parts.slice(8).join('_'); // Serial pode ter underscores + } else if (parts.length >= 8) { // Caso: confirm_remove_olt_dito_slot_onuId_servicePort_serialNumber - oltId = parts[2] + '_' + parts[3]; // "olt_dito" ou "olt_pedro_afonso" + oltId = parts[2] + '_' + parts[3]; // "olt_dito" slot = parts[4].replace(/-/g, '/'); // Converter de volta: "1-1-3" -> "1/1/3" onuId = parts[5]; servicePort = parts[6]; @@ -1939,7 +1969,7 @@ Digite /help para ver todos os comandos disponíveis! `📱 **Serial:** ${serialNumber}\n` + `📍 **Localização:** Slot ${slot}, ONU ${onuId}\n` + `🔌 **Service-port:** ${servicePort}\n` + - `🏢 **OLT:** ${oltId.replace('olt_', '').toUpperCase()}\n\n` + + `🏢 **OLT:** ${oltId.replace('olt_', '').replace(/_/g, '\\_').toUpperCase()}\n\n` + `⏳ Executando comandos de remoção...`, { chat_id: chatId, @@ -1957,7 +1987,7 @@ Digite /help para ver todos os comandos disponíveis! `📱 **Serial:** ${serialNumber}\n` + `📍 **Localização:** Slot ${slot}, ONU ${onuId}\n` + `🔌 **Service-port:** ${servicePort}\n` + - `🏢 **OLT:** ${oltId.replace('olt_', '').toUpperCase()}\n\n` + + `🏢 **OLT:** ${oltId.replace('olt_', '').replace(/_/g, '\\_').toUpperCase()}\n\n` + `✅ **Status:** ONU removida completamente\n` + `🗑️ **Ações realizadas:**\n` + `• Removida interface ONU\n` + @@ -1976,7 +2006,7 @@ Digite /help para ver todos os comandos disponíveis! `📱 **Serial:** ${serialNumber}\n` + `📍 **Localização:** Slot ${slot}, ONU ${onuId}\n` + `🔌 **Service-port:** ${servicePort}\n` + - `🏢 **OLT:** ${oltId.replace('olt_', '').toUpperCase()}\n\n` + + `🏢 **OLT:** ${oltId.replace('olt_', '').replace(/_/g, '\\_').toUpperCase()}\n\n` + `❌ **Erro:** ${result.message}\n\n` + `🔄 Verifique o status da ONU ou tente novamente`, { @@ -2010,9 +2040,13 @@ Digite /help para ver todos os comandos disponíveis! let oltId, serialNumber; - if (parts.length >= 5) { - // Caso: add_onu_olt_dito_SERIAL ou add_onu_olt_pedro_afonso_SERIAL - oltId = parts[2] + '_' + parts[3]; // "olt_dito" ou "olt_pedro_afonso" + if (parts.length >= 6 && parts[3] === 'pedro' && parts[4] === 'afonso') { + // Caso: add_onu_olt_pedro_afonso_SERIAL + oltId = parts[2] + '_' + parts[3] + '_' + parts[4]; // "olt_pedro_afonso" + serialNumber = parts.slice(5).join('_'); // Serial pode ter underscores + } else if (parts.length >= 5) { + // Caso: add_onu_olt_dito_SERIAL ou outras OLTs de duas palavras + oltId = parts[2] + '_' + parts[3]; // "olt_dito" serialNumber = parts.slice(4).join('_'); // Serial pode ter underscores } else { // Fallback - caso não siga o padrão esperado @@ -2024,7 +2058,7 @@ Digite /help para ver todos os comandos disponíveis! await this.bot.editMessageText( `🔍 **Analisando ONU ${serialNumber}**\n\n` + - `🏢 OLT: ${oltId.replace('olt_', '').toUpperCase()}\n` + + `🏢 OLT: ${oltId.replace('olt_', '').replace(/_/g, '\\_').toUpperCase()}\n` + `📱 Serial: ${serialNumber}\n\n` + `⏳ Descobrindo slot e próximo ONU ID disponível...`, { @@ -2123,7 +2157,14 @@ Digite /help para ver todos os comandos disponíveis! let oltId, slot, onuId, vlanId, serialNumber; - if (parts.length >= 7) { + if (parts.length >= 8 && parts[2] === 'olt' && parts[3] === 'pedro' && parts[4] === 'afonso') { + // Caso: confirm_add_olt_pedro_afonso_1-1-3_0_603_DACM915E0F76 + oltId = parts[2] + '_' + parts[3] + '_' + parts[4]; // "olt_pedro_afonso" + slot = parts[5].replace(/-/g, '/'); // Converter de volta: "1-1-3" -> "1/1/3" + onuId = parts[6]; + vlanId = parts[7]; + serialNumber = parts.slice(8).join('_'); // Serial pode ter underscores + } else if (parts.length >= 7) { // Caso padrão: confirm_add_olt_dito_1-1-3_0_603_DACM915E0F76 oltId = parts[2] + '_' + parts[3]; // "olt_dito" slot = parts[4].replace(/-/g, '/'); // Converter de volta: "1-1-3" -> "1/1/3"