import os import shutil from urllib.parse import urlparse import requests from importer.providers.providerbase import ProviderBase class RawImageProviderBase(ProviderBase): regex = "^.*i.(jpg|jpeg|mp4)$" def download(self): path = self._download_raw_file(self.url) self.paths.append(path) self.downloaded = True @staticmethod def _download_raw_file(url: str) -> str: a = urlparse(url) path = f'source_{os.path.basename(a.path)}' r = requests.get(url, stream=True) if r.status_code == 200: with open(path, 'wb') as f: r.raw.decode_content = True shutil.copyfileobj(r.raw, f) return path