aboutsummaryrefslogtreecommitdiff
path: root/importer/providers/raw_image_base.py
blob: 89ecfcab30e3e8426a0edffe93a8451724562c31 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import os
import shutil
from urllib.parse import urlparse

import requests

from importer.providers.providerbase import ProviderBase


class RawImageProviderBase(ProviderBase):
    regex = "^.*.(jpg|jpeg|mp4|gif)$"

    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