aslobot-matrix/src/index.ts
2025-12-23 07:56:01 -05:00

45 lines
1,018 B
TypeScript

import config from "./config.json" with { type: "json" };
import { MatrixClient, createClient, ClientEvent } from "matrix-js-sdk";
import { registerModules } from "./modules/module.js";
import { load, save } from "./store/store.js";
let matrixClient: MatrixClient | undefined = undefined;
const initialize = async (): Promise<number> => {
matrixClient = createClient({
baseUrl: config.baseUrl,
userId: config.userId,
accessToken: config.auth.accessToken,
deviceId: config.auth.deviceId,
});
matrixClient.once(ClientEvent.Sync, function (state) {
if (state === "PREPARED") {
console.log("prepared");
}
});
matrixClient.startClient({ initialSyncLimit: 1 });
return 0;
};
const listen = async () => {
if (!matrixClient) {
return;
}
registerModules(matrixClient);
};
const initCode = await initialize();
if (initCode > 0) {
process.exit(initCode);
}
load();
setInterval(() => save(), 60000);
listen();