Fix remote avatar without AP mediatype field
This commit is contained in:
parent
30ff193a60
commit
c6de3a85ee
|
@ -422,7 +422,8 @@ const MIMETYPES = {
|
|||
'image/png': '.png',
|
||||
'image/jpg': '.jpg',
|
||||
'image/jpeg': '.jpg'
|
||||
}
|
||||
},
|
||||
EXT_MIMETYPE: null as { [ id: string ]: string }
|
||||
},
|
||||
VIDEO_CAPTIONS: {
|
||||
MIMETYPE_EXT: {
|
||||
|
@ -438,6 +439,7 @@ const MIMETYPES = {
|
|||
}
|
||||
}
|
||||
MIMETYPES.AUDIO.EXT_MIMETYPE = invert(MIMETYPES.AUDIO.MIMETYPE_EXT)
|
||||
MIMETYPES.IMAGE.EXT_MIMETYPE = invert(MIMETYPES.IMAGE.MIMETYPE_EXT)
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@ import {
|
|||
MActorId,
|
||||
MChannel
|
||||
} from '../../typings/models'
|
||||
import { extname } from 'path'
|
||||
|
||||
// Set account keys, this could be long so process after the account creation and do not block the client
|
||||
function setAsyncActorKeys <T extends MActor> (actor: T) {
|
||||
|
@ -215,21 +216,23 @@ async function fetchActorTotalItems (url: string) {
|
|||
}
|
||||
|
||||
function getAvatarInfoIfExists (actorJSON: ActivityPubActor) {
|
||||
if (
|
||||
actorJSON.icon && actorJSON.icon.type === 'Image' && MIMETYPES.IMAGE.MIMETYPE_EXT[actorJSON.icon.mediaType] !== undefined &&
|
||||
isActivityPubUrlValid(actorJSON.icon.url)
|
||||
) {
|
||||
const extension = MIMETYPES.IMAGE.MIMETYPE_EXT[actorJSON.icon.mediaType]
|
||||
const mimetypes = MIMETYPES.IMAGE
|
||||
const icon = actorJSON.icon
|
||||
|
||||
if (!icon || icon.type !== 'Image' || !isActivityPubUrlValid(icon.url)) return undefined
|
||||
|
||||
const extension = icon.mediaType
|
||||
? mimetypes.MIMETYPE_EXT[icon.mediaType]
|
||||
: extname(icon.url)
|
||||
|
||||
if (!extension) return undefined
|
||||
|
||||
return {
|
||||
name: uuidv4() + extension,
|
||||
fileUrl: actorJSON.icon.url
|
||||
fileUrl: icon.url
|
||||
}
|
||||
}
|
||||
|
||||
return undefined
|
||||
}
|
||||
|
||||
async function addFetchOutboxJob (actor: Pick<ActorModel, 'id' | 'outboxUrl'>) {
|
||||
// Don't fetch ourselves
|
||||
const serverActor = await getServerActor()
|
||||
|
|
Loading…
Reference in New Issue