mirror of https://gitlab.com/bashrc2/epicyon
Mime type detection functions
parent
c6da9ce269
commit
06f324b7d6
|
@ -785,6 +785,61 @@ def addEmojiToDisplayName(baseDir: str, httpPrefix: str,
|
|||
return displayName
|
||||
|
||||
|
||||
def _isImageMimeType(mimeType: str) -> bool:
|
||||
"""Is the given mime type an image?
|
||||
"""
|
||||
imageMimeTypes = (
|
||||
'image/png',
|
||||
'image/jpeg',
|
||||
'image/webp',
|
||||
'image/avif',
|
||||
'image/svg+xml',
|
||||
'image/gif'
|
||||
)
|
||||
if mimeType in imageMimeTypes:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def _isVideoMimeType(mimeType: str) -> bool:
|
||||
"""Is the given mime type a video?
|
||||
"""
|
||||
videoMimeTypes = (
|
||||
'video/mp4',
|
||||
'video/webm',
|
||||
'video/ogv'
|
||||
)
|
||||
if mimeType in videoMimeTypes:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def _isAudioMimeType(mimeType: str) -> bool:
|
||||
"""Is the given mime type an audio file?
|
||||
"""
|
||||
audioMimeTypes = (
|
||||
'audio/mpeg',
|
||||
'audio/ogg'
|
||||
)
|
||||
if mimeType in audioMimeTypes:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def _isAttachedImage(attachmentFilename: str) -> bool:
|
||||
"""Is the given attachment filename an image?
|
||||
"""
|
||||
if '.' not in attachmentFilename:
|
||||
return False
|
||||
imageExt = (
|
||||
'png', 'jpg', 'jpeg', 'webp', 'avif', 'svg', 'gif'
|
||||
)
|
||||
ext = attachmentFilename.split('.')[-1]
|
||||
if ext in imageExt:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def getPostAttachmentsAsHtml(postJsonObject: {}, boxName: str, translate: {},
|
||||
isMuted: bool, avatarLink: str,
|
||||
replyStr: str, announceStr: str, likeStr: str,
|
||||
|
@ -810,19 +865,8 @@ def getPostAttachmentsAsHtml(postJsonObject: {}, boxName: str, translate: {},
|
|||
imageDescription = ''
|
||||
if attach.get('name'):
|
||||
imageDescription = attach['name'].replace('"', "'")
|
||||
if mediaType == 'image/png' or \
|
||||
mediaType == 'image/jpeg' or \
|
||||
mediaType == 'image/webp' or \
|
||||
mediaType == 'image/avif' or \
|
||||
mediaType == 'image/svg+xml' or \
|
||||
mediaType == 'image/gif':
|
||||
if attach['url'].endswith('.png') or \
|
||||
attach['url'].endswith('.jpg') or \
|
||||
attach['url'].endswith('.jpeg') or \
|
||||
attach['url'].endswith('.webp') or \
|
||||
attach['url'].endswith('.avif') or \
|
||||
attach['url'].endswith('.svg') or \
|
||||
attach['url'].endswith('.gif'):
|
||||
if _isImageMimeType(mediaType):
|
||||
if _isAttachedImage(attach['url']):
|
||||
if attachmentCtr > 0:
|
||||
attachmentStr += '<br>'
|
||||
if boxName == 'tlmedia':
|
||||
|
@ -862,9 +906,7 @@ def getPostAttachmentsAsHtml(postJsonObject: {}, boxName: str, translate: {},
|
|||
'" alt="' + imageDescription + '" title="' + \
|
||||
imageDescription + '" class="attachment"></a>\n'
|
||||
attachmentCtr += 1
|
||||
elif (mediaType == 'video/mp4' or
|
||||
mediaType == 'video/webm' or
|
||||
mediaType == 'video/ogv'):
|
||||
elif _isVideoMimeType(mediaType):
|
||||
extension = '.mp4'
|
||||
if attach['url'].endswith('.webm'):
|
||||
extension = '.webm'
|
||||
|
@ -923,8 +965,7 @@ def getPostAttachmentsAsHtml(postJsonObject: {}, boxName: str, translate: {},
|
|||
translate['Your browser does not support the video tag.']
|
||||
attachmentStr += '</video></center>'
|
||||
attachmentCtr += 1
|
||||
elif (mediaType == 'audio/mpeg' or
|
||||
mediaType == 'audio/ogg'):
|
||||
elif _isAudioMimeType(mediaType):
|
||||
extension = '.mp3'
|
||||
if attach['url'].endswith('.ogg'):
|
||||
extension = '.ogg'
|
||||
|
|
Loading…
Reference in New Issue