attachments revolt->discord

This commit is contained in:
JandereDev 2022-04-18 19:05:31 +02:00
parent 077b46fde7
commit 249fc99c13
Signed by: Lea
GPG key ID: 5D5E18ACB990F57A
2 changed files with 25 additions and 7 deletions

View file

@ -1,6 +1,9 @@
import { Client } from '@janderedev/revolt.js'; import { Client } from '@janderedev/revolt.js';
import axios from 'axios';
import { logger } from '..'; import { logger } from '..';
let AUTUMN_URL = `http://autumnUrl`;
const client = new Client({ const client = new Client({
messageTimeoutFix: true, messageTimeoutFix: true,
autoReconnect: true, autoReconnect: true,
@ -9,12 +12,16 @@ const client = new Client({
const login = () => new Promise((resolve: (value: Client) => void) => { const login = () => new Promise((resolve: (value: Client) => void) => {
client.loginBot(process.env['REVOLT_TOKEN']!); client.loginBot(process.env['REVOLT_TOKEN']!);
client.once('ready', () => { client.once('ready', async () => {
logger.info(`Revolt: ${client.user?.username} ready - ${client.servers.size} servers`); logger.info(`Revolt: ${client.user?.username} ready - ${client.servers.size} servers`);
const apiConfig = await axios.get(client.apiURL);
AUTUMN_URL = apiConfig.data?.features?.autumn?.url;
resolve(client); resolve(client);
}); });
}); });
import('./events'); import('./events');
export { client, login } export { client, login, AUTUMN_URL }

View file

@ -1,15 +1,15 @@
import axios from "axios"; import axios from "axios";
import { BRIDGED_MESSAGES, BRIDGE_CONFIG, logger } from ".."; import { BRIDGED_MESSAGES, BRIDGE_CONFIG, logger } from "..";
import { client } from "./client"; import { AUTUMN_URL, client } from "./client";
import { client as discordClient } from "../discord/client"; import { client as discordClient } from "../discord/client";
import { MessageEmbed, WebhookClient } from "discord.js"; import { MessageEmbed, MessagePayload, Webhook, WebhookClient, WebhookMessageOptions } from "discord.js";
import GenericEmbed from "../types/GenericEmbed"; import GenericEmbed from "../types/GenericEmbed";
import { SendableEmbed } from "revolt-api"; import { SendableEmbed } from "revolt-api";
import { clipText, discordFetchMessage, discordFetchUser, revoltFetchMessage, revoltFetchUser } from "../util"; import { clipText, discordFetchMessage, discordFetchUser, revoltFetchMessage, revoltFetchUser } from "../util";
client.on('message', async message => { client.on('message', async message => {
try { try {
if (!message.content || typeof message.content != 'string') return; if (message.content && typeof message.content != 'string') return;
logger.debug(`[M] Revolt: ${message.content}`); logger.debug(`[M] Revolt: ${message.content}`);
const [ bridgeCfg, bridgedMsg, ...repliedMessages ] = await Promise.all([ const [ bridgeCfg, bridgedMsg, ...repliedMessages ] = await Promise.all([
@ -47,8 +47,8 @@ client.on('message', async message => {
token: bridgeCfg.discordWebhook.token, token: bridgeCfg.discordWebhook.token,
}); });
const payload = { const payload: MessagePayload|WebhookMessageOptions = {
content: `${message.content}`, content: message.content || undefined,
username: message.author?.username ?? 'Unknown user', username: message.author?.username ?? 'Unknown user',
avatarURL: message.author?.generateAvatarURL({ max_side: 128 }), avatarURL: message.author?.generateAvatarURL({ max_side: 128 }),
embeds: message.embeds?.length embeds: message.embeds?.length
@ -93,6 +93,17 @@ client.on('message', async message => {
else payload.embeds = [ embed ]; else payload.embeds = [ embed ];
} }
if (message.attachments?.length) {
payload.files = [];
for (const attachment of message.attachments) {
payload.files.push({
attachment: `${AUTUMN_URL}/attachments/${attachment._id}/${attachment.filename}`,
name: attachment.filename,
});
}
}
client.send(payload) client.send(payload)
.then(async res => { .then(async res => {
await BRIDGED_MESSAGES.update({ await BRIDGED_MESSAGES.update({