Skip to content
Extraits de code Groupes Projets
Valider 40e9198d rédigé par Will Hunt's avatar Will Hunt
Parcourir les fichiers

Provisioner support for room store

parent 0712406e
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -122,7 +122,6 @@ async function run(port: number, fileConfig: DiscordBridgeConfig) { ...@@ -122,7 +122,6 @@ async function run(port: number, fileConfig: DiscordBridgeConfig) {
userStore: config.database.userStorePath, userStore: config.database.userStorePath,
// To avoid out of order message sending. // To avoid out of order message sending.
}); });
provisioner.SetBridge(bridge);
roomhandler.setBridge(bridge); roomhandler.setBridge(bridge);
discordbot.setBridge(bridge); discordbot.setBridge(bridge);
discordbot.setRoomHandler(roomhandler); discordbot.setRoomHandler(roomhandler);
...@@ -134,6 +133,7 @@ async function run(port: number, fileConfig: DiscordBridgeConfig) { ...@@ -134,6 +133,7 @@ async function run(port: number, fileConfig: DiscordBridgeConfig) {
log.info("Initing store."); log.info("Initing store.");
await discordstore.init(); await discordstore.init();
log.info("Initing bot."); log.info("Initing bot.");
provisioner.setStore(discordstore.roomStore);
await discordbot.run(); await discordbot.run();
log.info("Discordbot started successfully."); log.info("Discordbot started successfully.");
} catch (err) { } catch (err) {
......
...@@ -20,16 +20,17 @@ import { ...@@ -20,16 +20,17 @@ import {
MatrixRoom, MatrixRoom,
} from "matrix-appservice-bridge"; } from "matrix-appservice-bridge";
import * as Discord from "discord.js"; import * as Discord from "discord.js";
import { DbRoomStore } from "./db/roomstore";
const PERMISSION_REQUEST_TIMEOUT = 300000; // 5 minutes const PERMISSION_REQUEST_TIMEOUT = 300000; // 5 minutes
export class Provisioner { export class Provisioner {
private bridge: Bridge;
private pendingRequests: Map<string, (approved: boolean) => void> = new Map(); // [channelId]: resolver fn private pendingRequests: Map<string, (approved: boolean) => void> = new Map(); // [channelId]: resolver fn
private roomStore: DbRoomStore;
public SetBridge(bridge: Bridge): void { public setStore(roomStore: DbRoomStore) {
this.bridge = bridge; this.roomStore = roomStore;
} }
public BridgeMatrixRoom(channel: Discord.TextChannel, roomId: string) { public BridgeMatrixRoom(channel: Discord.TextChannel, roomId: string) {
...@@ -40,12 +41,11 @@ export class Provisioner { ...@@ -40,12 +41,11 @@ export class Provisioner {
remote.set("plumbed", true); remote.set("plumbed", true);
const local = new MatrixRoom(roomId); const local = new MatrixRoom(roomId);
this.bridge.getRoomStore().linkRooms(local, remote); this.roomStore.linkRooms(local, remote);
this.bridge.getRoomStore().setMatrixRoom(local); // Needs to be done after linking
} }
public UnbridgeRoom(remoteRoom: RemoteRoom) { public UnbridgeRoom(remoteRoom: RemoteRoom) {
return this.bridge.getRoomStore().removeEntriesByRemoteRoomId(remoteRoom.getId()); return this.roomStore.removeEntriesByRemoteRoomId(remoteRoom.getId());
} }
public async AskBridgePermission( public async AskBridgePermission(
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter