Skip to content

Commit 20f08bb

Browse files
committed
streamline image hosting
1 parent e68fe57 commit 20f08bb

4 files changed

Lines changed: 25 additions & 17 deletions

File tree

pythonbits/bb.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ def _render_screenshots(self):
304304
return ffmpeg.take_screenshots(ns)
305305

306306
def _finalize_screenshots(self):
307-
return imagehosting.upload_files(*self['screenshots'])
307+
return imagehosting.upload(*self['screenshots'])
308308

309309
def _render_mediainfo(self):
310310
try:
@@ -530,7 +530,7 @@ def _render_cover(self):
530530
return self['summary']['cover']
531531

532532
def _finalize_cover(self):
533-
return imagehosting.upload_urls(self['cover'])
533+
return imagehosting.upload(self['cover'])
534534

535535

536536
class TvSubmission(VideoSubmission):

pythonbits/imagehosting.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,19 @@
1010
ask=True)
1111

1212

13-
def upload_files(*images):
13+
def get_provider():
1414
provider = config.get('ImageHosting', 'provider')
1515
if provider.lower() == 'imgur':
16-
return ImgurUploader().upload(*images)
16+
return ImgurUploader
1717
elif provider.lower() == 'ptpimg':
18-
return PtpImgUploader().upload_files(*images)
18+
return PtpImgUploader
19+
raise Exception('Unknown image hosting provider in config {}'.format(
20+
config.config_path
21+
))
1922

2023

21-
def upload_urls(*images):
22-
provider = config.get('ImageHosting', 'provider')
23-
if provider.lower() == 'imgur':
24-
return ImgurUploader().upload(*images)
25-
elif provider.lower() == 'ptpimg':
26-
return PtpImgUploader().upload_urls(*images)
24+
def upload(*images, provider=None):
25+
if not provider:
26+
provider = get_provider()
27+
uploader = provider()
28+
return list(uploader.upload(*images))

pythonbits/imgur.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ def __init__(self):
7676

7777
def upload(self, *images):
7878
self.imgur_auth.prepare()
79-
links = []
8079
for image in images:
8180
params = {'headers': self.imgur_auth.get_auth_headers()}
8281

@@ -99,8 +98,4 @@ def upload(self, *images):
9998
extensions[0], extensions[1])
10099

101100
log.notice("Image URL: {}", link)
102-
if len(images) == 1:
103-
return link
104-
else:
105-
links.append(link)
106-
return links
101+
yield link

pythonbits/ptpimg.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import os
1414
from io import BytesIO
1515
from textwrap import dedent
16+
from urllib.parse import urlparse
1617

1718
import requests
1819

@@ -122,6 +123,16 @@ def upload_urls(self, *urls):
122123

123124
return self._perform(files=files)
124125

126+
def upload(self, *images):
127+
for image in images:
128+
if urlparse(image).scheme in ('http', 'https'):
129+
yield self.upload_urls(image)
130+
elif urlparse(image).scheme in ('file', ''):
131+
yield self.upload_files(image)
132+
else:
133+
raise Exception('Unknown image URI scheme '
134+
'{}'.format(urlparse(image).scheme))
135+
125136

126137
def _partition(files_or_urls):
127138
files, urls = [], []

0 commit comments

Comments
 (0)