Skip to content

Commit 2367f4b

Browse files
committed
Update to work with latest API changes
1 parent 45c994f commit 2367f4b

File tree

1 file changed

+19
-18
lines changed

1 file changed

+19
-18
lines changed

filepreviews/__init__.py

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,17 @@
33

44
try:
55
# Python 3
6-
from urllib.parse import urlencode
76
from urllib.error import HTTPError
87
from urllib.request import urlopen, Request
98
except ImportError:
109
# Python 2
11-
from urllib import urlencode
1210
from urllib2 import Request, urlopen, HTTPError
1311

1412

15-
__version__ = '1.0.7'
13+
__version__ = '1.1.0'
1614
VERSION = __version__
1715

18-
API_URL = 'https://api.filepreviews.io/v1'
16+
API_URL = 'https://api.filepreviews.io/v1/'
1917

2018
logger = logging.getLogger('filepreviews')
2119

@@ -34,14 +32,8 @@ def __init__(self, *args, **kwargs):
3432
def generate(self, url, **kwargs):
3533
logger.debug('Generating preview for {}'.format(url))
3634

37-
request_url = self._generate_request_url(url, **kwargs)
38-
3935
try:
40-
request = Request(request_url)
41-
42-
if self.api_key:
43-
request.add_header('X-API-Key', self.api_key)
44-
36+
request = self._generate_request(url, **kwargs)
4537
response = urlopen(request)
4638
data = self._get_json_response(response)
4739
except HTTPError as response:
@@ -52,16 +44,14 @@ def generate(self, url, **kwargs):
5244
'preview_url': data['preview_url']
5345
}
5446

55-
def _generate_request_url(self, url, **kwargs):
47+
def _generate_request(self, url, **kwargs):
5648
metadata = set(kwargs.pop('metadata', []))
5749
size = kwargs.pop('size', None)
5850
params = {
59-
'url': url
51+
'url': url,
52+
'metadata': list(metadata)
6053
}
6154

62-
if metadata:
63-
params['metadata'] = ','.join(metadata)
64-
6555
if size:
6656
width = size.get('width')
6757
height = size.get('height')
@@ -73,11 +63,22 @@ def _generate_request_url(self, url, **kwargs):
7363
if height:
7464
geometry = '{}x{}'.format(geometry, height)
7565

76-
params['size'] = geometry
66+
params['sizes'] = [geometry]
7767

7868
params.update(kwargs)
7969

80-
return '{}/?{}'.format(self.api_url, urlencode(params))
70+
headers = {
71+
'Content-Type': 'application/json',
72+
}
73+
74+
data = json.dumps(params).encode('utf-8')
75+
76+
request = Request(self.api_url, data, headers)
77+
78+
if self.api_key:
79+
request.add_header('X-API-Key', self.api_key)
80+
81+
return request
8182

8283
def _poll_metadata(self, metadata_url, **kwargs):
8384
logger.debug('Polling {}'.format(metadata_url))

0 commit comments

Comments
 (0)