File size: 2,608 Bytes
70d0307
 
63b8234
c7ca21a
70d0307
fe2a827
 
 
b6a5d02
fe2a827
44ead4e
fe2a827
 
 
70d0307
be97a9b
44ead4e
 
 
 
 
70d0307
fe2a827
 
 
 
44ead4e
 
 
fe2a827
44ead4e
 
 
 
 
 
fe2a827
 
 
 
 
 
 
 
d9eaf54
b6a5d02
fe2a827
b6a5d02
fe2a827
 
44ead4e
fe2a827
afada3e
 
1748d61
afada3e
b6a5d02
fe2a827
63b8234
1748d61
 
b6a5d02
70d0307
fe2a827
1748d61
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
62
63
64
65
import gradio as gr

# Ruta del archivo base en el disco C:
ruta_archivo_base = "blocked_urls.txt"

# Variable para almacenar la salida de los cuadros de texto
salida_coincidencias = ""
salida_fragmentos = ""

# Función para buscar coincidencias en el archivo de usuario
def buscar_coincidencias(archivo_usuario):
    global salida_coincidencias, salida_fragmentos
    coincidencias = []
    fragmentos_coincidentes = []
    
    # Verificar si archivo_usuario es None
    if archivo_usuario is None:
        return "No se ha subido ningún archivo.", ""
    
    # Obtener la ruta local del archivo de usuario
    ruta_archivo_usuario = archivo_usuario.name
    
    # Leer el contenido del archivo base desde la ruta local (C:)
    with open(ruta_archivo_base, 'r', encoding='utf-8') as base_file:
        lineas_base = base_file.readlines()
    
    # Leer el contenido del archivo de usuario desde la ruta local temporal
    with open(ruta_archivo_usuario, 'r', encoding='utf-8') as usuario_file:
        lineas_usuario = usuario_file.readlines()
    
    # Buscar coincidencias en las líneas
    for num_linea_usuario, linea_usuario in enumerate(lineas_usuario, start=1):
        for num_linea_base, linea_base in enumerate(lineas_base, start=1):
            if linea_base.strip() in linea_usuario:
                coincidencias.append(f"Coincidencia en Línea {num_linea_usuario}:\n{linea_usuario.strip()}")
                fragmentos_coincidentes.append(f"Línea {num_linea_base} (Base):\n{linea_base.strip()}")
    
    if not coincidencias:
        coincidencias.append("No se encontraron coincidencias.")
    
    # Actualizar la salida de los cuadros de texto
    salida_coincidencias = "\n".join(coincidencias)
    salida_fragmentos = "\n".join(fragmentos_coincidentes)
    
    return salida_coincidencias, salida_fragmentos

# Configurar la interfaz de Gradio
interfaz = gr.Interface(
    fn=buscar_coincidencias,
    inputs=[
        gr.File(label="Archivo de Usuario (cualquier formato o .py .ipynb)", type="file")
    ],
    outputs=[
        gr.Textbox(label="Código Prohibido", type="text"), 
        gr.Textbox(label="Fragmentos Coincidentes", type="text")
    ],
    live=True,
    title="Anti alert Colab SD",
    description=f"<b style='font-size: 18px;'>Para usar este espacio, revise el archivo README en Files. Cargue el archivo de su Colab en formato .py o .ipynb para buscar palabras prohibidas por Google en las líneas.</b>",    
    theme="NoCrypt/miku@>=1.2.2,<2.0.0",
    css=".flag-output {display: none !important;}"
)

# Ejecutar la interfaz de Gradio
interfaz.launch()