heart2heart/src/utils.js

63 lines
1.6 KiB
JavaScript

import fs from 'fs';
import {
EncryptionAlgorithm,
MatrixClient,
MessageEvent,
RustSdkCryptoStorageProvider,
SimpleFsStorageProvider,
} from "matrix-bot-sdk";
const configPath = './config.json';
const logError = (message) => {
let time = new Date;
console.error(`[${time.toLocaleString()}] [LOG] [E] ${message}`);
};
const logInfo = (message) => {
let time = new Date;
console.log(`[${time.toLocaleString()}] [LOG] [I] ${message}`);
};
const readConfig = () => {
if (!fs.existsSync(configPath)) {
fs.writeFileSync(configPath,
`{
"homeserverURL": "https://matrix.org/",
"token": "Super secret token! Do not show to anyone! Even your mum! ;)",
"maxAmountOfPhotoesPerUser": 5
}`
);
logError('[LOG] [E] Config file was not found. I have created a template, please, edit it and restart a bot.');
process.exit(-1);
}
return JSON.parse(fs.readFileSync(configPath));
};
const uploadMediaFromEvent = async (client, event) => {
const message = new MessageEvent(event);
const fileEvent = new MessageEvent(message.raw);
const decrypted = await client.crypto.decryptMedia(fileEvent.content.file);
const mxc = await client.uploadContent(decrypted);
return mxc;
};
const convertMsgType = (msgtype) => {
switch (msgtype) {
case "m.image":
return "p";
case "m.video":
return "v";
case "m.text":
return "t";
default:
return msgtype;
}
};
export { readConfig, logError, logInfo, uploadMediaFromEvent, convertMsgType };