From 41249f3eadae3d38d0c8551db0c14d5670f2bd2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Wed, 5 Sep 2018 18:17:16 +0200 Subject: [PATCH] improve extractor.get_downloader() --- gallery_dl/job.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/gallery_dl/job.py b/gallery_dl/job.py index 714cfe4c..f8fbe096 100644 --- a/gallery_dl/job.py +++ b/gallery_dl/job.py @@ -267,15 +267,16 @@ class DownloadJob(Job): def get_downloader(self, url): """Return, and possibly construct, a downloader suitable for 'url'""" - pos = url.find(":") - scheme = url[:pos] if pos != -1 else "http" + scheme = url.partition(":")[0] if scheme == "https": scheme = "http" - instance = self.downloaders.get(scheme) - if instance is None: - klass = downloader.find(scheme) - instance = klass(self.extractor.session, self.out) - self.downloaders[scheme] = instance + try: + return self.downloaders[scheme] + except KeyError: + pass + klass = downloader.find(scheme) + instance = klass(self.extractor.session, self.out) + self.downloaders[scheme] = instance return instance