Browse Source

Cleanup actor image without width

tags/v4.3.0
Chocobozzz 1 week ago
parent
commit
e0bfb72ce0
No known key found for this signature in database GPG Key ID: 583A612D890159BE
1 changed files with 16 additions and 5 deletions
  1. +16
    -5
      server/lib/activitypub/actors/image.ts

+ 16
- 5
server/lib/activitypub/actors/image.ts View File

@@ -13,20 +13,31 @@ type ImageInfo = {
}

async function updateActorImages (actor: MActorImages, type: ActorImageType, imagesInfo: ImageInfo[], t: Transaction) {
const avatarsOrBanners = type === ActorImageType.AVATAR
? actor.Avatars
: actor.Banners
const getAvatarsOrBanners = () => {
const result = type === ActorImageType.AVATAR
? actor.Avatars
: actor.Banners

return result || []
}

if (imagesInfo.length === 0) {
await deleteActorImages(actor, type, t)
}

// Cleanup old images that did not have a width
for (const oldImageModel of getAvatarsOrBanners()) {
if (oldImageModel.width) continue

await safeDeleteActorImage(actor, oldImageModel, type, t)
}

for (const imageInfo of imagesInfo) {
const oldImageModel = (avatarsOrBanners || []).find(i => i.width === imageInfo.width)
const oldImageModel = getAvatarsOrBanners().find(i => imageInfo.width && i.width === imageInfo.width)

if (oldImageModel) {
// Don't update the avatar if the file URL did not change
if (imageInfo?.fileUrl && oldImageModel.fileUrl === imageInfo.fileUrl) {
if (imageInfo.fileUrl && oldImageModel.fileUrl === imageInfo.fileUrl) {
continue
}



Loading…
Cancel
Save