add initial scripts for backup and system resource management

This commit is contained in:
BYolivia 2025-11-28 22:02:14 +01:00
parent 4097adef18
commit 7df8a79e99
14 changed files with 138 additions and 24 deletions

View File

5
logica/T1/backup.py Normal file
View File

@ -0,0 +1,5 @@
"""
hay que crear el script de backup
ver el sistema operativo
ejecutar el script segun SO
"""

View File

37
logica/T1/runVScode.py Normal file
View File

@ -0,0 +1,37 @@
import subprocess
import platform
def abrir_vscode():
"""
Intenta abrir Visual Studio Code utilizando el comando 'code'.
Este comando asume que VS Code ha sido instalado correctamente y que
el ejecutable 'code' está disponible en el PATH del sistema (lo cual
suele ser el caso si se habilita la opción al instalar VS Code).
"""
comando = 'code'
# Notificación en consola para el desarrollador
print(f"[*] Intentando ejecutar el comando: '{comando}'...")
try:
# Ejecutamos el comando de forma asíncrona (Popen) para evitar que
# la interfaz de Tkinter se bloquee mientras se abre VS Code.
subprocess.Popen([comando])
print("[+] Visual Studio Code lanzado exitosamente.")
except FileNotFoundError:
# Esto ocurre si el comando 'code' no está en el PATH
mensaje_error = (
"===================================================\n"
f"ERROR: El comando '{comando}' no se encontró en el PATH del sistema.\n"
"Asegúrate de que Visual Studio Code esté instalado y de que el comando 'code' "
"esté configurado para ser accesible desde la terminal.\n"
"==================================================="
)
print(mensaje_error)
except Exception as e:
# Captura cualquier otro error (ej. permisos)
print(f"[-] Ocurrió un error inesperado al intentar abrir VS Code: {e}")

0
logica/T1/textEditor.py Normal file
View File

0
logica/T2/alarm.py Normal file
View File

View File

0
logica/T2/miniGame.py Normal file
View File

View File

0
logica/T2/scraping.py Normal file
View File

33
logica/controlador.py Normal file
View File

@ -0,0 +1,33 @@
import platform
from contextlib import nullcontext
_OS = nullcontext
def getPlataforma():
if _OS== nullcontext:
def accion_placeholder(nombre_accion):
"""
Función placeholder temporal para acciones que aún no tienen implementación.
Simplemente imprime un mensaje en la consola.
"""
print(f"Acción pendiente de implementación: {nombre_accion}")
def _obtener_datos_sistema():
"""
Función placeholder para la tarea T1.3 (recursos del sistema).
Esta función se llenará con la lógica para obtener datos de CPU/RAM.
"""
print("Iniciando la recopilación de datos del sistema...")
# Lógica a añadir aquí en el futuro (usando psutil, por ejemplo)
tmpVar = platform.system().lower()
if tmpVar.__contains__("windows"):
print("Sistema operativo detectado: Windows")
return {"WINDOWS"}
elif tmpVar.__contains__("darwin"):
print("Sistema operativo detectado: MacOS")
return {"MACOS"}
else:
print("Sistema operativo detectado: Linux/Unix")
return {"LINUX"}

5
res/scripts/script.ps1 Normal file
View File

@ -0,0 +1,5 @@
out-null
cls
$saludo='Hola Usuario'
Write-Host $saludo

1
res/scripts/sript.sh Normal file
View File

@ -0,0 +1 @@
echo "Hello, World!"

View File

@ -1,5 +1,9 @@
import tkinter as tk
from tkinter import ttk
# Importación de la lógica específica para abrir VS Code
from logica.T1.runVScode import abrir_vscode
# Importación de las acciones generales (placeholders y futuras funciones)
from logica.controlador import accion_placeholder, obtener_datos_sistema
class PanelLateral(ttk.Frame):
@ -9,41 +13,70 @@ class PanelLateral(ttk.Frame):
super().__init__(parent, *args, **kwargs)
self.pack(fill="y", padx=5, pady=5)
self.configurar_estilos_locales(parent) # Asegura que los estilos funcionen
# Entrada superior (amarilla)
ttk.Entry(self, width=25, style='Yellow.TEntry').pack(fill="x", pady=10, padx=5)
ttk.Entry(self, width=25, style='Yellow.TEntry').pack(fill="x", pady=10, padx=5, ipady=3)
# 1. Área de Extracción/Navegación
self.crear_seccion(
parent_frame=self,
titulo="",
botones=["Extraer datos", "Navegar", "Buscar API Google"]
)
acciones_extraccion = [
# T1.3 - Conectamos el botón de extracción a la función de obtención de datos del sistema
("Extraer datos", lambda: obtener_datos_sistema()),
("Navegar", lambda: accion_placeholder("Navegar")),
("Buscar API Google", lambda: accion_placeholder("Buscar API Google"))
]
self.crear_seccion(self, titulo="", acciones=acciones_extraccion)
# 2. Área de Aplicaciones
self.crear_seccion(
parent_frame=self,
titulo="Aplicaciones",
botones=["Visual Code", "App2", "App3"]
)
acciones_aplicaciones = [
# CONEXIÓN: Usa la función específica abrir_vscode
("Visual Code", abrir_vscode),
("App2", lambda: accion_placeholder("App2")),
("App3", lambda: accion_placeholder("App3"))
]
self.crear_seccion(self, titulo="Aplicaciones", acciones=acciones_aplicaciones)
# 3. Área de Procesos Batch
self.crear_seccion(
parent_frame=self,
titulo="Procesos batch",
botones=["Copias de seguridad"]
)
acciones_batch = [
("Copias de seguridad", lambda: accion_placeholder("Copias de seguridad"))
]
self.crear_seccion(self, titulo="Procesos batch", acciones=acciones_batch)
# Espaciador para empujar los elementos inferiores si los hubiera
# CORRECCIÓN: Eliminamos el argumento 'bg' problemático y permitimos la herencia de color.
tk.Frame(self, height=1).pack(expand=True, fill="both")
def crear_seccion(self, parent_frame, titulo, botones):
"""Función helper para crear secciones de etiquetas y botones."""
if titulo:
ttk.Label(parent_frame, text=titulo).pack(fill="x", pady=(10, 0), padx=5)
def configurar_estilos_locales(self, parent):
"""Configura estilos que deberían estar en la ventana principal, o crea placeholders."""
style = ttk.Style(parent)
# Estilo de la entrada amarilla
style.configure('Yellow.TEntry',
fieldbackground='#fff8e1',
foreground='#333333',
padding=[5, 5],
relief='solid',
borderwidth=1)
frame_botones = ttk.LabelFrame(parent_frame, text="")
# Estilo de los botones (Verde)
style.configure('Green.TButton',
background='#4CAF50',
foreground='white',
font=('Arial', 10, 'bold'),
relief='flat',
padding=[10, 5])
style.map('Green.TButton', background=[('active', '#388E3C'), ('pressed', '#1B5E20')])
def crear_seccion(self, parent_frame, titulo, acciones):
"""
Función helper para crear secciones de etiquetas y botones.
'acciones' es una lista de tuplas: (texto_boton, comando_a_ejecutar)
"""
if titulo:
ttk.Label(parent_frame, text=titulo, font=('Arial', 11, 'bold')).pack(fill="x", pady=(10, 0), padx=5)
frame_botones = ttk.Frame(parent_frame, style='TFrame') # Usando TFrame para el contenedor de botones
frame_botones.pack(fill="x", pady=5, padx=5)
for texto_boton in botones:
# Todos los botones usan el estilo 'Green.TButton' para simular el color
ttk.Button(frame_botones, text=texto_boton, style='Green.TButton').pack(fill="x", pady=5)
for texto_boton, comando in acciones:
# Conexión del botón:
ttk.Button(frame_botones, text=texto_boton, command=comando, style='Green.TButton').pack(fill="x", pady=5)