From c4a8ab880ab541530ca0c34ec92017f61c449847 Mon Sep 17 00:00:00 2001 From: Luis Rodrigues Date: Wed, 16 Apr 2025 20:39:24 +0100 Subject: [PATCH] =?UTF-8?q?cria=C3=A7=C3=A3o=20de=20fun=C3=A7=C3=A3o=20cat?= =?UTF-8?q?egorizar=5Fpor=5Fdata()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- organizer.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/organizer.py b/organizer.py index 15639be..7e16fc6 100644 --- a/organizer.py +++ b/organizer.py @@ -1,6 +1,8 @@ # organizer.py # Funções para categorizar ficheiros e criar estrutura de destino from pathlib import Path +from datetime import date, datetime +import time def categorizar_por_tipo(ficheiro: str) -> str: @@ -8,26 +10,29 @@ def categorizar_por_tipo(ficheiro: str) -> str: Devolve o tipo de ficheiro (imagem, documento, vídeo, etc) com base na extensão. """ # TODO: extensões configuraveis externamente pelo utilizador - extensao = Path(ficheiro).suffix.lower().lstrip('.') - if extensao in ['jpeg', 'jpg', 'bmp', 'cr2', 'raw']: + extensao = Path(ficheiro).suffix.lower() + if extensao in ['.jpeg', '.jpg', '.bmp', '.cr2', '.raw']: return 'imagem' - elif extensao in ['pdf', 'doc', 'docx', 'xls', 'xlsx']: + elif extensao in ['.pdf', '.doc', '.docx', '.xls', '.xlsx']: return 'documento' - elif extensao in ['mp4', 'mpeg', 'mov']: + elif extensao in ['.mp4', '.mpeg', '.mov']: return 'video' else: return 'outros' -def categorizar_por_data(ficheiro): +def obter_data_ficheiro(ficheiro: str, usar_criacao: bool = False) -> datetime: """ Devolve a data de modificação ou criação do ficheiro. """ - pass + stats_ficheiro = Path(ficheiro).stat() + timestamp = stats_ficheiro.st_ctime if usar_criacao else stats_ficheiro.st_mtime + return datetime.fromtimestamp(timestamp) def criar_pasta_destino(base_destino, categoria, data=None): """ Cria a pasta de destino apropriada, se não existir. """ + pass