diff --git a/commands/message/utils/qr-scan.js b/commands/message/utils/qr-scan.js new file mode 100644 index 0000000..e628530 --- /dev/null +++ b/commands/message/utils/qr-scan.js @@ -0,0 +1,48 @@ +const { createEmbed } = require('../../../labscore/utils/embed') +const { editOrReply } = require('../../../labscore/utils/message') +const { codeblock } = require('../../../labscore/utils/markdown'); + +const { getRecentImage } = require("../../../labscore/utils/attachment"); + +const superagent = require('superagent'); + +module.exports = { + name: 'scan', + metadata: { + description: 'qr code scanner', + examples: ['scan'], + category: 'utils', + usage: `scan ` + }, + run: async (context) => { + context.triggerTyping(); + + let image = await getRecentImage(context, 50) + if (!image) return editOrReply(context, createEmbed("warning", context, "No images found.")) + + try { + const t = Date.now(); + + let res = await superagent.get(`https://api.qrserver.com/v1/read-qr-code/`) + .query({ + "fileurl": image + }) + + if (!res.body[0].symbol[0].data) return editOrReply(context, createEmbed("warning", context, "No QR codes found.")) + + return await editOrReply(context, createEmbed("default", context, { + description: codeblock("ansi", [res.body[0].symbol[0].data]), + thumbnail: { + url: image + }, + footer: { + iconUrl: `https://cdn.discordapp.com/avatars/${context.application.id}/${context.application.icon}.png?size=256`, + text: `labsCore • Took ${((Date.now() - t) / 1000).toFixed(2)}s` + } + })) + } catch (e) { + console.log(e) + return editOrReply(context, { embeds: [createEmbed("error", context, `Unable to scan qr codes.`)] }) + } + } +}; \ No newline at end of file diff --git a/commands/message/utils/qr.js b/commands/message/utils/qr.js new file mode 100644 index 0000000..7222ce9 --- /dev/null +++ b/commands/message/utils/qr.js @@ -0,0 +1,49 @@ +const { createEmbed } = require('../../../labscore/utils/embed') +const { editOrReply } = require('../../../labscore/utils/message') + +const superagent = require('superagent'); + +module.exports = { + name: 'qr', + label: 'text', + metadata: { + description: 'qr code generator', + examples: ['qr big nutty'], + category: 'utils', + usage: `qr ` + }, + run: async (context, args) => { + context.triggerTyping(); + let response = await editOrReply(context, createEmbed("loading", context, `Generating qr code...`)) + try{ + const t = Date.now(); + + let res = await superagent.get(`https://api.qrserver.com/v1/create-qr-code/`) + .query({ + "size": "1024x1024", + "data": args.text + }) + + await response.edit({ + embeds: [ + createEmbed("default", context, { + image: { + url: `attachment://qrcode.png` + }, + footer: { + iconUrl: `https://cdn.discordapp.com/avatars/${context.application.id}/${context.application.icon}.png?size=256`, + text: `labsCore • Took ${((Date.now() - t) / 1000).toFixed(2)}s` + } + }) + ], + files: [{ + filename: "qrcode.png", + value: res.body + }] + }) + }catch(e){ + console.log(e) + return editOrReply(context, {embeds:[createEmbed("error", context, `Unable to generate qr code.`)]}) + } + } +}; \ No newline at end of file