datacom: fix pedro afonso

Signed-off-by: Rodrigo B. de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
rodrigo committed 2025-08-12 19:56:32 -03:00
1 parent 81603be0a5
commit 1337e1c2d0
1 file changed
+61 -20
+61 -20
View File
@@ -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"