userinfo: nothing is ever sized the same...
This commit is contained in:
parent
d19826f1e1
commit
338dc9aa95
1 changed files with 11 additions and 7 deletions
|
@ -72,16 +72,16 @@ async function fetchQuestData() {
|
||||||
questsFetch = Date.now() + 60 * 60 * 1000;
|
questsFetch = Date.now() + 60 * 60 * 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
function nameplateBackground(color) {
|
function nameplateBackground(width, height, color, light = false) {
|
||||||
return sharp(
|
return sharp(
|
||||||
Buffer.from(`<svg viewBox="0 0 448 84" width="448" height="84" xmlns="http://www.w3.org/2000/svg">
|
Buffer.from(`<svg viewBox="0 0 ${width} ${height}" width="${width}" height="${height}" xmlns="http://www.w3.org/2000/svg">
|
||||||
<defs>
|
<defs>
|
||||||
<linearGradient id="nameplate">
|
<linearGradient id="nameplate">
|
||||||
<stop offset="0%" stop-color="${color}1A" />
|
<stop offset="0%" stop-color="${color}1A" />
|
||||||
<stop offset="100%" stop-color="${color}66" />
|
<stop offset="100%" stop-color="${color}${light ? "66" : "4D"}" />
|
||||||
</linearGradient>
|
</linearGradient>
|
||||||
</defs>
|
</defs>
|
||||||
<rect x="0" y="0" width="448" height="84" fill="url('#nameplate')"/>
|
<rect x="0" y="0" width="${width}" height="${height}" fill="url('#nameplate')"/>
|
||||||
</svg>`)
|
</svg>`)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -515,13 +515,16 @@ userinfo.callback = async function (msg, line) {
|
||||||
const static = await fetch(imageUrl)
|
const static = await fetch(imageUrl)
|
||||||
.then((res) => res.arrayBuffer())
|
.then((res) => res.arrayBuffer())
|
||||||
.then((b) => Buffer.from(b));
|
.then((b) => Buffer.from(b));
|
||||||
|
const metadata = sharp(static).metadata();
|
||||||
|
|
||||||
const bg_light = nameplateBackground(palette.lightBackground);
|
const bg_light = nameplateBackground(metadata.width, metadata.height, palette.lightBackground, true);
|
||||||
bg_light.composite([{input: static}]);
|
bg_light.composite([{input: static}]);
|
||||||
const bg_dark = nameplateBackground(palette.darkBackground);
|
const bg_dark = nameplateBackground(metadata.width, metadata.height, palette.darkBackground);
|
||||||
bg_dark.composite([{input: static}]);
|
bg_dark.composite([{input: static}]);
|
||||||
|
|
||||||
const final = sharp({create: {width: 448, height: 168, channels: 4, background: "transparent"}});
|
const final = sharp({
|
||||||
|
create: {width: metadata.width, height: metadata.height * 2, channels: 4, background: "transparent"},
|
||||||
|
});
|
||||||
final.composite([
|
final.composite([
|
||||||
{input: await bg_light.toBuffer(), gravity: "north"},
|
{input: await bg_light.toBuffer(), gravity: "north"},
|
||||||
{input: await bg_dark.toBuffer(), gravity: "south"},
|
{input: await bg_dark.toBuffer(), gravity: "south"},
|
||||||
|
@ -552,6 +555,7 @@ userinfo.callback = async function (msg, line) {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
image: {url: imageUrl},
|
image: {url: imageUrl},
|
||||||
|
footer: `SKU ID: ${nameplate.sku_id}`,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue