Commit 42814911 by Juan

Se agrega la ruta /state para chequear la conexion de los telefonos clientes

1 parent dc522315
import requests, json, config, datetime
class StatePhoneWs():
"""Esta clase consulta el estado de los telefonos y los cachea
la consulta tiene 30 segundos de valides, para mejorar la perfrmance"""
def __init__(self):
self.Consultas = {}#{telefono:{"hora": datetime.datetime.now, "estado": self.chequear_stado_WB(telefono)},}
def chequear_stado_WB(self, telefono):
if not len(telefono) == 13:
return({'error': 'Mal cargado el numero de telefono'})
consulta = """{}{}?token={}""".format(config.WS_Status,
telefono, config.WS_token)
r = requests.get(consulta)
j = r.json()
return(j)
def ChequearTelefono(self, telefono):
"""Chequea estado es el server remoto si esta conectado se almasena la
respuesta en cache durante 30 segundos para mejorar performance y si no esta
disponible no se almasena y la proxima respuesta debera hacerse contra el server
remoto para asegurarme de q se solucione el problema"""
test = self.revisarCache(telefono)
if not test == False:
return(test)
W = self.chequear_stado_WB(telefono)
if "error" in W.keys():#si hay algun error no actualiso el estado en cache
return(W)
hora = datetime.datetime.now() + datetime.timedelta(seconds=30)
self.Consultas[telefono] = {"hora": hora,
"estado": W}
return(W)
def revisarCache(self, telefono):
if not telefono in self.Consultas.keys():
return(False)
cel = self.Consultas[telefono]
if datetime.datetime.now() < cel["hora"]:
return(cel["estado"])
return(False)
WS_URL = "https://www.waboxapp.com/api/send/"
WS_Status = " https://www.waboxapp.com/api/status/"
WS_token = "fd378337aebead91c2eb25209aa51a7d5ce9754ea1718"
WS_uid = "5493412641022"
FILE_server = "https://archivos.hgtsa.com.ar/"
SMTP_username = "anac.avisos@gmail.com"
SMTP_password = "xvc7733455"
SMTP_HOST = "smtp.gmail.com"
SMTP_PORT = 587
SMS_URL = "http://192.168.15.120:8080/v1/sms/send/"
\ No newline at end of file \ No newline at end of file
...@@ -4,7 +4,8 @@ from werkzeug.datastructures import FileStorage ...@@ -4,7 +4,8 @@ from werkzeug.datastructures import FileStorage
from process import Process from process import Process
from python_arptable import get_arp_table from python_arptable import get_arp_table
from enums import States, Table from enums import States, Table
import os, ipdb, time, threading, random, datetime from Wpp1State import StatePhoneWs
import os, ipdb, time, threading, random, datetime, config
app = Flask(__name__) app = Flask(__name__)
...@@ -25,6 +26,8 @@ prefix_lenght = 16 ...@@ -25,6 +26,8 @@ prefix_lenght = 16
operation_timer = 86400 operation_timer = 86400
# conección a base de datos # conección a base de datos
process = Process("messages.db") process = Process("messages.db")
#Cache de estado de telefonos
TelState = StatePhoneWs()
@app.route('/') @app.route('/')
def main(): def main():
...@@ -38,6 +41,14 @@ def key(): ...@@ -38,6 +41,14 @@ def key():
f.close() f.close()
return key return key
@app.route("/state/<tel>", methods = ['GET'])
def estadoWabox(tel):
if tel == "default":
xi = TelState.ChequearTelefono(config.WS_uid)
else:
xi = TelState.ChequearTelefono(tel)
return(xi)
# Guarda archivos del emisor en una nueva carpeta (desencriptados) # Guarda archivos del emisor en una nueva carpeta (desencriptados)
# Pide guardar en base de datos una preinstancia del mensaje # Pide guardar en base de datos una preinstancia del mensaje
@app.route('/data', methods = ['POST']) @app.route('/data', methods = ['POST'])
......
...@@ -6,7 +6,7 @@ from email.mime.image import MIMEImage ...@@ -6,7 +6,7 @@ from email.mime.image import MIMEImage
from email.mime.audio import MIMEAudio from email.mime.audio import MIMEAudio
from email.mime.application import MIMEApplication from email.mime.application import MIMEApplication
from ValidacionTelefonos import ValidacionTelefonosArgentinos, ValidacionCorreo from ValidacionTelefonos import ValidacionTelefonosArgentinos, ValidacionCorreo
import requests, json, os, smtplib import requests, json, os, smtplib, config
class ServiceBase(ABC): class ServiceBase(ABC):
...@@ -30,16 +30,16 @@ class Wpp1(ServiceBase): ...@@ -30,16 +30,16 @@ class Wpp1(ServiceBase):
Allowed = [Datatypes.text, Datatypes.image, Datatypes.document, Datatypes.link] Allowed = [Datatypes.text, Datatypes.image, Datatypes.document, Datatypes.link]
Parameters = ["origin"] Parameters = ["origin"]
URL = "https://www.waboxapp.com/api/send/" URL = config.WS_URL
URLmode = { URLmode = {
Datatypes.text : 'chat', Datatypes.text : 'chat',
Datatypes.image : 'image', Datatypes.image : 'image',
Datatypes.document : 'media', Datatypes.document : 'media',
Datatypes.link : 'link' Datatypes.link : 'link'
} }
token = "fd378337aebead91c2eb25209aa51a7d5ce9754ea1718" token = config.WS_token
uid = "5493412641022" uid = config.WS_uid
server = "https://archivos.hgtsa.com.ar/" server = config.FILE_server
def send(self,data): def send(self,data):
tel = data["dest"] tel = data["dest"]
...@@ -106,12 +106,9 @@ class Mail(ServiceBase): ...@@ -106,12 +106,9 @@ class Mail(ServiceBase):
Parameters = ["origin", "subject", "smtp"] Parameters = ["origin", "subject", "smtp"]
def __init__(self): def __init__(self):
#self.__username = "prueba@anacsoft.com" self.__username = config.SMTP_username
#self.__password = "prueba2019" self.__password = config.SMTP_password
#self.s = smtplib.SMTP(host = "mail.anacsoft.com", port = 26) self.s = smtplib.SMTP(host = config.SMTP_HOST, port = config.SMTP_PORT)
self.__username = "anac.avisos@gmail.com"
self.__password = "xvc7733455"
self.s = smtplib.SMTP(host = "smtp.gmail.com", port = 587)
self.s.starttls() self.s.starttls()
self.s.login(self.__username,self.__password) self.s.login(self.__username,self.__password)
...@@ -169,7 +166,9 @@ class Mail(ServiceBase): ...@@ -169,7 +166,9 @@ class Mail(ServiceBase):
dg.starttls() dg.starttls()
dg.login(Serversmtp["username"],Serversmtp["password"]) dg.login(Serversmtp["username"],Serversmtp["password"])
#import ipdb; ipdb.set_trace() #import ipdb; ipdb.set_trace()
dg.send_message(msg) n = dg.send_message(msg)#revisa esto no se q devuelve
return(n)
def MIMEmode(self,name,path,datatype): def MIMEmode(self,name,path,datatype):
mode = None mode = None
...@@ -215,7 +214,7 @@ class Mail(ServiceBase): ...@@ -215,7 +214,7 @@ class Mail(ServiceBase):
class SMS(ServiceBase): class SMS(ServiceBase):
Allowed = [Datatypes.text] Allowed = [Datatypes.text]
URL = "http://192.168.15.120:8080/v1/sms/send/" URL = config.SMS_URL
def send(self,data): def send(self,data):
types = json.loads(data[Table.type]) types = json.loads(data[Table.type])
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!