Make a single request to get the foscam camera image
This uses the `snapPicture2` command, which is documented in their cgi sdk to return raw jpeg data instead of html containing the imagepull/598/head
parent
0c97280479
commit
137cadb59c
|
@ -40,7 +40,7 @@ class FoscamCamera(Camera):
|
||||||
self._username = device_info.get('username')
|
self._username = device_info.get('username')
|
||||||
self._password = device_info.get('password')
|
self._password = device_info.get('password')
|
||||||
self._snap_picture_url = self._base_url \
|
self._snap_picture_url = self._base_url \
|
||||||
+ 'cgi-bin/CGIProxy.fcgi?cmd=snapPicture&usr=' \
|
+ 'cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=' \
|
||||||
+ self._username + '&pwd=' + self._password
|
+ self._username + '&pwd=' + self._password
|
||||||
self._name = device_info.get('name', 'Foscam Camera')
|
self._name = device_info.get('name', 'Foscam Camera')
|
||||||
|
|
||||||
|
@ -50,17 +50,9 @@ class FoscamCamera(Camera):
|
||||||
def camera_image(self):
|
def camera_image(self):
|
||||||
""" Return a still image reponse from the camera. """
|
""" Return a still image reponse from the camera. """
|
||||||
|
|
||||||
# send the request to snap a picture
|
# Send the request to snap a picture and return raw jpg data
|
||||||
response = requests.get(self._snap_picture_url)
|
response = requests.get(self._snap_picture_url)
|
||||||
|
|
||||||
# parse the response to find the image file name
|
|
||||||
|
|
||||||
pattern = re.compile('src="[.][.]/(.*[.]jpg)"')
|
|
||||||
filename = pattern.search(response.content.decode("utf-8")).group(1)
|
|
||||||
|
|
||||||
# send request for the image
|
|
||||||
response = requests.get(self._base_url + filename)
|
|
||||||
|
|
||||||
return response.content
|
return response.content
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|
Loading…
Reference in New Issue