-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patheen.py
More file actions
46 lines (36 loc) · 1.43 KB
/
een.py
File metadata and controls
46 lines (36 loc) · 1.43 KB
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import urllib.parse
import requests
import pprint
import sys
HOST = "login.eagleeyenetworks.com"
#TODO: Handle exceptions etc
def login(username, password, realm="eagleeyenetworks"):
url = "https://%s/g/aaa/authenticate" % HOST
body = "username=%s&password=%s&realm=%s" % (username, password, realm)
resp = requests.post(url, data=body)
resp = resp.json()
if 'token' not in resp:
raise Exception("Token not defined")
#authorize
token = resp['token']
url = "https://%s/g/aaa/authorize" % HOST
resp = requests.post(url, data=urllib.parse.urlencode(resp))
user = resp.json()
return EENContext(user, token, resp.cookies)
def timestamp(ts):
#TODO: Check if we are datetime
return ts
class EENContext:
def __init__(self, user, token, cookies):
self._token = token
self._user = user
self._cookies = cookies
def image_list(self, esn, count, asset_type="preview", time="now"):
#TODO: be able to transform time from a python datetime to een
req = requests.get("https://%s/asset/list/image.jpeg?c=%s;t=%s;a=%s;count=%d" % (HOST, esn, time, asset_type, count), cookies=self._cookies)
return req.json()
def fetch_image(self, esn, time, quality="med", asset_type="preview"):
req = requests.get("https://%s/asset/asset/image.jpeg?c=%s;t=%s;a=%s;q=%s" % (HOST, esn, time, asset_type, quality), cookies=self._cookies)
return req.content
def logout(self):
requests.get("https://%s/g/aaa/logout" % HOST, cookies=self._cookies)