File size: 2,337 Bytes
d8daa2c
 
917eaaf
d8daa2c
ef9b5be
d8daa2c
a397ac0
482e966
 
917eaaf
 
 
 
 
 
 
 
482e966
 
 
d8daa2c
792112a
 
ef9b5be
792112a
 
482e966
 
 
 
 
a397ac0
482e966
0cd3000
482e966
d8daa2c
 
 
792112a
d8daa2c
792112a
d8daa2c
 
 
792112a
d8daa2c
 
 
792112a
d8daa2c
792112a
d8daa2c
3f51fb5
d8daa2c
792112a
482e966
 
71ba61a
792112a
ef9b5be
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import gradio as gr
import os
import sys
import zipfile
import tempfile
from spacy2 import classifica_e_sposta_documenti
import shutil
import re  # Aggiunto per rimuovere caratteri non consentiti nei nomi delle directory

# Aggiungi il percorso relativo di Poppler alla variabile di ambiente PATH
poppler_path = os.path.join(os.getcwd(), "poppler-24.01.0")
os.environ["PATH"] += os.pathsep + poppler_path

# Aggiungi il percorso relativo di Poppler alla variabile di ambiente LD_LIBRARY_PATH (solo per Linux)
if sys.platform.startswith("linux"):
    os.environ["LD_LIBRARY_PATH"] = poppler_path

def rimuovi_caratteri_non_consentiti(nome):
    # Utilizza una regular expression per rimuovere caratteri non consentiti
    return re.sub(r'[\/:*?"<>|]', '', nome)

def classifica_e_sposta_documenti_wrapper(uploaded_files):
    # Crea una cartella temporanea per archiviare i file caricati
    temp_folder = tempfile.mkdtemp()
    
    for uploaded_file in uploaded_files:
        # Rimuovi caratteri non consentiti dal nome del file
        file_name = rimuovi_caratteri_non_consentiti(uploaded_file.name)
        file_path = os.path.join(temp_folder, file_name)
        
        # Sposta il file temporaneo nella cartella temporanea
        shutil.move(uploaded_file.name, file_path)

        # Chiamata alla tua funzione spacy2.classifica_e_sposta_documenti con il nome del file
        classifica_e_sposta_documenti(file_path, file_name)

    # Creazione del file zip
    zip_filename = 'processed_files.zip'
    zip_filepath = os.path.join(temp_folder, zip_filename)
    with zipfile.ZipFile(zip_filepath, 'w', zipfile.ZIP_DEFLATED) as zipf:
        for root, dirs, files in os.walk(temp_folder):
            for file in files:
                zipf.write(os.path.join(root, file), 
                           os.path.relpath(os.path.join(root, file), 
                                           os.path.join(temp_folder, '..')))

    return zip_filepath

def process_files(uploaded_files):
    # Chiamata alla tua funzione spacy2.classifica_e_sposta_documenti
    zip_filepath = classifica_e_sposta_documenti_wrapper(uploaded_files)

    return "Elaborazione completata. Puoi scaricare i file elaborati [qui](" + zip_filepath + ")."

iface = gr.Interface(fn=process_files, inputs="files", outputs="text", live=True)
iface.launch()