summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorneobooru <50623835+neobooru@users.noreply.github.com>2019-10-05 16:34:12 +0200
committerShyam Sunder <sgsunder1@gmail.com>2019-10-08 18:22:47 -0400
commit73c53fa4e2063d81a8ba660080cfb53cf40ad8a6 (patch)
treea8adcf1a790632c511a50b9a600f8730c385f14c /server
parentf4afb145d6eff41edbb004f02479dafe027be10d (diff)
all: add support for webp images
Includes webp test image Merges #283
Diffstat (limited to 'server')
-rw-r--r--server/szurubooru/func/mime.py6
-rw-r--r--server/szurubooru/tests/assets/webp.webpbin0 -> 4594 bytes
-rw-r--r--server/szurubooru/tests/func/test_mime.py2
3 files changed, 7 insertions, 1 deletions
diff --git a/server/szurubooru/func/mime.py b/server/szurubooru/func/mime.py
index c83f744..8f069a1 100644
--- a/server/szurubooru/func/mime.py
+++ b/server/szurubooru/func/mime.py
@@ -18,6 +18,9 @@ def get_mime_type(content: bytes) -> str:
if content[0:6] in (b'GIF87a', b'GIF89a'):
return 'image/gif'
+ if content[8:12] == b'WEBP':
+ return 'image/webp'
+
if content[0:4] == b'\x1A\x45\xDF\xA3':
return 'video/webm'
@@ -33,6 +36,7 @@ def get_extension(mime_type: str) -> Optional[str]:
'image/gif': 'gif',
'image/jpeg': 'jpg',
'image/png': 'png',
+ 'image/webp': 'webp',
'video/mp4': 'mp4',
'video/webm': 'webm',
'application/octet-stream': 'dat',
@@ -49,7 +53,7 @@ def is_video(mime_type: str) -> bool:
def is_image(mime_type: str) -> bool:
- return mime_type.lower() in ('image/jpeg', 'image/png', 'image/gif')
+ return mime_type.lower() in ('image/jpeg', 'image/png', 'image/gif', 'image/webp')
def is_animated_gif(content: bytes) -> bool:
diff --git a/server/szurubooru/tests/assets/webp.webp b/server/szurubooru/tests/assets/webp.webp
new file mode 100644
index 0000000..d116e1e
--- /dev/null
+++ b/server/szurubooru/tests/assets/webp.webp
Binary files differ
diff --git a/server/szurubooru/tests/func/test_mime.py b/server/szurubooru/tests/func/test_mime.py
index 4b8dcfa..821ed20 100644
--- a/server/szurubooru/tests/func/test_mime.py
+++ b/server/szurubooru/tests/func/test_mime.py
@@ -9,6 +9,7 @@ from szurubooru.func import mime
('png.png', 'image/png'),
('jpeg.jpg', 'image/jpeg'),
('gif.gif', 'image/gif'),
+ ('webp.webp', 'image/webp'),
('text.txt', 'application/octet-stream'),
])
def test_get_mime_type(read_asset, input_path, expected_mime_type):
@@ -26,6 +27,7 @@ def test_get_mime_type_for_empty_file():
('image/png', 'png'),
('image/jpeg', 'jpg'),
('image/gif', 'gif'),
+ ('image/webp', 'webp'),
('application/octet-stream', 'dat'),
])
def test_get_extension(mime_type, expected_extension):