45 lines
1,018 B
TypeScript
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();
|