From 8ff5468410ff2b4ba9195fe8638acf18fe683e7d Mon Sep 17 00:00:00 2001 From: Kurt Hutten Date: Tue, 11 Jan 2022 18:36:36 +1100 Subject: [PATCH] Tweak discord bot message. --- app/api/src/lib/discord.ts | 18 ++++++++++++++---- app/api/src/services/projects/projects.ts | 17 +++++++++++++++-- app/redwood.toml | 2 -- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/app/api/src/lib/discord.ts b/app/api/src/lib/discord.ts index 2bb94af..649566e 100644 --- a/app/api/src/lib/discord.ts +++ b/app/api/src/lib/discord.ts @@ -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) { diff --git a/app/api/src/services/projects/projects.ts b/app/api/src/services/projects/projects.ts index ae1d8ec..2660a67 100644 --- a/app/api/src/services/projects/projects.ts +++ b/app/api/src/services/projects/projects.ts @@ -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 } diff --git a/app/redwood.toml b/app/redwood.toml index 2ae67db..4177995 100644 --- a/app/redwood.toml +++ b/app/redwood.toml @@ -18,8 +18,6 @@ 'SENTRY_ORG', 'SENTRY_PROJECT', 'EMAIL_PASSWORD', - 'DISCORD_TOKEN', - 'DISCORD_CHANNEL_ID', ] # experimentalFastRefresh = true # this seems to break cascadeStudio [api]