From 37aa7337dcc99114976506749f0c141878437a74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Sat, 1 Nov 2025 10:34:11 +0100 Subject: [PATCH] [text] reject long filename extensions (#8491) fixes regression introduced in 3252ead7c74d257a45e8e15a30d884a3a528c2d1 ref bc868e7bb8ad82d9d2bef7a609aa2deb50fca647 --- gallery_dl/text.py | 2 +- test/results/kemono.py | 11 +++++++++++ test/test_text.py | 4 ++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/gallery_dl/text.py b/gallery_dl/text.py index 9738edb2..5b074d9e 100644 --- a/gallery_dl/text.py +++ b/gallery_dl/text.py @@ -125,7 +125,7 @@ def nameext_from_name(filename, data=None): data = {} name, _, ext = filename.rpartition(".") - if name: + if name and len(ext) <= 16: data["filename"] = name data["extension"] = ext.lower() else: diff --git a/test/results/kemono.py b/test/results/kemono.py index cb9e290a..f1bb4d3f 100644 --- a/test/results/kemono.py +++ b/test/results/kemono.py @@ -549,6 +549,17 @@ __tests__ = ( "username" : util.NONE, }, +{ + "#url" : "https://kemono.cr/patreon/user/2570882/post/79311665", + "#comment" : "patreon file URL as 'name' / long 'extension' (#8491)", + "#category": ("", "kemono", "patreon"), + "#class" : kemono.KemonoPostExtractor, + + "name" : "https://www.patreon.com/media-u/Z0FBQUFBQmpfWFNLWHpRakFlYjVNeWpuTlRuRnJBdHY3VVA2UmRhVHFpOFBHMW9QZUdVOHQ3b2pXSV9XMkJlaHFuN2JyVk5VNDBqdV9lZVRLR2NkUXUwSjgwdndDQlk3VzBCUXI5TW5iejlVWVZaUmJoTktIX3B5aGVCS3dUQk11a2hxajd4TUx2MFN2UHpKa0pfOWZQeS1UeDlzNEhpbG9pRzJsZE54MG5OcnZDOUllTGhyY01rNjVRaGgyaVFycjFSUUFIaV92OU9wdktuVjlMeFJNLXhYejdDNWZTVXZEc2l0TVZCR1A0YXM3RVMzbmsxSjh2ND0=#190833153_", + "filename" : "https://www.patreon.com/media-u/Z0FBQUFBQmpfWFNLWHpRakFlYjVNeWpuTlRuRnJBdHY3VVA2UmRhVHFpOFBHMW9QZUdVOHQ3b2pXSV9XMkJlaHFuN2JyVk5VNDBqdV9lZVRLR2NkUXUwSjgwdndDQlk3VzBCUXI5TW5iejlVWVZaUmJoTktIX3B5aGVCS3dUQk11a2hxajd4TUx2MFN2UHpKa0pfOWZQeS1UeDlzNEhpbG9pRzJsZE54MG5OcnZDOUllTGhyY01rNjVRaGgyaVFycjFSUUFIaV92OU9wdktuVjlMeFJNLXhYejdDNWZTVXZEc2l0TVZCR1A0YXM3RVMzbmsxSjh2ND0=#190833153_", + "extension": "jpg", +}, + { "#url" : "https://kemono.cr/discord/server/488668827274444803/608504710906904576", "#category": ("", "kemono", "discord"), diff --git a/test/test_text.py b/test/test_text.py index 7b9a4247..eac79069 100644 --- a/test/test_text.py +++ b/test/test_text.py @@ -228,6 +228,10 @@ class TestText(unittest.TestCase): {"filename": "foo%202?bar&<>", "extension": "ext"}, ) + # long "extension" + fn = "httpswww.example.orgpath-path-path-path-path-path-path-path" + self.assertEqual(f(fn), {"filename": fn, "extension": ""}) + def test_extract(self, f=text.extract): txt = "" self.assertEqual(f(txt, "<", ">"), ("a" , 3))