Borrado de archivos extra

This commit is contained in:
Your Name
2024-09-10 09:36:22 -06:00
parent 9bbaeab1ef
commit 06feae543a
30 changed files with 0 additions and 853 deletions

105
main.py
View File

@@ -1,105 +0,0 @@
import sys
from pathlib import Path
from flask import Flask, request, jsonify
from waitress import serve
app = Flask(__name__)
# Agregar el directorio lib al path de Python
lib_path = Path(__file__).parent / 'lib'
sys.path.append(str(lib_path))
# Ahora puedes importar los módulos desde el directorio lib
from selenium_setup import configure_selenium
from argument_parser import parse_arguments
from web_navigation import navigate_to_url, click_element
from data_processing import process_html
from database_operations import log
from funciones import *
def main(clave, contraseña):
# Configurar Selenium y navegar a la URL
driver = configure_selenium()
url = "sgu.ulsa.edu.mx/psulsa/alumnos/consultainformacionalumnos/consultainformacion.aspx"
datos_alumno, historial_academico = navigate_to_url(driver, url, clave, contraseña)
materias_sgu, actualmente_cursadas, periodo_actual, grupo_actual = process_html(historial_academico)
insert_actualmente_cursadas(clave, actualmente_cursadas, periodo_actual, grupo_actual)
# Obtener datos de la base
periodos_base = get_periodos(materias_sgu)
# obtener la fecha mínima del arreglo de diccionarios de periodos en su campo "Periodo_fecha_inicio"
fecha_mínima = min(periodos_base, key=lambda x: x['Periodo_fecha_inicial'])['Periodo_fecha_inicial']
# déjalo en el primer día del mes
datos_alumno['fecha_ingreso'] = fecha_mínima.replace(day=1)
materias_base = get_materias(materias_sgu)
tipo_calificaciones_base = get_tipo_calificaciones(materias_sgu)
alumno_base = insert_alumno(datos_alumno)
# Actualizar servicio social
actualizar_servicio(clave, datos_alumno['servicio_social'])
#insert datos
insert_datos(datos_alumno)
calificaciones = []
no_insertadas = []
for materia_sgu in materias_sgu:
materia_base = next((materia_base for materia_base in materias_base if materia_sgu['Cve ULSA'] in materia_base['Materia_claves'] or (materia_sgu['Cve SEP'] in materia_base["Materia_claves"] and alumno_base['PlanEstudio_id'] == materia_base['PlanEstudio_id'])), None)
periodo_base = next((periodo_base for periodo_base in periodos_base if periodo_base['Periodo_shortname'] == materia_sgu['PERIODO']), None)
tipo_calificacion_base = next((calificacion_base for calificacion_base in tipo_calificaciones_base if calificacion_base['TipoCalificacion_desc_corta'] == materia_sgu['EXAMEN']), None)
if 'GRUPO' in materia_sgu.keys():
grupo = get_grupo(materia_sgu['GRUPO'], alumno_base['Carrera_id'])
else:
grupo = None
if materia_base and periodo_base and tipo_calificacion_base:
calificaciones.append(f"({clave[2:]}, {materia_base['Materia_id']}, {periodo_base['Periodo_id']}, {tipo_calificacion_base['TipoCalificacion_id']}, {materia_sgu['CALIF']}, CURRENT_DATE, 'SGU')")
if not materia_base or not periodo_base or not tipo_calificacion_base or not grupo:
no_insertadas.append(f'''Materia: {materia_base['Materia_id'] if materia_base else materia_sgu['Cve ULSA']} - Periodo_base: {periodo_base['Periodo_id'] if periodo_base else materia_sgu['PERIODO']} Tipo_calificacion_base: {tipo_calificacion_base['TipoCalificacion_id'] if tipo_calificacion_base else materia_sgu['EXAMEN']} Grupo: {grupo['Grupo_id'] if grupo else materia_sgu['GRUPO'] if 'GRUPO' in materia_sgu.keys() else 'None' } ''')
continue
insert_materia(clave, materia_base['Materia_id'], periodo_base['Periodo_id'], grupo['Grupo_id'])
if not calificaciones or len(calificaciones) == 0:
raise Exception("No hay calificaciones para insertar o actualizar.")
# Insertar calificaciones
insert_calificaciones(calificaciones)
return clave, no_insertadas
@app.route('/calificaciones', methods=['POST'])
def calificaciones():
try:
# Obtener la clave y la contraseña de la solicitud POST
clave = request.form.get('clave')
contraseña = request.form.get('contraseña')
# Verificar si la clave y la contraseña existen
if clave is None or contraseña is None:
return "Error: La clave y/o contraseña no fueron proporcionadas en la solicitud."
# Procesar los datos (aquí llamamos a la función main)
clave, no_insertadas = main(clave, contraseña)
# Registro de éxito
log("Proceso terminado con éxito.", 200, None, clave, no_insertadas)
# Retornar respuesta exitosa como JSON
return jsonify({"mensaje": "Proceso terminado con éxito.", "clave": clave, "no_insertadas": no_insertadas, "success": True})
except Exception as e:
# remove all ' from the error message
e = e.replace("'", "")
log(str(e), 500, e, None)
# Retornar mensaje de error como JSON
return jsonify({"mensaje": str(e), "success": False})
if __name__ == "__main__":
serve(app, host='0.0.0.0', port=5000)