-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathwhatools.py
More file actions
96 lines (67 loc) · 3.35 KB
/
whatools.py
File metadata and controls
96 lines (67 loc) · 3.35 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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/usr/bin/env python
import requests
import os
import time
import datetime
import calendar
# Disable the insecureplatform warning for https requests
requests.packages.urllib3.disable_warnings()
class Whatools(object):
BASE_URL = "https://api.wha.tools/v3"
def __init__(self, key):
self.key = key
def login(self):
payload = dict(key = self.key)
return requests.get(Whatools.BASE_URL + "/login", params = payload).text
def logout(self):
payload = dict(key = self.key)
return requests.get(Whatools.BASE_URL + "/logout", params = payload).text
def getIncomingMessages(self):
#specify since and until date objects as 'DD/MM/YYYY'
#since = time.mktime(datetime.datetime.strptime(since, "%d/%m/%Y").timetuple())
#until = time.mktime(datetime.datetime.strptime(until, "%d/%m/%Y").timetuple())
payload = dict(key = self.key)
return requests.get(Whatools.BASE_URL + "/message", params = payload).text
def sendMessage(self, key, to, body, honor = True):
payload = dict(key = self.key, to = to, body = body)
return requests.post(Whatools.BASE_URL + "/message", params = payload).text
def sendVcard(self, key, to, name, src, honor = True):
payload = dict(key = self.key, to = to, name = name, src = src, honor = honor)
return requests.post(whatools.BASE_URL + "/vcard", params = payload).text
def sendPicture(self, key, to, caption, attachment, honor = True):
payload = dict(key = self.key, to = to, caption = caption, honor = honor)
attachment = dict(attachment=open(attachment, "rb"))
return requests.post(Whatools.BASE_URL + "/media/picture", params = payload, files=attachment).text
def getNickname(self):
payload = dict(key = self.key)
return requests.get(Whatools.BASE_URL + "/nickname", params = payload).text
def setNickname(self, nickname):
payload = dict(key = self.key, nickname = nickname)
return requests.post(Whatools.BASE_URL + "/nickname", params = payload).text
def deleteNickname(self):
payload = dict(key = self.key, nickname = "")
return requests.post(Whatools.BASE_URL + "/nickname", params = payload).text
def getStatusMessage(self):
payload = dict(key = self.key)
return requests.get(Whatools.BASE_URL + "/status", params = payload).text
def setStatusMessage(self, message):
payload = dict(key = self.key, message = message)
return requests.post(Whatools.BASE_URL + "/status", params = payload).text
def deleteStatusMessage(self):
payload = dict(key = self.key, message = "")
return requests.post(Whatools.BASE_URL + "/status", params = payload).text
def getAvatar(self, phone):
payload = dict(key = self.key, pn = phone)
r = requests.get(Whatools.BASE_URL + "/avatar", params = payload, stream = True)
if r.status_code == 200:
if not os.path.exists("./avatars"):
os.makedirs("./avatars")
with open("./avatars/%savatar.jpg" %phone, "wb") as f:
for chunk in r:
f.write(chunk)
else:
pass
def setAvatar(self, src):
payload = dict(key = self.key)
src = dict(src=open(src, "rb"))
return requests.post(Whatools.BASE_URL + "/avatar", params = payload, files = src).text