{"id":15148040,"url":"https://github.com/jcorderop02/telesysbot","last_synced_at":"2026-01-06T07:06:41.833Z","repository":{"id":250769812,"uuid":"835416686","full_name":"Jcorderop02/TeleSysBot","owner":"Jcorderop02","description":null,"archived":false,"fork":false,"pushed_at":"2024-07-31T17:57:09.000Z","size":20,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-26T01:17:35.490Z","etag":null,"topics":["bot","flask","pihole","python","raspberry-pi","telegram","telegram-bot"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jcorderop02.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-29T19:46:47.000Z","updated_at":"2024-07-31T17:57:11.000Z","dependencies_parsed_at":"2024-09-26T13:01:19.505Z","dependency_job_id":null,"html_url":"https://github.com/Jcorderop02/TeleSysBot","commit_stats":{"total_commits":6,"total_committers":2,"mean_commits":3.0,"dds":"0.33333333333333337","last_synced_commit":"b93978eaec836becb944d8910b89b60bda55887f"},"previous_names":["jcorderop02/telesysbot"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jcorderop02%2FTeleSysBot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jcorderop02%2FTeleSysBot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jcorderop02%2FTeleSysBot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jcorderop02%2FTeleSysBot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jcorderop02","download_url":"https://codeload.github.com/Jcorderop02/TeleSysBot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245568570,"owners_count":20636803,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","flask","pihole","python","raspberry-pi","telegram","telegram-bot"],"created_at":"2024-09-26T13:01:11.216Z","updated_at":"2026-01-06T07:06:41.776Z","avatar_url":"https://github.com/Jcorderop02.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch2 align=\"center\"\u003eTeleSysBot - Bot de Gestión de Sistemas para Telegram\u003c/h2\u003e\n\n\u003ch2 align=\"center\"\u003eTeleSysBot\u003c/h2\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/Jcorderop02/TeleSysBot/issues\"\u003e\n    \u003cimg alt=\"GitHub Issues\" src=\"https://img.shields.io/github/issues/Jcorderop02/TeleSysBot?style=for-the-badge\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/Jcorderop02/TeleSysBot/pulls\"\u003e\n    \u003cimg alt=\"GitHub Pull Requests\" src=\"https://img.shields.io/github/issues-pr/Jcorderop02/TeleSysBot?style=for-the-badge\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/Jcorderop02/TeleSysBot/blob/main/LICENSE\"\u003e\n    \u003cimg alt=\"License\" src=\"https://img.shields.io/github/license/Jcorderop02/TeleSysBot?style=for-the-badge\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.python.org/\"\u003e\n    \u003cimg alt=\"Made with Python\" src=\"https://img.shields.io/badge/Made%20with-Python-blue?style=for-the-badge\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://flask.palletsprojects.com/\"\u003e\n    \u003cimg alt=\"Flask\" src=\"https://img.shields.io/badge/Flask-3.0.3-green?style=for-the-badge\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://core.telegram.org/bots\"\u003e\n    \u003cimg alt=\"Telegram\" src=\"https://img.shields.io/badge/Telegram-Bot-blue?style=for-the-badge\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"#\"\u003e\n    \u003cimg alt=\"Status\" src=\"https://img.shields.io/badge/status-active-success.svg?style=for-the-badge\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"#\"\u003e\n    \u003cimg alt=\"Version\" src=\"https://img.shields.io/badge/version-1.0.1-orange?style=for-the-badge\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## Tabla de Contenidos\n\n- [Introducción](#introducción)\n- [Características](#características)\n- [Requisitos del Sistema](#requisitos-del-sistema)\n- [Instalación](#instalación)\n- [Uso](#uso)\n  - [Comandos Disponibles](#comandos-disponibles)\n  - [Configuración](#configuración)\n  - [Interfaz Web](#interfaz-web)\n- [Notificaciones](#notificaciones)\n- [Arquitectura del Proyecto](#arquitectura-del-proyecto)\n- [Changelog](#changelog)\n- [Contribuciones](#contribuciones)\n- [Licencia](#licencia)\n\n## Introducción\n\n**TeleSysBot** es un versátil bot de Telegram diseñado para gestionar operaciones del sistema mediante comandos de Telegram. Además, cuenta con una interfaz web basada en Flask para monitorear y configurar el bot. Este proyecto tiene como objetivo proporcionar una interfaz fácil de usar para que los administradores de sistemas puedan gestionar y monitorear sus sistemas de manera eficiente.\n\n## Características\n\n- **Actualizaciones del Sistema**: Actualiza el sistema y Pi-hole.\n- **Estadísticas del Sistema**: Consulta el uso de CPU, memoria, disco y carga del sistema.\n- **Gestión de Contenedores**: Inicia, detén, reinicia y verifica el estado de los contenedores Docker.\n- **Gestión de Usuarios**: Autentica usuarios, gestiona usuarios bloqueados.\n- **Monitoreo del Sistema**: Monitorea el uso de recursos del sistema.\n- **Dashboard en Tiempo Real**: Muestra estadísticas del sistema con actualización automática.\n- **Modo Oscuro/Claro**: Alterna entre tema oscuro y claro en la interfaz web.\n\n## Requisitos del Sistema\n\n- Python 3.8 o superior\n- Docker (para la gestión de contenedores) (opcional)\n- Dependencias adicionales listadas en `requirements.txt`\n\n## Instalación\n\n1. Clona el repositorio:\n   ```bash\n   git clone https://github.com/Jcorderop02/TeleSysBot.git\n   cd TeleSysBot\n2. Crea un entorno virtual e instala las dependencias:\n   ```bash\n   python3 -m venv botenv\n   source botenv/bin/activate\n   pip install -r requirements.txt\n3. Configura las variables de entorno creando un archivo .env:\n   ```bash\n   TELEGRAM_BOT_TOKEN=\u003ctu_token_de_telegram\u003e\n   TELEGRAM_BOT_PASSWORD=\u003ctu_contraseña_de_bot\u003e\n   ADMIN_ID=\u003ctu_id_de_telegram\u003e\n4. Ejecuta el bot:\n   ```bash\n   python3 telegram_bot.py\n   \n## Uso\n\n### Comandos Disponibles\n\n- `/start`: Inicia la interacción con el bot.\n- `/password \u003ctu contraseña\u003e`: Autentica al usuario con la contraseña proporcionada.\n- `/update`: Actualiza el sistema y Pi-hole.\n- `/stats`: Muestra las estadísticas del sistema.\n- `/unblock \u003cuser_id\u003e`: Desbloquea a un usuario.\n- `/blocked`: Muestra la lista de usuarios bloqueados.\n- `/authenticated`: Muestra la lista de usuarios autenticados (solo admin).\n- `/system_status`: Muestra el estado del sistema.\n- `/start_container \u003cnombre_contenedor\u003e`: Inicia un contenedor Docker.\n- `/stop_container \u003cnombre_contenedor\u003e`: Detiene un contenedor Docker.\n- `/restart_container \u003cnombre_contenedor\u003e`: Reinicia un contenedor Docker.\n- `/status_container \u003cnombre_contenedor\u003e`: Muestra el estado de un contenedor Docker.\n- `/container_list`: Lista todos los contenedores y su estado.\n- `/menu`: Muestra un menú interactivo con las opciones disponibles.\n- `/dashboard`: Muestra un panel con las estadísticas del sistema.\n\n### Configuración\n\nPara habilitar o deshabilitar comandos, puedes modificar el archivo `config.json` en la raíz del proyecto. El archivo contiene una lista de comandos con valores booleanos que indican si están habilitados (`true`) o deshabilitados (`false`).\n\n### Interfaz Web\n\nEl bot incluye una interfaz web que permite actualizar la configuración de los comandos. Para acceder a la interfaz, abre un navegador web y dirígete a `http://\u003ctu_ip\u003e:5000`.\n\n### Notificaciones\n\nEl bot enviará notificaciones al administrador cuando ocurran ciertos eventos, como múltiples intentos fallidos de autenticación o alto uso de recursos del sistema.\n\n## Arquitectura del Proyecto\n\n- **telegram_bot.py**: Contiene la lógica principal del bot de Telegram.\n- **shared.py**: Módulo compartido para gestionar usuarios autenticados y bloqueados.\n- **app.py**: Configuración de la aplicación Flask.\n- **templates/**: Directorio que contiene las plantillas HTML para la interfaz web.\n\n## Changelog\n\n### Versión 1.0.1\n\n#### Nuevas Características\n\n- **Dashboard en Tiempo Real**: Añadido soporte para mostrar estadísticas del sistema en tiempo real en la interfaz web.\n- **Modo Oscuro/Claro**: Implementación de la funcionalidad para alternar entre modo oscuro y claro en la interfaz web.\n\n#### Mejoras\n\n- **Refactorización del Código**:\n  - Modularización del código: Creación de `shared.py` para gestionar usuarios autenticados y bloqueados de forma centralizada.\n  - Eliminación de dependencias de HTML y Flask desde `telegram_bot.py`.\n\n- **Interfaz Web**:\n  - Actualización de la plantilla `base.html` para incluir el soporte de modo oscuro/claro.\n  - Creación de `templates/dashboard.html` para mostrar el dashboard en tiempo real.\n  - Actualización de `templates/users.html` para mejorar la gestión de usuarios autenticados y bloqueados.\n  - Actualización de `templates/index.html` para reflejar los cambios en la configuración del bot y añadir nuevas opciones.\n\n- **Telegram Bot**:\n  - Optimización de la carga y guardado de usuarios autenticados y bloqueados mediante el uso del módulo `shared.py`.\n  - Mejora en el manejo de comandos y modularización de funcionalidades.\n\n\n## Contribuciones\n\n¡Las contribuciones son bienvenidas! Si deseas contribuir a este proyecto, por favor sigue estos pasos:\n\n1. Haz un fork del repositorio.\n2. Crea una nueva rama (`git checkout -b feature/nueva-funcionalidad`).\n3. Realiza tus cambios y commitea (`git commit -am 'Añadir nueva funcionalidad'`).\n4. Haz push a la rama (`git push origin feature/nueva-funcionalidad`).\n5. Abre un Pull Request.\n\n## Licencia\n\nEste proyecto está licenciado bajo la Licencia MIT. Consulta el archivo [LICENSE](LICENSE) para obtener más información.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcorderop02%2Ftelesysbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjcorderop02%2Ftelesysbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcorderop02%2Ftelesysbot/lists"}