From 15697f3897180de6c579dce97838756523da8d45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20H=C3=BCttemann?= Date: Tue, 23 May 2023 14:35:09 +0200 Subject: [PATCH] Add storage dummy --- src/app.ts | 25 ++++++++++++++++++++++++- src/storage.ts | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 src/storage.ts diff --git a/src/app.ts b/src/app.ts index e79f1a2..df7b553 100644 --- a/src/app.ts +++ b/src/app.ts @@ -2,6 +2,8 @@ import fs from 'node:fs' import readline from 'node:readline' import log from './logger' import { whoami } from './synapse' +import { storage } from './storage' + log.info('rocketchat2matrix starts.') const enum Entities { @@ -22,7 +24,28 @@ function loadRcExport(entity: Entities) { const item = JSON.parse(line) switch (entity) { case Entities.Users: - log.debug(`User: ${item.name}`) + log.info(`User: ${item.name}: ${item._id}`) + + // Check for exclusion + if (storage.exclusionsLists.users.includes(item._id)) { + log.debug('User excluded. Skipping.') + break + } + + // Lookup + let userMapping = storage.users.find((e) => e.rcId === item._id) + if (userMapping) { + log.debug('Mapping exists:', userMapping) + } else { + userMapping = { + rcId: item._id, + matrixId: `@${item.username}:localhost`, + rcRooms: item.__rooms, + } + storage.users.push(userMapping) + log.debug('Mapping added:', userMapping) + } + break case Entities.Rooms: diff --git a/src/storage.ts b/src/storage.ts new file mode 100644 index 0000000..3501fa8 --- /dev/null +++ b/src/storage.ts @@ -0,0 +1,40 @@ +export interface storage { + users: { + rcId: string + matrixId: string + rcRooms: string[] + }[] + rooms: { + rcId: string + matrixId: string + }[] + messages: { + rcId: string + matrixId: string + }[] + exclusionsLists: { + users: string[] + rooms: string[] + messages: string[] + } +} + +export const storage: storage = { + users: [ + { + rcId: '2ziHK8P748TeESitX', + matrixId: '@herhde:locahlost', + rcRooms: [], + }, + ], + rooms: [], + messages: [], + exclusionsLists: { + users: [ + 'rocket.cat', + '5kdLWNTys3u2MhB2H', // verdiadmin + ], + rooms: [], + messages: [], + }, +}