lazier

personal summarizer
Log | Files | Refs | README

commit 654d517dbc9ffa871891bb7e2ffecc99c2bb2dc3
parent 9abad15cca8f91bb24f981ec53aef828cd6dab8d
Author: Pablo Murad <pblmrd@gmail.com>
Date:   Sat, 24 Jan 2026 22:03:05 -0300

mais videos e audios

Diffstat:
MREADME.md | 4++--
Mlazier/core/file_handler.py | 34++++++++++++++++++----------------
Mlazier/utils.py | 16++++++++++++++--
3 files changed, 34 insertions(+), 20 deletions(-)

diff --git a/README.md b/README.md @@ -65,8 +65,8 @@ Acesse http://localhost:19283 após iniciar com `lazier web` ou Docker. ## Formatos Suportados -- **Áudio:** mp3, wav, m4a, aac, flac, ogg, opus, wma -- **Vídeo:** mp4, avi, mkv, mov, wmv, flv, webm, m4v +- **Áudio:** mp3, wav, m4a, aac, flac, ogg, opus, wma, 3gp, 3g2, amr, au, caf, mka, ra, rm, spx, tta, wv +- **Vídeo:** mp4, avi, mkv, mov, wmv, flv, webm, m4v, 3gp, 3g2, asf, f4v, m2v, mts, m2ts, ogv, rmvb, ts, vob - **Documentos:** pdf, txt, md, html - **YouTube:** Vídeos e playlists - **Web:** Páginas web (extração automática) diff --git a/lazier/core/file_handler.py b/lazier/core/file_handler.py @@ -7,17 +7,27 @@ from pathlib import Path from typing import Tuple, Optional import mimetypes +from ..utils import AUDIO_EXTENSIONS, VIDEO_EXTENSIONS, PDF_EXTENSIONS, TEXT_EXTENSIONS + # Tipos MIME aceitos AUDIO_MIMES = { 'audio/mpeg', 'audio/mp3', 'audio/wav', 'audio/x-wav', 'audio/mp4', 'audio/x-m4a', 'audio/aac', 'audio/flac', - 'audio/ogg', 'audio/opus', 'audio/x-ms-wma' + 'audio/ogg', 'audio/opus', 'audio/x-ms-wma', + # Novos formatos + 'audio/3gpp', 'audio/3gpp2', 'audio/amr', 'audio/basic', + 'audio/x-caf', 'audio/x-matroska', 'audio/vnd.rn-realaudio', + 'audio/x-speex', 'audio/x-tta', 'audio/x-wavpack' } VIDEO_MIMES = { 'video/mp4', 'video/x-msvideo', 'video/x-matroska', 'video/quicktime', 'video/x-ms-wmv', 'video/x-flv', - 'video/webm', 'video/3gpp' + 'video/webm', 'video/3gpp', + # Novos formatos + 'video/3gpp2', 'video/x-ms-asf', 'video/x-f4v', + 'video/mpeg', 'video/mp2t', 'video/x-ogm', 'video/x-ms-rmvb', + 'video/mp2t', 'video/dvd' } DOCUMENT_MIMES = { @@ -25,14 +35,8 @@ DOCUMENT_MIMES = { 'text/html', 'application/xhtml+xml' } -ALLOWED_EXTENSIONS = { - # Áudio - '.mp3', '.wav', '.m4a', '.aac', '.flac', '.ogg', '.opus', '.wma', - # Vídeo - '.mp4', '.avi', '.mkv', '.mov', '.wmv', '.flv', '.webm', '.m4v', - # Documentos - '.pdf', '.txt', '.md', '.html', '.htm' -} +# Combina todas as extensões permitidas +ALLOWED_EXTENSIONS = AUDIO_EXTENSIONS | VIDEO_EXTENSIONS | PDF_EXTENSIONS | TEXT_EXTENSIONS MAX_FILE_SIZE = int(os.getenv('LAZIER_MAX_UPLOAD_SIZE', '524288000')) # 500MB padrão @@ -58,14 +62,12 @@ def validate_upload_file(file_path: str, file_size: int) -> Tuple[bool, Optional if ext not in ALLOWED_EXTENSIONS: return False, None, f"Extensão não permitida: {ext}" - # Detecta tipo - mime_type, _ = mimetypes.guess_type(file_path) - - if ext in ['.mp3', '.wav', '.m4a', '.aac', '.flac', '.ogg', '.opus', '.wma']: + # Detecta tipo usando as constantes de utils.py + if ext in AUDIO_EXTENSIONS: return True, 'audio', None - elif ext in ['.mp4', '.avi', '.mkv', '.mov', '.wmv', '.flv', '.webm', '.m4v']: + elif ext in VIDEO_EXTENSIONS: return True, 'video', None - elif ext in ['.pdf', '.txt', '.md', '.html', '.htm']: + elif ext in PDF_EXTENSIONS or ext in TEXT_EXTENSIONS: return True, 'document', None return False, None, "Tipo de arquivo não reconhecido" diff --git a/lazier/utils.py b/lazier/utils.py @@ -14,9 +14,21 @@ from urllib.parse import urlparse # Extensões de áudio suportadas -AUDIO_EXTENSIONS = {'.mp3', '.wav', '.m4a', '.aac', '.flac', '.ogg', '.opus', '.wma'} +AUDIO_EXTENSIONS = { + # Formatos comuns + '.mp3', '.wav', '.m4a', '.aac', '.flac', '.ogg', '.opus', '.wma', + # Formatos menos comuns + '.3gp', '.3g2', '.amr', '.au', '.caf', '.mka', '.ra', '.rm', + '.spx', '.tta', '.wv' +} # Extensões de vídeo suportadas -VIDEO_EXTENSIONS = {'.mp4', '.avi', '.mkv', '.mov', '.wmv', '.flv', '.webm', '.m4v'} +VIDEO_EXTENSIONS = { + # Formatos comuns + '.mp4', '.avi', '.mkv', '.mov', '.wmv', '.flv', '.webm', '.m4v', + # Formatos menos comuns + '.3gp', '.3g2', '.asf', '.f4v', '.m2v', '.mts', '.m2ts', '.ogv', + '.rmvb', '.ts', '.vob' +} # Extensões de texto/documento suportadas TEXT_EXTENSIONS = {'.txt', '.md', '.html', '.htm'} PDF_EXTENSIONS = {'.pdf'}