From 0668d824641ca05508b4d27e6a26ff1d8f778189 Mon Sep 17 00:00:00 2001 From: lionel <.> Date: Thu, 11 Sep 2025 17:28:49 +0200 Subject: [PATCH] [tree_stream] Utilisation du MIMEtype (0.1.1) --- tree_stream/setup.py | 2 +- tree_stream/tree_stream/main.py | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/tree_stream/setup.py b/tree_stream/setup.py index de3703e..ada61fc 100644 --- a/tree_stream/setup.py +++ b/tree_stream/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup( name="tree-stream", - version="0.1.0", + version="0.1.1", description="Affiche une arborescence enrichie des fichiers vidéo avec chapitres et flux", author="TonNom", packages=find_packages(), diff --git a/tree_stream/tree_stream/main.py b/tree_stream/tree_stream/main.py index 146512a..a4fb523 100644 --- a/tree_stream/tree_stream/main.py +++ b/tree_stream/tree_stream/main.py @@ -4,6 +4,7 @@ import os import sys import argparse import ffmpeg +import mimetypes # Codes des couleurs ANSI NOIR = "\033[30m" @@ -31,11 +32,17 @@ SOULIGNE = "\033[4m" # Souligné CLIGNOTANT = "\033[5m" # Clignotant INVERSE = "\033[7m" # Inversé (texte clair sur fond sombre) +def est_fichier_video(chemin): + """ + Vérifie si le fichier est de type vidéo en se basant sur son type MIME. + """ + type_mime, _ = mimetypes.guess_type(chemin) + return type_mime is not None and type_mime.startswith("video/") def couleur(nom_fichier, est_dossier): if est_dossier: return BLEU + nom_fichier + NORMAL - elif nom_fichier.lower().endswith(('.mp4', '.mkv', '.avi')): + elif est_fichier_video(nom_fichier): return VIOLET + nom_fichier + NORMAL # 💜 fichier vidéo else: return nom_fichier @@ -209,7 +216,7 @@ def afficher_arborescence(dossier, prefixe="", tout_afficher=False, niveau_max=N niveau_max=niveau_max, niveau_actuel=niveau_actuel + 1 ) - elif nom.lower().endswith(('.mp4', '.mkv', '.avi')): + elif est_fichier_video(chemin_complet): infos = analyser_fichier_video(chemin_complet) for i, ligne in enumerate(infos): print(prefixe + sous_prefixe + ("└── " if i == len(infos) - 1 else "├── ") + ligne)