-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathbossfacts_bot.py
105 lines (86 loc) · 3.2 KB
/
bossfacts_bot.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
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# -*- coding: utf-8 -*-
import json
import requests
import time
import urllib
import random
TOKEN = ""
URL = "https://api.telegram.org/bot{}/".format(TOKEN)
bot_name = "@bossfacts_bot" # Bot will only respond to messages containing this
RESPONSES = ['Eso es fácil no?',
'Eso está hecho ya',
'Eso es copy paste',
'En un sprint está hecho, no?',
'Los de Cloud Services lo tienen ya hecho, es adaptarlo',
'Mira a ver si respira',
'Dale un ping',
'Pero se va dejando?',
'Estamos en periodo friends and family',
'Openshit',
'Posgret',
'Son primos hermanos',
'Al final, no deja de ser...',
'Hay que publicar en yammer',
'Nos tenemos que dejar ver',
'Olvidate de eso, ahora estamos con...',
'Nos ha salido un portalillo nuevo',
'No parece muy complicado eso,¿no?',
'Arturo que no, que eso no es así']
def get_url(url):
response = requests.get(url)
content = response.content.decode("utf8")
return content
def get_json_from_url(url):
content = get_url(url)
js = json.loads(content)
return js
def get_updates(offset=None):
url = URL + "getUpdates"
if offset:
url += "?offset={}".format(offset)
js = get_json_from_url(url)
return js
def get_last_update_id(updates):
update_ids = []
for update in updates["result"]:
update_ids.append(int(update["update_id"]))
return max(update_ids)
def echo_all(updates):
for update in updates["result"]:
print update
if "text" in update["message"]:
text = update["message"]["text"]
chat = update["message"]["chat"]["id"]
send_message(text, chat)
def get_last_chat_id_and_text(updates):
num_updates = len(updates["result"])
last_update = num_updates - 1
text = updates["result"][last_update]["message"]["text"]
chat_id = updates["result"][last_update]["message"]["chat"]["id"]
return (text, chat_id)
def send_message(text, chat_id, reply_to=None):
text = urllib.quote_plus(text)
url = URL + "sendMessage?text={}&chat_id={}&reply_to_message_id={}".format(text, chat_id, reply_to)
get_url(url)
def main():
last_update_id = None
while True:
updates = get_updates(last_update_id)
if len(updates["result"]) > 0:
last_update_id = get_last_update_id(updates) + 1
#echo_all(updates)
for update in updates["result"]:
print update
if "message" in update and "text" in update["message"] and bot_name in update["message"]["text"]:
original_message = update["message"]["message_id"]
text = update["message"]["text"]
text = random.choice(RESPONSES)
chat = update["message"]["chat"]["id"]
print "text:"
print text
print " chat:"
print chat
send_message(text, chat, original_message)
time.sleep(0.5)
if __name__ == '__main__':
main()