From 76581c13f7eb8023bfde0e472e599a2eec7451a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Thu, 29 Feb 2024 15:05:46 +0100 Subject: [PATCH] handle URLs without '/' after their TLD (#5252) --- gallery_dl/text.py | 10 ++++++++-- test/test_text.py | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/gallery_dl/text.py b/gallery_dl/text.py index 1fb1851a..b7b5211d 100644 --- a/gallery_dl/text.py +++ b/gallery_dl/text.py @@ -59,8 +59,14 @@ def ensure_http_scheme(url, scheme="https://"): def root_from_url(url, scheme="https://"): """Extract scheme and domain from a URL""" if not url.startswith(("https://", "http://")): - return scheme + url[:url.index("/")] - return url[:url.index("/", 8)] + try: + return scheme + url[:url.index("/")] + except ValueError: + return scheme + url + try: + return url[:url.index("/", 8)] + except ValueError: + return url def filename_from_url(url): diff --git a/test/test_text.py b/test/test_text.py index 7ea910e4..c99729c0 100644 --- a/test/test_text.py +++ b/test/test_text.py @@ -121,12 +121,14 @@ class TestText(unittest.TestCase): def test_root_from_url(self, f=text.root_from_url): result = "https://example.org" + self.assertEqual(f("https://example.org") , result) self.assertEqual(f("https://example.org/") , result) self.assertEqual(f("https://example.org/path"), result) self.assertEqual(f("example.org/") , result) self.assertEqual(f("example.org/path/") , result) result = "http://example.org" + self.assertEqual(f("http://example.org") , result) self.assertEqual(f("http://example.org/") , result) self.assertEqual(f("http://example.org/path/"), result) self.assertEqual(f("example.org/", "http://") , result)