-
Notifications
You must be signed in to change notification settings - Fork 0
/
api.py
37 lines (26 loc) · 784 Bytes
/
api.py
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
import requests
import json
import sys
import datetime
if len(sys.argv) != 4:
sys.exit("Not enough args supplied")
else:
hostname = sys.argv[1]
username = sys.argv[2]
password = sys.argv[3]
session = requests.session()
session.auth = (username, password)
base_url = f"http://{hostname}"
download_url = base_url + "/api/v2.0/core/download"
payload = json.dumps({
"method": "config.save",
"args": [],
"filename": f"{hostname}.db",
"buffered": False
})
response = session.post(download_url, data=payload)
response_json = json.loads(response.text)
backup_url = base_url + response_json[1]
backup_file = session.get(backup_url)
with open(f"{hostname}-{datetime.datetime.now().strftime('%I_%p_%d_%m_%Y')}.db", 'wb') as file:
file.write(backup_file.content)