Commit 4b0a02e6 by juan

Se agrega confirmacion de estado

1 parent 9f93efeb
...@@ -18,3 +18,6 @@ WsClientesBrowser = { ...@@ -18,3 +18,6 @@ WsClientesBrowser = {
5493412671594:"http://192.168.15.246:13434/" 5493412671594:"http://192.168.15.246:13434/"
} }
resp_defect_int = {'success': True, 'uid': WS_uid, 'hook_url': None, 'alias': 'HGT SA Notificaciones', 'platform': 'android', 'battery': None, 'plugged': None, 'locale': '-'} resp_defect_int = {'success': True, 'uid': WS_uid, 'hook_url': None, 'alias': 'HGT SA Notificaciones', 'platform': 'android', 'battery': None, 'plugged': None, 'locale': '-'}
SESSION_MONGODB_DB = "sms_mail_server"
SESSION_MONGODB_COLLECT = "estados_msj"
MONGO_URI = "mongodb://localhost:27017/"
\ No newline at end of file \ No newline at end of file
...@@ -90,6 +90,7 @@ class DBconnection: ...@@ -90,6 +90,7 @@ class DBconnection:
def check(self,information): def check(self,information):
valid = True valid = True
for column in information: for column in information:
#print(column)
# columna no existe en la tabla # columna no existe en la tabla
if not Table.validate(column): if not Table.validate(column):
......
...@@ -6,6 +6,7 @@ from python_arptable import get_arp_table ...@@ -6,6 +6,7 @@ from python_arptable import get_arp_table
from enums import States, Table from enums import States, Table
from Wpp1State import StatePhoneWs, StateMail, AndroidStatus from Wpp1State import StatePhoneWs, StateMail, AndroidStatus
import os, ipdb, time, threading, random, datetime, config import os, ipdb, time, threading, random, datetime, config
import mongo_db
app = Flask(__name__) app = Flask(__name__)
...@@ -68,6 +69,12 @@ def estadoSMS(): ...@@ -68,6 +69,12 @@ def estadoSMS():
print(test) print(test)
return(jsonify(test)) return(jsonify(test))
@app.route("/status/<Id>", methods = ['GET','POST'])
def estadoGeneral(Id):
Id = str(Id)
rta = mongo_db.obtener_estado(Id)
return jsonify({"estado":rta})
# 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'])
...@@ -98,9 +105,13 @@ def data(): ...@@ -98,9 +105,13 @@ def data():
#if key: #if key:
# os.remove(path + "rand.key") # os.remove(path + "rand.key")
return str(process.datastore( devolucion = process.datastore(
random.randrange(minid,maxid), random.randrange(minid,maxid),
path)) path)
#print(devolucion)
#for msj_id in devolucion:
mongo_db.crear(devolucion)
return str(devolucion)
# Devuelve un string al azar entre [0-9,a-z,A-Z] # Devuelve un string al azar entre [0-9,a-z,A-Z]
def newprefix(): def newprefix():
...@@ -131,6 +142,7 @@ def msg(): ...@@ -131,6 +142,7 @@ def msg():
} }
#if request.values.get('ws_chrome_server'): #if request.values.get('ws_chrome_server'):
state = process.paramstore(query) state = process.paramstore(query)
print(state)
return state return state
# Consulta el estado de un mensaje dado su id # Consulta el estado de un mensaje dado su id
......
from pymongo import MongoClient
from config import *
# Conectar a la base de datos MongoDB
client = MongoClient(MONGO_URI) # Reemplaza con tu cadena de conexión
db = client[SESSION_MONGODB_DB]
collection = db[SESSION_MONGODB_COLLECT]
def crear(id_mensaje):
# Crear un documento con el estado "En cola"
if type(id_mensaje) != int:
return None
id_mensaje = str(id_mensaje)
nuevo_documento = {
"_id": id_mensaje,
"estado": "En cola"
}
try:
collection.insert_one(nuevo_documento)
print(f"Mensaje con id {id_mensaje} creado con estado 'En cola'.")
except Exception as e:
print(f"Error al crear el mensaje: {e}")
def editar(id_mensaje, nuevo_estado):
# Editar el estado del documento con el id_mensaje dado
try:
resultado = collection.update_one({"_id": str(id_mensaje)}, {"$set": {"estado": nuevo_estado}})
if resultado.matched_count:
print(f"Mensaje con id {id_mensaje} actualizado a estado '{nuevo_estado}'.")
else:
print(f"No se encontró ningún mensaje con id {id_mensaje}.")
except Exception as e:
print(f"Error al editar el mensaje: {e}")
def obtener_estado(id_mensaje):
# Obtener el estado del documento con el id_mensaje dado
try:
documento = collection.find_one({"_id": str(id_mensaje)})
if documento:
return documento["estado"]
else:
print(f"No se encontró ningún mensaje con id {id_mensaje}.")
return None
except Exception as e:
print(f"Error al obtener el estado del mensaje: {e}")
return None
# Ejemplo de uso
crear("mensaje1")
print(obtener_estado("mensaje1"))
editar("mensaje1", "Procesado")
print(obtener_estado("mensaje1"))
...@@ -24,6 +24,7 @@ class Process: ...@@ -24,6 +24,7 @@ class Process:
# Guarda los parámetros # Guarda los parámetros
def paramstore(self,query): def paramstore(self,query):
#print(Table)
row = self.lookup(query[Table.id]) row = self.lookup(query[Table.id])
# id no existe # id no existe
if type(row) == str: if type(row) == str:
...@@ -110,6 +111,7 @@ class Process: ...@@ -110,6 +111,7 @@ class Process:
def lookup(self,id): def lookup(self,id):
rows = self.conn.query("SELECT * FROM msg WHERE id = ?",(id,)) rows = self.conn.query("SELECT * FROM msg WHERE id = ?",(id,))
#print(rows)
if rows == []: if rows == []:
return "El id " + str(id) + " no existe" return "El id " + str(id) + " no existe"
......
...@@ -8,6 +8,7 @@ from email.mime.application import MIMEApplication ...@@ -8,6 +8,7 @@ from email.mime.application import MIMEApplication
from ValidacionTelefonos import ValidacionTelefonosArgentinos, ValidacionCorreo from ValidacionTelefonos import ValidacionTelefonosArgentinos, ValidacionCorreo
import requests, json, os, smtplib, config, base64 import requests, json, os, smtplib, config, base64
import SmsGateway24 as Sms import SmsGateway24 as Sms
import mongo_db
import re import re
...@@ -71,7 +72,8 @@ class Wpp1(ServiceBase): ...@@ -71,7 +72,8 @@ class Wpp1(ServiceBase):
return(n) return(n)
def _send(self,data,stadotel): def _send(self,data,stadotel):
print(data) #print(data)
ID_Consulta = data["id"]
types = json.loads(data[Table.type]) types = json.loads(data[Table.type])
try: try:
origen = json.loads(data["info"])["origin"] origen = json.loads(data["info"])["origin"]
...@@ -100,8 +102,11 @@ class Wpp1(ServiceBase): ...@@ -100,8 +102,11 @@ class Wpp1(ServiceBase):
path = requests.post(url = Wpp1.server, files = { 'data' : (file,open(filepath,'rb')) }) path = requests.post(url = Wpp1.server, files = { 'data' : (file,open(filepath,'rb')) })
result = requests.get(url = Wpp1.URL + Wpp1.URLmode[types[file]],params = {'token':Wpp1.token,'uid':origen,'to':data[Table.dest],'url':Wpp1.server + path.text}) result = requests.get(url = Wpp1.URL + Wpp1.URLmode[types[file]],params = {'token':Wpp1.token,'uid':origen,'to':data[Table.dest],'url':Wpp1.server + path.text})
succ[file] = result.json()['success'] succ[file] = result.json()['success']
mongo_db.editar(ID_Consulta, "Enviado")
except Exception as E: except Exception as E:
print(f"ROMPIO ALGO EN EL ENVIO: {E}") Mensaje = str(f"ROMPIO ALGO EN EL ENVIO: {E}")
mongo_db.editar(ID_Consulta, Mensaje)
print(Mensaje)
succ[file] = False succ[file] = False
return succ return succ
...@@ -162,6 +167,8 @@ class Mail(ServiceBase): ...@@ -162,6 +167,8 @@ class Mail(ServiceBase):
def _sendClasico(self,data,stadomail): def _sendClasico(self,data,stadomail):
types = json.loads(data[Table.type]) types = json.loads(data[Table.type])
info = json.loads(data[Table.info]) info = json.loads(data[Table.info])
#print("166",data)
ID_Consulta = data["id"]
self.TextoaEnviar = "" self.TextoaEnviar = ""
msg = MIMEMultipart() msg = MIMEMultipart()
Cr = ValidacionCorreo() Cr = ValidacionCorreo()
...@@ -170,7 +177,7 @@ class Mail(ServiceBase): ...@@ -170,7 +177,7 @@ class Mail(ServiceBase):
#print(destino) #print(destino)
msg['Subject'] = info['subject'] msg['Subject'] = info['subject']
msg["To"] = filtrar_no_ascii(Cr.ValidarCorreo(destino)) msg["To"] = filtrar_no_ascii(Cr.ValidarCorreo(destino))
print("destino",msg["To"]) #print("destino",msg["To"])
succ = {} succ = {}
if msg['To'] == False: if msg['To'] == False:
print("mail no sale") print("mail no sale")
...@@ -188,15 +195,18 @@ class Mail(ServiceBase): ...@@ -188,15 +195,18 @@ class Mail(ServiceBase):
#for destino in msg['To'].split(","): #for destino in msg['To'].split(","):
# Msg = msg.copy() # Msg = msg.copy()
# Msg["To"] = Cr.ValidarCorreo(destino) # Msg["To"] = Cr.ValidarCorreo(destino)
print(info) print("info",info)
self.Envio(msg,info,stadomail) self.Envio(msg,info,stadomail)
#self.Envio(msg,info,stadomail) #self.Envio(msg,info,stadomail)
mongo_db.editar(ID_Consulta, "Enviado")
else: else:
succ[file] = False succ[file] = False
except Exception as E: except Exception as E:
print(f"ROMPIO ALGO EN EL ENVIO: {E}") mensaje = (f"ROMPIO ALGO EN EL ENVIO: {E}")
mongo_db.editar(ID_Consulta, mensaje)
print(mensaje)
#print("msg",msg) #print("msg",msg)
print("data",data) #print("data",data)
#tenemos q filtrar from #tenemos q filtrar from
stadomail.MailRompedor.append(msg['From']) stadomail.MailRompedor.append(msg['From'])
succ[file] = False succ[file] = False
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!