From a33f99cda24bbedaeb0facd8f4fdaefd9eb2a85e Mon Sep 17 00:00:00 2001 From: unfunny Date: Sun, 13 Sep 2026 15:15:21 -0400 Subject: [PATCH] Fix: resolve syntax errors in index.js and improve error handling --- index.js | 42 +++++++++++++++--------------------------- 1 file changed, 15 insertions(+), 27 deletions(-) diff --git a/index.js b/index.js index b20a21d..1cb5e57 100644 --- a/index.js +++ b/index.js @@ -32,8 +32,7 @@ function loadQuotes() { } console.log(`✅ Loaded ${quotes.length} Ancestor quotes`); - - // Validate environment variables first + const token = process.env.MATRIX_ACCESS_TOKEN; const server = process.env.MATRIX_HOME_SERVER; @@ -44,19 +43,17 @@ function loadQuotes() { process.exit(1); } console.log(`🏠 Server: ${server}`); - + try { await client.startClient(); console.log('✅ MatrixClient connected and authenticated\n'); let lastSentMessage = null; - - // Listen for all membership events from homeserver + client.on('RoomMember#joined', async (member) => { const room = member.room; console.log(`✅ Joined room: ${room.getCanonicalRoomName() || room.roomId}`); - // Add message listener to this room room.on('EventMessage', async (event, stateEvent) => { const content = event.getContent(); if (!content || !content.body) return; @@ -77,14 +74,12 @@ function loadQuotes() { } } }); - - // Handle leaving the room + member.room.on('RoomMember#left', () => { console.log(`â„šī¸ Left room: ${member.room.getCanonicalRoomName() || member.room.roomId}`); }); }); - - // Also listen to messages from all known rooms (for cases where client is already joined) + client.on('EventMessage', async (event, stateEvent) => { const room = event.sender.room; const content = event.getContent(); @@ -93,7 +88,6 @@ function loadQuotes() { const body = content.body.toLowerCase().trim(); const cmd = (process.env.BOT_COMMAND || '!quote').toLowerCase(); - // Only respond in rooms where we're a member const roomMembers = await room.getJoinedMemberCount(); if (roomMembers > 0 && room.getMyMembership()) { if (body === cmd || body.startsWith(cmd)) { @@ -110,26 +104,20 @@ function loadQuotes() { } } }); - - console.log('🤖 Bot is running!'); - console.log(' Invite this bot to a Matrix room and type to get an Ancestor quote.\n'); - } catch (err) { - console.error('Fatal error:', err.message); - process.exit(1); - } - - // Add global error handler to catch any unhandled errors - process.on('unhandledRejection', (reason, promise) => { - console.error('🚨 Unhandled rejection:', reason?.message || reason); - process.exit(1); - }); - - // Keep the process alive - setInterval(() => {}, 60000); + console.log('🤖 Bot is running!'); + console.log(' Invite this bot to a Matrix room and type !quote to get an Ancestor quote.\n'); + } catch (err) { console.error('❌ Fatal error starting bot:', err.message); console.error(err.stack); process.exit(1); } + + process.on('unhandledRejection', (reason, promise) => { + console.error('🚨 Unhandled rejection:', reason?.message || reason); + process.exit(1); + }); + + setInterval(() => {}, 60000); })();