From d8d3ed7f1d5c09a0266f05e3a3c801c7175972ba Mon Sep 17 00:00:00 2001 From: Yarmo Mackenbach Date: Thu, 7 Apr 2022 09:26:04 +0200 Subject: Add expense sender delegation --- src/index.js | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/src/index.js b/src/index.js index 04170aa..dd92f9d 100644 --- a/src/index.js +++ b/src/index.js @@ -235,15 +235,35 @@ matrixClient.on('Room.timeline', async (event, room, toStartOfTimeline) => { case 'e': case 'exp': case 'expense': - let amount = parseFloat(args[0]) - let description = args - .slice(1) - .filter((a) => { - console.log(a, a[0]) - return a[0] !== '?' - }) - .join(' ') + let from + let amount + let description + + if (users.includes(args[0])) { + // Use delegated sender + from = parseFloat(args[0]) + amount = parseFloat(args[1]) + description = args + .slice(2) + .filter((a) => { + console.log(a, a[0]) + return a[0] !== '?' + }) + .join(' ') + } else { + // Use event sender + from = event.getSender() + amount = parseFloat(args[0]) + description = args + .slice(1) + .filter((a) => { + console.log(a, a[0]) + return a[0] !== '?' + }) + .join(' ') + } + // Check amount if (!amount) { sendMessage( room.roomId, @@ -258,6 +278,7 @@ matrixClient.on('Room.timeline', async (event, room, toStartOfTimeline) => { roomId: room.roomId, userId: event.getSender(), data: { + from: from, amount: amount, currency: 'EUR', description: description, -- cgit v1.2.3