Sobre el proyecto

Esta es una herramienta de monitoreo de electricidad dirigida a usuarios de dormitorios de la Universidad de Nanjing, que resuelve principalmente el problema de que el saldo de electricidad solo puede consultarse a través de la aplicación o el sitio web y es difícil rastrear sus cambios. El proyecto proporciona un script en Python que inicia sesión automáticamente en el sistema de recarga de electricidad de la Universidad de Nanjing, compatible con dos métodos: captcha tradicional (OCR con ddddocr) y verificación por deslizador (reconocimiento con IA mediante captcha-recognizer), y puede detectar automáticamente el tipo de verificación actual y realizar múltiples reintentos. El saldo de electricidad recopilado se guarda en archivos JSON y CSV, y al mismo tiempo se genera un gráfico de curvas con el historial de cambios de electricidad. El proyecto ya está integrado con GitHub Actions. Puedes configurar NJU_USERNAME y NJU_PASSWORD en los Secrets del repositorio para que se ejecute automáticamente de forma programada, sin necesidad de implementación local. El flujo de trabajo admite el envío de recordatorios por correo electrónico cuando la electricidad está por debajo de un umbral. El umbral se puede ajustar en config_workflow.json, por ejemplo, recordatorio general a 200 grados, recordatorio importante a 10 grados y recordatorio urgente a 5 grados. Para la ejecución local se requiere Python 3.9+, navegador Chrome y ChromeDriver. Se puede iniciar el monitoreo o el panel web de visualización con un solo clic mediante un archivo por lotes. El panel web ofrece curvas interactivas de electricidad con zoom, arrastre y visualización al pasar el cursor, así como una tabla de datos, adaptado tanto a escritorio como a dispositivos móviles. El proyecto también incluye herramientas auxiliares para pruebas de entorno, depuración de la estructura de la página y pruebas de reconocimiento de captchas, y proporciona instrucciones de solución de problemas para cuestiones comunes como compatibilidad con PIL, coincidencia de versiones de ChromeDriver y fallos en el reconocimiento OCR.