mrmBot-Matrix/commands/qrcreate.js

33 lines
875 B
JavaScript
Raw Normal View History

2019-09-13 20:02:41 +00:00
const qrcode = require("qrcode");
2020-07-27 23:02:59 +00:00
const { PassThrough } = require("stream");
2019-09-13 20:02:41 +00:00
exports.run = async (message, args, content) => {
2019-09-13 20:02:41 +00:00
if (args.length === 0) return `${message.author.mention}, you need to provide some text to generate a QR code!`;
message.channel.sendTyping();
2020-07-27 23:02:59 +00:00
const writable = new PassThrough();
qrcode.toFileStream(writable, content, { margin: 1 });
const file = await streamToBuf(writable);
return {
file: file,
name: "qr.png"
};
};
function streamToBuf(stream) {
return new Promise((resolve, reject) => {
const chunks = [];
stream.on("data", (chunk) => {
chunks.push(chunk);
});
stream.once("error", (error) => {
reject(error);
});
stream.once("end", () => {
resolve(Buffer.concat(chunks));
});
});
}
exports.category = 1;
exports.help = "Generates a QR code";
exports.params = "[text]";