diff options
author | Yarmo Mackenbach <yarmo@yarmo.eu> | 2022-04-07 09:26:04 +0200 |
---|---|---|
committer | Yarmo Mackenbach <yarmo@yarmo.eu> | 2022-04-07 09:26:04 +0200 |
commit | d8d3ed7f1d5c09a0266f05e3a3c801c7175972ba (patch) | |
tree | 1a677dfbc39f1dbe2e032d572c5e762d457acec5 | |
parent | acdef4225795e7f441bac318764482d7be18de1c (diff) |
Add expense sender delegation
-rw-r--r-- | src/index.js | 37 |
1 files 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, |