diff --git a/gallery_dl/downloader/http.py b/gallery_dl/downloader/http.py index 0bf19c2e..4f261206 100644 --- a/gallery_dl/downloader/http.py +++ b/gallery_dl/downloader/http.py @@ -392,6 +392,8 @@ MIME_TYPES = { "application/x-shockwave-flash": "swf", "application/ogg": "ogg", + # https://www.iana.org/assignments/media-types/model/obj + "model/obj": "obj", "application/octet-stream": "bin", } @@ -421,6 +423,13 @@ SIGNATURE_CHECKS = { "7z" : lambda s: s[0:6] == b"\x37\x7A\xBC\xAF\x27\x1C", "pdf" : lambda s: s[0:5] == b"%PDF-", "swf" : lambda s: s[0:3] in (b"CWS", b"FWS"), + "blend": lambda s: s[0:7] == b"BLENDER", + # unfortunately the Wavefront .obj format doesn't have a signature, + # so we check for the existence of Blender's comment + "obj" : lambda s: s[0:11] == b"# Blender v", + # Celsys Clip Studio Paint format + # https://github.com/rasensuihei/cliputils/blob/master/README.md + "clip": lambda s: s[0:8] == b"CSFCHUNK", # check 'bin' files against all other file signatures "bin" : lambda s: False, } diff --git a/test/test_downloader.py b/test/test_downloader.py index 0703754a..bbee0f45 100644 --- a/test/test_downloader.py +++ b/test/test_downloader.py @@ -313,6 +313,9 @@ SAMPLES = { ("pdf" , b"%PDF-"), ("swf" , b"FWS"), ("swf" , b"CWS"), + ("blend", b"BLENDER-v303RENDH"), + ("obj" , b"# Blender v3.2.0 OBJ File: 'foo.blend'"), + ("clip", b"CSFCHUNK\x00\x00\x00\x00"), }