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
......@@ -4,7 +4,8 @@ from werkzeug.datastructures import FileStorage
from process import Process
from python_arptable import get_arp_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__)
......@@ -25,6 +26,8 @@ prefix_lenght = 16
operation_timer = 86400
# conección a base de datos
process = Process("messages.db")
#Cache de estado de telefonos
TelState = StatePhoneWs()
@app.route('/')
def main():
......@@ -38,6 +41,14 @@ def key():
f.close()
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)
# Pide guardar en base de datos una preinstancia del mensaje
@app.route('/data', methods = ['POST'])
......
......@@ -6,7 +6,7 @@ from email.mime.image import MIMEImage
from email.mime.audio import MIMEAudio
from email.mime.application import MIMEApplication
from ValidacionTelefonos import ValidacionTelefonosArgentinos, ValidacionCorreo
import requests, json, os, smtplib
import requests, json, os, smtplib, config
class ServiceBase(ABC):
......@@ -30,16 +30,16 @@ class Wpp1(ServiceBase):
Allowed = [Datatypes.text, Datatypes.image, Datatypes.document, Datatypes.link]
Parameters = ["origin"]
URL = "https://www.waboxapp.com/api/send/"
URL = config.WS_URL
URLmode = {
Datatypes.text : 'chat',
Datatypes.image : 'image',
Datatypes.document : 'media',
Datatypes.link : 'link'
}
token = "fd378337aebead91c2eb25209aa51a7d5ce9754ea1718"
uid = "5493412641022"
server = "https://archivos.hgtsa.com.ar/"
token = config.WS_token
uid = config.WS_uid
server = config.FILE_server
def send(self,data):
tel = data["dest"]
......@@ -106,12 +106,9 @@ class Mail(ServiceBase):
Parameters = ["origin", "subject", "smtp"]
def __init__(self):
#self.__username = "prueba@anacsoft.com"
#self.__password = "prueba2019"
#self.s = smtplib.SMTP(host = "mail.anacsoft.com", port = 26)
self.__username = "anac.avisos@gmail.com"
self.__password = "xvc7733455"
self.s = smtplib.SMTP(host = "smtp.gmail.com", port = 587)
self.__username = config.SMTP_username
self.__password = config.SMTP_password
self.s = smtplib.SMTP(host = config.SMTP_HOST, port = config.SMTP_PORT)
self.s.starttls()
self.s.login(self.__username,self.__password)
......@@ -169,7 +166,9 @@ class Mail(ServiceBase):
dg.starttls()
dg.login(Serversmtp["username"],Serversmtp["password"])
#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):
mode = None
......@@ -215,7 +214,7 @@ class Mail(ServiceBase):
class SMS(ServiceBase):
Allowed = [Datatypes.text]
URL = "http://192.168.15.120:8080/v1/sms/send/"
URL = config.SMS_URL
def send(self,data):
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!