chore (backend): to be on the safe side
This commit is contained in:
parent
0b7385e16a
commit
320f933e9d
3 changed files with 37 additions and 15 deletions
|
@ -493,11 +493,16 @@ export async function extractEmojis(
|
|||
tag.icon!.url !== exists.originalUrl ||
|
||||
!(exists.width && exists.height)
|
||||
) {
|
||||
let size: ImageSize = { width: 0, height: 0 };
|
||||
try {
|
||||
size = await getImageSizeFromUrl(tag.icon!.url);
|
||||
} catch {
|
||||
/* skip if any error happens */
|
||||
let size: ImageSize | null = null;
|
||||
if (tag.icon?.url != null) {
|
||||
try {
|
||||
size = await getImageSizeFromUrl(tag.icon.url);
|
||||
} catch (err) {
|
||||
apLogger.info(
|
||||
`Failed to determine the size of the image: ${tag.icon.url}`,
|
||||
);
|
||||
apLogger.debug(inspect(err));
|
||||
}
|
||||
}
|
||||
await Emojis.update(
|
||||
{
|
||||
|
@ -509,8 +514,8 @@ export async function extractEmojis(
|
|||
originalUrl: tag.icon!.url,
|
||||
publicUrl: tag.icon!.url,
|
||||
updatedAt: new Date(),
|
||||
width: size.width || null,
|
||||
height: size.height || null,
|
||||
width: size?.width || null,
|
||||
height: size?.height || null,
|
||||
},
|
||||
);
|
||||
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
import define from "@/server/api/define.js";
|
||||
import { Emojis, DriveFiles } from "@/models/index.js";
|
||||
import { genId, getImageSizeFromUrl } from "backend-rs";
|
||||
import { type ImageSize, genId, getImageSizeFromUrl } from "backend-rs";
|
||||
import { insertModerationLog } from "@/services/insert-moderation-log.js";
|
||||
import { ApiError } from "@/server/api/error.js";
|
||||
import rndstr from "rndstr";
|
||||
import { publishBroadcastStream } from "@/services/stream.js";
|
||||
import { db } from "@/db/postgre.js";
|
||||
import { apiLogger } from "@/server/api/logger.js";
|
||||
import { inspect } from "node:util";
|
||||
|
||||
export const meta = {
|
||||
tags: ["admin", "emoji"],
|
||||
|
@ -48,7 +50,13 @@ export default define(meta, paramDef, async (ps, me) => {
|
|||
? file.name.split(".")[0]
|
||||
: `_${rndstr("a-z0-9", 8)}_`;
|
||||
|
||||
const size = await getImageSizeFromUrl(file.url);
|
||||
let size: ImageSize | null = null;
|
||||
try {
|
||||
size = await getImageSizeFromUrl(file.url);
|
||||
} catch (err) {
|
||||
apiLogger.info(`Failed to determine the image size: ${file.url}`);
|
||||
apiLogger.debug(inspect(err));
|
||||
}
|
||||
|
||||
const emoji = await Emojis.insert({
|
||||
id: genId(),
|
||||
|
@ -61,8 +69,8 @@ export default define(meta, paramDef, async (ps, me) => {
|
|||
publicUrl: file.webpublicUrl ?? file.url,
|
||||
type: file.webpublicType ?? file.type,
|
||||
license: null,
|
||||
width: size.width || null,
|
||||
height: size.height || null,
|
||||
width: size?.width || null,
|
||||
height: size?.height || null,
|
||||
}).then((x) => Emojis.findOneByOrFail(x.identifiers[0]));
|
||||
|
||||
await db.queryResultCache!.remove(["meta_emojis"]);
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
import define from "@/server/api/define.js";
|
||||
import { Emojis } from "@/models/index.js";
|
||||
import { genId, getImageSizeFromUrl } from "backend-rs";
|
||||
import { type ImageSize, genId, getImageSizeFromUrl } from "backend-rs";
|
||||
import { ApiError } from "@/server/api/error.js";
|
||||
import type { DriveFile } from "@/models/entities/drive-file.js";
|
||||
import { uploadFromUrl } from "@/services/drive/upload-from-url.js";
|
||||
import { publishBroadcastStream } from "@/services/stream.js";
|
||||
import { db } from "@/db/postgre.js";
|
||||
import { apiLogger } from "@/server/api/logger";
|
||||
import { inspect } from "node:util";
|
||||
|
||||
export const meta = {
|
||||
tags: ["admin", "emoji"],
|
||||
|
@ -75,7 +77,14 @@ export default define(meta, paramDef, async (ps, me) => {
|
|||
throw new ApiError();
|
||||
}
|
||||
|
||||
const size = await getImageSizeFromUrl(driveFile.url);
|
||||
let size: ImageSize | null = null;
|
||||
|
||||
try {
|
||||
size = await getImageSizeFromUrl(driveFile.url);
|
||||
} catch (err) {
|
||||
apiLogger.info(`Failed to determine the image size: ${driveFile.url}`);
|
||||
apiLogger.debug(inspect(err));
|
||||
}
|
||||
|
||||
const copied = await Emojis.insert({
|
||||
id: genId(),
|
||||
|
@ -87,8 +96,8 @@ export default define(meta, paramDef, async (ps, me) => {
|
|||
publicUrl: driveFile.webpublicUrl ?? driveFile.url,
|
||||
type: driveFile.webpublicType ?? driveFile.type,
|
||||
license: emoji.license,
|
||||
width: size.width || null,
|
||||
height: size.height || null,
|
||||
width: size?.width ?? null,
|
||||
height: size?.height ?? null,
|
||||
}).then((x) => Emojis.findOneByOrFail(x.identifiers[0]));
|
||||
|
||||
await db.queryResultCache!.remove(["meta_emojis"]);
|
||||
|
|
Loading…
Reference in a new issue