From ca523b9f642e3b6e245c428babc2ac6a08349045 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Mon, 16 Nov 2015 02:20:22 +0100 Subject: [PATCH] add helper method to text module --- gallery_dl/text.py | 9 +++++++++ test/test_text.py | 16 ++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/gallery_dl/text.py b/gallery_dl/text.py index 7a9a2414..44c6a8ab 100644 --- a/gallery_dl/text.py +++ b/gallery_dl/text.py @@ -28,6 +28,15 @@ def filename_from_url(url): except ValueError: return url +def nameext_from_url(url, data=None): + """Extract the last part of an url and fill keywords of 'data' accordingly""" + if data is None: + data = {} + data["filename"] = unquote(filename_from_url(url)) + data["name"], ext = os.path.splitext(data["filename"]) + data["extension"] = ext[1:] + return data + def clean_path_windows(path): """Remove illegal characters from a path-segment (Windows)""" try: diff --git a/test/test_text.py b/test/test_text.py index da1f68ee..f0cbea40 100644 --- a/test/test_text.py +++ b/test/test_text.py @@ -36,6 +36,22 @@ class TestText(unittest.TestCase): for case in cases: self.assertEqual(text.filename_from_url(case), result) + def test_nameext_from_url(self): + cases = ( + "http://example.org/v2/filename.ext", + "http://example.org/v2/filename.ext?param=value#fragment", + "example.org/filename.ext", + "/filename.ext", + "filename.ext", + ) + result = { + "filename" : "filename.ext", + "name" : "filename", + "extension": "ext", + } + for case in cases: + self.assertEqual(text.nameext_from_url(case), result) + def test_clean_path(self): cases = { "Hello World." : ("Hello World.", "Hello World."),