Commit fc6fcb71 authored by Jan Luc Tavares's avatar Jan Luc Tavares
Browse files

melhorada a resiliencia do bot frente a quedas de conexao

parent 173fbab9
......@@ -6,7 +6,7 @@
#
# TODO:
# * Implementar alguma estrategia para que nao se realize tantos downloads e que seja mais rápido.
#
# * Melhorar a forma como o programa lida com o erro "connection error", porque ele lida da mesma forma com todos os erros na função get_url, bem como com a variável "tentativas" que é usada de uma forma pouquissimo elegante.
#
#
......@@ -26,13 +26,30 @@ db = DBHelper()
TOKEN = tokensecret()
URL = "https://api.telegram.org/bot{}/".format(TOKEN)
global tentativas
tentativas = 0 # variavel que conta o numero de erros de conexao que obtivemos
def get_url(url):
'''
Envia a url para o Telegram.
'''
response = requests.get(url)
content = response.content.decode("utf8")
try:
response = requests.get(url)
content = response.content.decode("utf8")
global tentativas
tentativas =0
except:
#except ConnectionError:
if tentativas>24:
raise Exception('Nao foi possivel obter os updates depois de dois minutos de Errors')
else:
time.sleep(5)
global tentativas
tentativas = tentativas + 1
print("{} Conexões consecutivas mal sucedidas".format(tentativas))
content = "{\"ok\":true,\"result\":[]}" #mente para o bot que nada aconteceu
return content
......@@ -49,7 +66,7 @@ def get_updates(offset=None):
'''
Recebe as novas mensagens.
'''
url = URL + "getUpdates?timeout=100"
url = URL + "getUpdates?timeout=120"
if offset:
url += "&offset={}".format(offset)
js = get_json_from_url(url)
......@@ -244,7 +261,7 @@ def mes(chat_id,entrada=None):
text = "Parece que você ainda não selecionou nenhuma estação"
keyboard = build_keyboard(["/selecionar", "/ajuda"])
send_message(text,chat_id, keyboard)
difference on git
def mes2(chat_id,entrada=None):
try:
escolha = entrada.split()[2] # a 'escolha' é a terceira palavra da resposta.
......@@ -314,6 +331,7 @@ def handle_updates(updates):
def main():
next_update_id = None
db.setup()
while True:
updates = get_updates(next_update_id)
if len(updates["result"]) > 0:
......
id=32 usuário="leonardosehn" estação="EMMResidenciaHacker"
id=1 usuário="admin" estação="PezziProto"
id=2 usuário="admin" estação="CTA_Pi+RMv0.1"
id=3 usuário="admin" estação="AP-CEU"
id=4 usuário="nelsojost" estação="ADay16-RMv0.1"
id=6 usuário="hiure" estação="Sitio_do_Astronauta"
id=7 usuário="nelsojost" estação="teste_campo_bom"
id=8 usuário="Luis.f" estação="CTA_Jr_Teste"
id=17 usuário="Luis.f" estação="Estação_Setembro"
id=18 usuário="Luis.f" estação="teste2"
id=22 usuário="yatokami" estação="Teste_CTA_jr_12/16"
id=23 usuário="admin" estação="rafa-hcpa"
id=24 usuário="IgorGusmao" estação="Gilberto_DÀvila_Yag"
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment