Tweak discord bot message.

This commit is contained in:
Kurt Hutten
2022-01-11 18:36:36 +11:00
parent 51ba64d13e
commit 8ff5468410
3 changed files with 29 additions and 8 deletions

View File

@@ -1,19 +1,29 @@
import {Client, Intents} from "discord.js"
import {Client, Intents, MessageAttachment} from "discord.js"
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES]})
export async function sendChat(text: string) {
export async function sendDiscordMessage(text: string, url?: string) {
if (!client.isReady()) {
console.error(`Discord: client is not ready to send message ("${text}")`);
} else {
const channel = await client.channels.fetch(process.env.DISCORD_CHANNEL_ID);
channel.send(text);
if (url) {
channel.send({ embeds: [{
title: text,
image: {
url: url,
},
}] });
} else {
channel.send(text)
}
}
}
client.on("ready", async () => {
console.log(`Discord: logged in as ${client.user.tag}`)
await sendChat("started");
})
if (!process.env.DISCORD_TOKEN || !process.env.DISCORD_CHANNEL_ID) {

View File

@@ -12,7 +12,8 @@ import {
} from 'src/services/helpers'
import { requireAuth } from 'src/lib/auth'
import { requireOwnership, requireProjectOwnership } from 'src/lib/owner'
import { sendChat } from 'src/lib/discord'
import { sendDiscordMessage } from 'src/lib/discord'
export const projects = ({ userName }) => {
if (!userName) {
@@ -244,7 +245,19 @@ export const updateProjectImages = async ({
const [updatedProject] = await Promise.all([
projectPromise,
imageDestroyPromise,
]).then(() => sendChat(`project image updated: ${id}`));
]).then(async (result) => {
const { userName } = await db.user.findUnique({
where: { id: project.userId },
})
sendDiscordMessage([
`${userName} just added an image to their ${project.cadPackage} project:`,
` => ${project.title}`,
``,
`Check it out, leave a comment, make them feel welcome!`,
`https://cadhub.xyz/u/${userName}/${project.title}`
].join('\n'), `https://res.cloudinary.com/irevdev/image/upload/c_scale,w_700/v1/${mainImage}`)
return result
})
return updatedProject
}