Compare commits

...
Sign in to create a new pull request.

5 commits

Author SHA1 Message Date
812e36329c Disable error for series helper temporarily
All checks were successful
Deploy To Production / build (push) Successful in 30s
Deploy To Production / deploy (push) Successful in 17s
2025-04-25 09:14:30 +01:00
c4e345cc46 Fix linting
All checks were successful
Deploy To Production / build (push) Successful in 27s
Deploy To Production / deploy (push) Successful in 16s
2025-04-23 10:41:20 +01:00
659906e562 Add catch to image grid generator
Some checks failed
Deploy To Production / build (push) Failing after 20s
Deploy To Production / deploy (push) Has been skipped
2025-04-23 10:40:06 +01:00
1796f2519e Add error handler to series view command
All checks were successful
Deploy To Production / build (push) Successful in 28s
Deploy To Production / deploy (push) Successful in 16s
2025-04-22 16:12:04 +01:00
211ef74410 v0.8.4
All checks were successful
Deploy To Production / build (push) Successful in 34s
Deploy To Production / deploy (push) Successful in 17s
2025-04-22 15:21:19 +01:00
3 changed files with 51 additions and 40 deletions

View file

@ -1,6 +1,6 @@
{ {
"name": "card-drop", "name": "card-drop",
"version": "0.8.3", "version": "0.8.4",
"main": "./dist/bot.js", "main": "./dist/bot.js",
"typings": "./dist", "typings": "./dist",
"scripts": { "scripts": {

View file

@ -60,13 +60,18 @@ export default class Series extends Command {
return; return;
} }
const embed = await SeriesHelper.GenerateSeriesViewPage(series.id, 0, interaction.user.id); try {
const embed = await SeriesHelper.GenerateSeriesViewPage(series.id, 0, interaction.user.id);
await interaction.followUp({ await interaction.followUp({
embeds: [ embed!.embed ], embeds: [ embed!.embed ],
components: [ embed!.row ], components: [ embed!.row ],
files: [ embed!.image ], files: [ embed!.image ],
}); });
} catch (e) {
await interaction.followUp("An error has occured generating the series grid.");
AppLogger.CatchError("Series", e);
}
} }
private async ListSeries(interaction: CommandInteraction) { private async ListSeries(interaction: CommandInteraction) {

View file

@ -26,46 +26,52 @@ export default class ImageHelper {
const ctx = canvas.getContext("2d"); const ctx = canvas.getContext("2d");
for (let i = 0; i < cards.length; i++) { for (let i = 0; i < cards.length; i++) {
const card = cards[i]; try {
const card = cards[i];
const filePath = path.join(process.env.DATA_DIR!, "cards", card.path); const filePath = path.join(process.env.DATA_DIR!, "cards", card.path);
let bitmap: Bitmap; let bitmap: Bitmap;
if (existsSync(filePath)) { if (existsSync(filePath)) {
const data = await Jimp.read(filePath); const data = await Jimp.read(filePath);
bitmap = data.bitmap; bitmap = data.bitmap;
} else if (card.path.startsWith("http://") || card.path.startsWith("https://")) { } else if (card.path.startsWith("http://") || card.path.startsWith("https://")) {
const response = await axios.get(card.path, { responseType: "arraybuffer" }); const response = await axios.get(card.path, { responseType: "arraybuffer" });
const buffer = Buffer.from(response.data); const buffer = Buffer.from(response.data);
const data = await Jimp.fromBuffer(buffer); const data = await Jimp.fromBuffer(buffer);
bitmap = data.bitmap; bitmap = data.bitmap;
} else { } else {
AppLogger.LogError("ImageHelper/GenerateCardImageGrid", `Failed to load image from path ${card.path}`); AppLogger.LogError("ImageHelper/GenerateCardImageGrid", `Failed to load image from path ${card.path}`);
continue; continue;
}
const imageData = Jimp.fromBitmap(bitmap);
if (userId != null) {
const claimed = await Inventory.FetchOneByCardNumberAndUserId(userId, card.id);
if (!claimed || claimed.Quantity == 0) {
imageData.greyscale();
} }
const imageData = Jimp.fromBitmap(bitmap);
if (userId != null) {
const claimed = await Inventory.FetchOneByCardNumberAndUserId(userId, card.id);
if (!claimed || claimed.Quantity == 0) {
imageData.greyscale();
}
}
const image = await loadImage(await imageData.getBuffer("image/png"));
const x = i % gridWidth;
const y = Math.floor(i / gridWidth);
const imageX = imageWidth * x;
const imageY = imageHeight * y;
ctx.drawImage(image, imageX, imageY);
}
catch (e) {
// TODO: Enable once we've investigated a fix
//AppLogger.CatchError("ImageHelper", e);
} }
const image = await loadImage(await imageData.getBuffer("image/png"));
const x = i % gridWidth;
const y = Math.floor(i / gridWidth);
const imageX = imageWidth * x;
const imageY = imageHeight * y;
ctx.drawImage(image, imageX, imageY);
} }
return canvas.toBuffer(); return canvas.toBuffer();