Skip to content

floatingbit23/SmartMule

Repository files navigation

🇪🇸 Castellano | 🇺🇸 English

SmartMule 🫏

El Bibliotecario Inteligente para el Ecosistema P2P

SmartMule es un servicio automatizado de organización y seguridad diseñado para transformar el caos de las descargas P2P (eMule, aMule, etc.) en una biblioteca perfectamente estructurada. Utiliza vigilancia del sistema de archivos, hashing criptográfico (ED2K) e Inteligencia Artificial para clasificar, limpiar y proteger tu equipo de amenazas camufladas.

SmartMule

Terminal

pop_up


¿Es realmente necesario?

Por defecto, eMule deposita todas las descargas finalizadas en una única carpeta Incoming. Con el tiempo, este directorio se convierte en un caos de películas, software, música y archivos con nombres crípticos.

SmartMule soluciona este problema identificando, limpiando y moviendo cada archivo a su categoría temática correspondiente de forma automática, manteniendo tu biblioteca organizada sin esfuerzo manual.


Características Principales

  • Vigilancia Activa (Watchdog): Detecta archivos nuevos en tu carpeta Incoming al instante.

  • Doble Capa de Verificación: Identifica archivos por su nombre (IA) y por su contenido (Hash ED2K / Fingerprint).

  • Antimalware Semántico: Inspección profunda de archivos comprimidos (.zip, .rar, .7z) sin extracción, usando VirusTotal, para detectar ejecutables ocultos o inconsistencias.

  • Desempate Inteligente (Tie-Breaking): Usa la duración real de los videos para distinguir entre películas homónimas (ej: Solaris 1972 vs 2002).

  • Triaje Automático:

    • MALICIOUS: Borrado automático destructivo.
    • SUSPICIOUS: Cuarentena para revisión manual.
    • SAFE: Organización temática automatizada.
  • Privacidad: Compatible con modelos locales (LM Studio) para procesar nombres sin subirlos a la nube.


🛠️ Requisitos del Sistema

1. Dependencias de Python

Instala las librerías necesarias con:

pip install -r requirements.txt

2. Herramientas de Sistema (OBLIGATORIO)

Para el análisis de archivos y desempate de películas, SmartMule requiere:

  • FFmpeg (ffprobe): Necesario para extraer la duración y resolución de los videos.

    • Windows: Descarga de ffmpeg.org, extrae el .zip y añade la carpeta bin al PATH de tu sistema.
    • Linux: sudo apt install ffmpeg
  • 7-Zip / Patool: Necesario para inspeccionar archivos comprimidos.

    • Windows: Instala 7-Zip y asegúrate de que esté en el PATH.
    • Linux: sudo apt install p7zip-full

Cómo funciona (El Pipeline de Datos)

  1. Monitorización: El Watcher detecta el archivo e inicia una espera de desbloqueo (I/O unlock).

  2. Caché Inteligente: Se calcula una "Fingerprint" rápida. Si el archivo ya existe y el mtime (modification time) no ha cambiado, se reutilizan los metadatos para ahorrar APIs.

  3. Análisis Semántico: Si es un contenedor, el ArchiveInspector busca amenazas antes de que el usuario lo abra.

  4. Capa IA (LLM): Limpia el nombre "sucio" de la Scene y detecta el tipo de medio (Cine, Música, Libros, Software, etc.).

  5. Enriquecimiento (API): Consulta TMDB u OpenLibrary usando el año y la duración para un emparejamiento perfecto.

  6. Organización: El LibraryOrganizer mueve el archivo a su destino final (ej: /Library/Movies_and_Series/Matrix (1999).mkv).


Daemon (Ejecución en Segundo Plano)

SmartMule está diseñado para ejecutarse una sola vez y quedarse vigilando permanentemente de forma completamente invisible.

  • Arrancar (Modo Invisible): Haz doble clic en el archivo smartmule_launcher.vbs. Esto levantará el proceso en segundo plano. Recomiendo crear un acceso directo a este archivo y colocarlo en tu carpeta de Autoinicio de Windows (shell:startup) para que arranque solo al encender el PC.

  • Detener: Si necesitas pararlo, abre una terminal cualquiera (CMD o PowerShell) y ejecuta python main.py stop. SmartMule detectará el proceso oculto y lo cerrará limpiamente.

stop_pid

  • Auditoría: Toda la actividad silenciosa quedará registrada en el archivo smartmule.log (en la raíz del proyecto). Puedes seguirlo en tiempo real en la terminal ejecutando:
    Get-Content smartmule.log -Wait -Encoding UTF8

alt text


Configuración en eMule (IMPORTANTE)

Para no perder visibilidad en la red ni dejar de ganar créditos tras la organización de tus archivos, sigue estos pasos:

  1. Compartir Biblioteca: Ve a eMule > Opciones > Directorios y marca la carpeta Library como directorio compartido (asegúrate de incluir sus subcarpetas).

shared_folders

  1. Privacidad: No compartas la carpeta raíz de SmartMule, solo la carpeta Library. SmartMule guarda su base de datos en una carpeta oculta (.data) para que eMule no la indexe.

  2. Mantener Créditos: Tus créditos están asociados a tu User Identification (Hash), no a los nombres de los archivos. Al compartir la Library con los archivos ya limpios y renombrados, eMule reconocerá que tienes el mismo contenido (mismo Hash ED2K) y seguirás sumando prioridad de subida.

  3. Actualización: Tras el primer arranque de SmartMule, ve a la pestaña Compartidos de eMule y pulsa el botón Recargar para que los nuevos nombres aparezcan en la red al instante.


Testing

SmartMule cuenta con una suite de pruebas para garantizar la estabilidad:

pytest -v --tb=short

tests


About

AI-powered security and organization tool that automates P2P download management through ED2K cryptographic hashing and intelligent file classification

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors