Bot works, kinda
This commit is contained in:
parent
68736384a8
commit
f58db13fe2
|
@ -117,4 +117,5 @@ dist
|
||||||
.yarn/install-state.gz
|
.yarn/install-state.gz
|
||||||
.pnp.*
|
.pnp.*
|
||||||
|
|
||||||
hydrus-bot.json
|
bot-storage.json
|
||||||
|
config.json
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
"homeserver": "https://matrix.pvv.ntnu.no/",
|
|
||||||
"username": "bot_doorbell",
|
|
||||||
"password": "Abc@123@Abc",
|
|
||||||
"prefix": "!",
|
|
||||||
"activeRooms": []
|
|
||||||
}
|
|
24
index.mjs
24
index.mjs
|
@ -1,7 +1,8 @@
|
||||||
import {
|
import {
|
||||||
MatrixAuth,
|
MatrixClient,
|
||||||
|
SimpleFsStorageProvider,
|
||||||
AutojoinUpgradedRoomsMixin,
|
AutojoinUpgradedRoomsMixin,
|
||||||
RichRepliesPreprocessor
|
RichRepliesPreprocessor,
|
||||||
} from "matrix-bot-sdk";
|
} from "matrix-bot-sdk";
|
||||||
|
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
|
@ -9,12 +10,17 @@ import axios from "axios";
|
||||||
import config from "./config.json" assert {type: "json"};
|
import config from "./config.json" assert {type: "json"};
|
||||||
|
|
||||||
const homeserverUrl = config.homeserver;
|
const homeserverUrl = config.homeserver;
|
||||||
const username = config.username;
|
const token = config.token;
|
||||||
const password = config.password;
|
|
||||||
const prefix = config.prefix;
|
const prefix = config.prefix;
|
||||||
|
const rooms = config.rooms;
|
||||||
|
|
||||||
|
// We'll want to make sure the bot doesn't have to do an initial sync every
|
||||||
|
// time it restarts, so we need to prepare a storage provider. Here we use
|
||||||
|
// a simple JSON database.
|
||||||
|
const storage = new SimpleFsStorageProvider("bot-storage.json");
|
||||||
|
|
||||||
// Now we can create the client and set it up to automatically join rooms.
|
// Now we can create the client and set it up to automatically join rooms.
|
||||||
const client = await new MatrixAuth(homeserverUrl).passwordLogin(username, password);
|
const client = await new MatrixClient(homeserverUrl, token, storage);
|
||||||
AutojoinUpgradedRoomsMixin.setupOnClient(client);
|
AutojoinUpgradedRoomsMixin.setupOnClient(client);
|
||||||
client.addPreprocessor(new RichRepliesPreprocessor(false));
|
client.addPreprocessor(new RichRepliesPreprocessor(false));
|
||||||
|
|
||||||
|
@ -23,8 +29,11 @@ client.addPreprocessor(new RichRepliesPreprocessor(false));
|
||||||
client.on("room.message", handleCommand);
|
client.on("room.message", handleCommand);
|
||||||
client.on("room.invite", (roomId, inviteEvent) => {
|
client.on("room.invite", (roomId, inviteEvent) => {
|
||||||
console.log(inviteEvent);
|
console.log(inviteEvent);
|
||||||
if (inviteEvent.sender !== "@henrkgr:pvv.ntnu.no") return;
|
console.log(roomId);
|
||||||
|
console.log(rooms[0]);
|
||||||
|
if (rooms.includes(roomId)) {
|
||||||
return client.joinRoom(roomId);
|
return client.joinRoom(roomId);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Now that the client is all set up and the event handler is registered, start the
|
// Now that the client is all set up and the event handler is registered, start the
|
||||||
|
@ -44,6 +53,9 @@ async function handleCommand(roomId, event) {
|
||||||
if (event["sender"] === await client.getUserId()) return;
|
if (event["sender"] === await client.getUserId()) return;
|
||||||
// Make sure that the event looks like a command we're expecting
|
// Make sure that the event looks like a command we're expecting
|
||||||
|
|
||||||
|
// If not in any authorized rooms, ignore
|
||||||
|
if (!rooms.includes(roomId)) return;
|
||||||
|
|
||||||
const text = event["content"]["body"];
|
const text = event["content"]["body"];
|
||||||
if (!text) return;
|
if (!text) return;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue