Skip to content

Commit 259110a

Browse files
author
agrandiere
committed
added binary upload
1 parent 252b557 commit 259110a

File tree

2 files changed

+26
-11
lines changed

2 files changed

+26
-11
lines changed

sightengine/check.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"""
2121

2222
import requests, json, os
23+
from io import BytesIO
2324

2425
VERSION = None
2526
path_version = os.path.join(os.path.dirname(__file__), '../version.py')
@@ -41,7 +42,6 @@ def __init__(self, api_user, api_secret, *args):
4142

4243
if len(args) > 1:
4344
for arg in args:
44-
print(arg)
4545
self.modelsType += arg + ','
4646
self.modelsType = self.modelsType[:-1]
4747
else:
@@ -51,21 +51,25 @@ def image(self, image):
5151
numberOfModels = self.modelsType.count(",")
5252

5353
if numberOfModels > 0:
54-
if image.lower().startswith(('http://', 'https://')):
55-
url = self.endpoint + '1.0/check.json'
54+
url = self.endpoint + '1.0/check.json'
55+
56+
if isinstance(image, bytes):
57+
r = requests.post(url, files={'media': BytesIO(image)}, data={'models': self.modelsType,'api_user': self.api_user, 'api_secret': self.api_secret}, headers=headers)
58+
elif image.lower().startswith(('http://', 'https://')):
5659
r = requests.get(url, params={'models': self.modelsType, 'url': image, 'api_user': self.api_user, 'api_secret': self.api_secret}, headers=headers)
5760
else:
58-
url = self.endpoint + '1.0/check.json'
5961
r = requests.post(url, files={'media': open(image, 'rb')}, data={'models': self.modelsType,'api_user': self.api_user, 'api_secret': self.api_secret}, headers=headers)
6062

6163
output = json.loads(r.text)
6264
return output
6365
else:
64-
if image.lower().startswith(('http://', 'https://')):
65-
url = self.endpoint + '1.0' + '/' + self.modelsType + '.json'
66+
url = self.endpoint + '1.0' + '/' + self.modelsType + '.json'
67+
68+
if isinstance(image, bytes):
69+
r = requests.post(url, files={'media': BytesIO(image)}, data={'api_user': self.api_user,'api_secret': self.api_secret}, headers=headers)
70+
elif image.lower().startswith(('http://', 'https://')):
6671
r = requests.get(url, params={'url': image, 'api_user': self.api_user, 'api_secret': self.api_secret}, headers=headers)
6772
else:
68-
url = self.endpoint + '1.0' + '/' + self.modelsType + '.json'
6973
r = requests.post(url, files={'media': open(image, 'rb')}, data={'api_user': self.api_user,'api_secret': self.api_secret}, headers=headers)
7074

7175
output = json.loads(r.text)

tests.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,30 @@ def test_nudityModel(self):
1414
output2 = checkNudity.image(image)
1515
self.assertEqual('success', output2['status'])
1616

17+
with open(image, mode='rb') as img:
18+
imageContent = img.read()
19+
20+
output3 = checkNudity.image(imageContent)
21+
self.assertEqual('success', output3['status'])
22+
1723
def test_allModel(self):
1824
client = SightengineClient('1234', 'test')
25+
checkAll = client.check('nudity','wad','properties','type','face','celebrities')
1926

20-
checkNudity = client.check('nudity','wad','properties','type','face','celebrities')
21-
22-
output = checkNudity.image('https://sightengine.com/assets/img/examples/example5.jpg')
27+
output = checkAll.image('https://sightengine.com/assets/img/examples/example5.jpg')
2328
self.assertEqual('success', output['status'])
2429

2530
image = os.path.join(os.path.dirname(__file__), 'assets', 'image.jpg')
2631

27-
output2 = checkNudity.image(image)
32+
output2 = checkAll.image(image)
2833
self.assertEqual('success', output2['status'])
2934

35+
with open(image, mode='rb') as img:
36+
imageContent = img.read()
37+
38+
output3 = checkAll.image(imageContent)
39+
self.assertEqual('success', output3['status'])
40+
3041
def test_feedback(self):
3142
client = SightengineClient('1234', 'test')
3243

0 commit comments

Comments
 (0)