GeneralGost commited on
Commit
20e6f14
·
1 Parent(s): 94d5b9e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -17
app.py CHANGED
@@ -1,4 +1,6 @@
1
  import gradio as gr
 
 
2
 
3
  # Ruta del archivo base en el disco C:
4
  ruta_archivo_base = "blocked_urls.txt"
@@ -8,32 +10,51 @@ salida_coincidencias = ""
8
  salida_fragmentos = ""
9
 
10
  # Función para buscar coincidencias en el archivo de usuario
11
- def buscar_coincidencias(archivo_usuario):
12
  global salida_coincidencias, salida_fragmentos
13
  coincidencias = []
14
  fragmentos_coincidentes = []
15
 
16
  # Verificar si archivo_usuario es None
17
- if archivo_usuario is None:
18
- return "No se ha subido ningún archivo.", ""
19
-
20
- # Obtener la ruta local del archivo de usuario
21
- ruta_archivo_usuario = archivo_usuario.name
22
 
23
  # Leer el contenido del archivo base desde la ruta local (C:)
24
  with open(ruta_archivo_base, 'r', encoding='utf-8') as base_file:
25
  lineas_base = base_file.readlines()
26
 
27
- # Leer el contenido del archivo de usuario desde la ruta local temporal
28
- with open(ruta_archivo_usuario, 'r', encoding='utf-8') as usuario_file:
29
- lineas_usuario = usuario_file.readlines()
 
 
 
 
 
 
 
 
 
 
 
 
 
30
 
31
- # Buscar coincidencias en las líneas
32
- for num_linea_usuario, linea_usuario in enumerate(lineas_usuario, start=1):
33
- for num_linea_base, linea_base in enumerate(lineas_base, start=1):
34
- if linea_base.strip() in linea_usuario:
35
- coincidencias.append(f"Coincidencia en Línea {num_linea_usuario}:\n{linea_usuario.strip()}")
36
- fragmentos_coincidentes.append(f"Línea {num_linea_base} (Base):\n{linea_base.strip()}")
 
 
 
 
 
 
 
 
 
37
 
38
  if not coincidencias:
39
  coincidencias.append("No se encontraron coincidencias.")
@@ -48,7 +69,8 @@ def buscar_coincidencias(archivo_usuario):
48
  interfaz = gr.Interface(
49
  fn=buscar_coincidencias,
50
  inputs=[
51
- gr.File(label="Archivo de Usuario (cualquier formato o .py .ipynb)", type="file")
 
52
  ],
53
  outputs=[
54
  gr.Textbox(label="Código Prohibido", type="text"),
@@ -56,7 +78,7 @@ interfaz = gr.Interface(
56
  ],
57
  live=True,
58
  title="Anti alert Colab SD",
59
- description=f"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.",
60
  theme="NoCrypt/miku@>=1.2.2,<2.0.0",
61
  css=".flag-output {display: none !important;}"
62
  )
 
1
  import gradio as gr
2
+ import requests
3
+ import nbformat
4
 
5
  # Ruta del archivo base en el disco C:
6
  ruta_archivo_base = "blocked_urls.txt"
 
10
  salida_fragmentos = ""
11
 
12
  # Función para buscar coincidencias en el archivo de usuario
13
+ def buscar_coincidencias(archivo_usuario, url_colab):
14
  global salida_coincidencias, salida_fragmentos
15
  coincidencias = []
16
  fragmentos_coincidentes = []
17
 
18
  # Verificar si archivo_usuario es None
19
+ if archivo_usuario is None and not url_colab:
20
+ return "No se ha subido ningún archivo ni se ha proporcionado ninguna URL de Colab.", ""
 
 
 
21
 
22
  # Leer el contenido del archivo base desde la ruta local (C:)
23
  with open(ruta_archivo_base, 'r', encoding='utf-8') as base_file:
24
  lineas_base = base_file.readlines()
25
 
26
+ # Si se proporcionó una URL de Colab, descargar y leer el cuaderno de Colab
27
+ if url_colab:
28
+ # Descargar el cuaderno de Colab
29
+ response = requests.get(url_colab)
30
+ response.raise_for_status()
31
+
32
+ # Leer el cuaderno de Colab
33
+ notebook = nbformat.reads(response.text, as_version=4)
34
+
35
+ # Buscar coincidencias en las celdas de código del cuaderno
36
+ for num_celda, celda in enumerate(notebook.cells, start=1):
37
+ if celda.cell_type == "code":
38
+ for num_linea_base, linea_base in enumerate(lineas_base, start=1):
39
+ if linea_base.strip() in celda.source:
40
+ coincidencias.append(f"Coincidencia en la Celda {num_celda} del Cuaderno de Colab:\n{celda.source.strip()}")
41
+ fragmentos_coincidentes.append(f"Línea {num_linea_base} (Base):\n{linea_base.strip()}")
42
 
43
+ # Si se subió un archivo de usuario, leer y analizar el archivo
44
+ if archivo_usuario is not None:
45
+ # Obtener la ruta local del archivo de usuario
46
+ ruta_archivo_usuario = archivo_usuario.name
47
+
48
+ # Leer el contenido del archivo de usuario desde la ruta local temporal
49
+ with open(ruta_archivo_usuario, 'r', encoding='utf-8') as usuario_file:
50
+ lineas_usuario = usuario_file.readlines()
51
+
52
+ # Buscar coincidencias en las líneas del archivo
53
+ for num_linea_usuario, linea_usuario in enumerate(lineas_usuario, start=1):
54
+ for num_linea_base, linea_base in enumerate(lineas_base, start=1):
55
+ if linea_base.strip() in linea_usuario:
56
+ coincidencias.append(f"Coincidencia en Línea {num_linea_usuario} del Archivo Subido:\n{linea_usuario.strip()}")
57
+ fragmentos_coincidentes.append(f"Línea {num_linea_base} (Base):\n{linea_base.strip()}")
58
 
59
  if not coincidencias:
60
  coincidencias.append("No se encontraron coincidencias.")
 
69
  interfaz = gr.Interface(
70
  fn=buscar_coincidencias,
71
  inputs=[
72
+ gr.File(label="Archivo de Usuario (cualquier formato o .py .ipynb)", type="file"),
73
+ gr.Textbox(label="URL del Cuaderno de Colab", type="url")
74
  ],
75
  outputs=[
76
  gr.Textbox(label="Código Prohibido", type="text"),
 
78
  ],
79
  live=True,
80
  title="Anti alert Colab SD",
81
+ description=f"Cargue el archivo de su Colab en formato .py o .ipynb o proporcione la URL del cuaderno de Colab para buscar palabras prohibidas por Google en las líneas. Asegúrese de que su cuaderno de Colab esté configurado para ser accesible públicamente.",
82
  theme="NoCrypt/miku@>=1.2.2,<2.0.0",
83
  css=".flag-output {display: none !important;}"
84
  )