From 206200c4e40807661cf0695dab429a7b6df8e5cb Mon Sep 17 00:00:00 2001 From: n8thantran Date: Sat, 30 Aug 2025 19:09:55 -0700 Subject: [PATCH] fixed deleting all instead of editing the existing message --- src/util/ParkingScraper.js | 66 +++++++++++++++++++++++++++++--------- 1 file changed, 51 insertions(+), 15 deletions(-) diff --git a/src/util/ParkingScraper.js b/src/util/ParkingScraper.js index 7a17334..70b0f3d 100644 --- a/src/util/ParkingScraper.js +++ b/src/util/ParkingScraper.js @@ -266,30 +266,66 @@ class ParkingScraper { const { data, websiteTimestamp } = this.cache; const embed = this.createParkingEmbed(data, websiteTimestamp); - // Delete any existing messages to keep only one message + // Try to edit existing message first + if (this.embedMessage) { + try { + await this.embedMessage.edit({ embeds: [embed] }); + logger.info( + 'Parking embed updated successfully (edited existing message)' + ); + return; + } catch (error) { + logger.warn( + 'Failed to edit existing message, will find or create new one:', + error.message + ); + this.embedMessage = null; + } + } + + // Check for existing bot messages in the channel try { - // Fetch recent messages from the channel const messages = await channel.messages.fetch({ limit: 10 }); - const botMessages = messages.filter( + const botMessage = messages.find( msg => msg.author.id === this.client.user.id ); - if (botMessages.size > 0) { - // Delete all previous bot messages - await Promise.all(botMessages.map( - msg => msg.delete().catch(() => { }) - )); - logger.info(`Deleted ${botMessages.size} previous parking messages`); + if (botMessage) { + // Edit the found message + this.embedMessage = await botMessage.edit({ embeds: [embed] }); + logger.info( + 'Parking embed updated successfully (edited found message)' + ); + } else { + // No existing messages found - delete any old ones and create fresh + const allBotMessages = messages.filter( + msg => msg.author.id === this.client.user.id + ); + + if (allBotMessages.size > 0) { + await Promise.all(allBotMessages.map( + msg => msg.delete().catch(() => {}) + )); + logger.info(`Deleted ${allBotMessages.size} old parking messages`); + } + + // Create new message + this.embedMessage = await channel.send({ embeds: [embed] }); + logger.info( + 'Parking embed updated successfully (created new message)' + ); } } catch (error) { - logger.warn('Error deleting previous messages:', error.message); + logger.warn( + 'Error finding/editing message, creating new one:', + error.message + ); + this.embedMessage = await channel.send({ embeds: [embed] }); + logger.info( + 'Parking embed updated successfully (fallback new message)' + ); } - // Always create a new message - this.embedMessage = await channel.send({ embeds: [embed] }); - - logger.info('Parking embed updated successfully'); - } catch (error) { logger.error('Error updating parking embed:', error); }