Merge new rendering into master #60

Merged
JanGross merged 25 commits from dev-new-rendering into master 2023-08-07 17:34:19 +02:00
Showing only changes of commit 9a79521a27 - Show all commits

View File

@@ -1,3 +1,4 @@
require("dotenv").config();
const { SlashCommandBuilder, MessageAttachment, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js"); const { SlashCommandBuilder, MessageAttachment, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js");
const { Card, User, Character } = require("../models"); const { Card, User, Character } = require("../models");
const { UserUtils, Compositing, Rendering } = require("../util"); const { UserUtils, Compositing, Rendering } = require("../util");
@@ -52,19 +53,73 @@ module.exports = {
let slots = ['slotOne', 'slotTwo', 'slotThree', 'slotFour']; let slots = ['slotOne', 'slotTwo', 'slotThree', 'slotFour'];
let renderedCards = []; let renderedCards = [];
for (slot of slots) { await Promise.all(slots.map(async slot => {
let card = await Card.findOne({ where: { id: profile[slot], burned: false } }); let card = await Card.findOne({ where: { id: profile[slot], burned: false } });
if (card) { if (card) {
console.log(`Iterating card ${card.id}`);
let cardImage = await Rendering.renderCard(card); let cardImage = await Rendering.renderCard(card);
renderedCards.push(cardImage); renderedCards.push(cardImage);
} else { } else {
renderedCards.push('/app/assets/cards/missing_image.png'); renderedCards.push(`${process.env.ASSET_URL}/cards/card_cover.png`);
}
}));
let job = {
"type": "profile",
"size": {
"width": 1200,
"height": 600
},
"elements": [
{
"type": "image",
"asset": `${renderedCards[0]}`,
"x": 25,
"y": 85,
"width": 300,
"height": 500
},
{
"type": "image",
"asset": `${renderedCards[1]}`,
"x": 350,
"y": 300,
"width": 150,
"height": 250
},
{
"type": "image",
"asset": `${renderedCards[2]}`,
"x": 510,
"y": 300,
"width": 150,
"height": 250
},
{
"type": "image",
"asset": `${renderedCards[3]}`,
"x": 670,
"y": 300,
"width": 150,
"height": 250
},
{
"type": "text",
"text": this.encodeStr(discordUser.username.substr(0,15)+(discordUser.username.length>15?'...':'')),
"fontSize": 30,
"x": 25,
"y": 25,
"width": 300,
"height": 30,
"horizontalAlignment": "center"
}
]
} }
} console.log("Fetching ", );
let { data } = await axios.post(`${process.env.JOSE_ENDPOINT}/jobs`, job);
let profileImage = await Compositing.renderProfile(profile, background, renderedCards); console.log("Fetched ", data);
await interaction.editReply({ files: [profileImage] }); await interaction.editReply({ files: [data["path"]] });
}, },
encodeStr: function(str) { encodeStr: function(str) {
let charMapping = { let charMapping = {