Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Script Para Bajar Una Cita Aleatoria
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Script Para Bajar Una Cita Aleatoria 
 
Hola, me puse a perder el tiempo con esto, en realidad quiero hacer un widget con python, pero mientras hice este script  

#!/usr/bin/env gbs2
'Script que descarga una cita aleatoria de sabidurias.com
USE "gb.net"
USE "gb.pcre"
USE "gb.net.curl"

PRIVATE hCliente AS NEW HttpClient AS "Cliente"
PRIVATE sCita AS String
PRIVATE sAutor AS String


PUBLIC SUB Descargar_Pagina()
  'Establece opciones del objeto de CURL
  hCliente.Close
  hCliente.Async = TRUE
  hCliente.Timeout = 20
  hCliente.URL = "http://www.sabidurias.com/frase-infinita/es"
  hCliente.Get()
  
END

PUBLIC SUB Cliente_Error()
  'Si hubo un error descargando la pagina (de CURL)
  PRINT "No se pudo establecer conexion"
  
END


PUBLIC SUB Cliente_Finished()
  'Se ejecuta cuando se descarga satisfactoriamente la página
  DIM sTexto AS String
  IF Lof(hCliente) THEN
    READ #hCliente, sTexto, Lof(hCliente)
    IF Obtener_Cita(sTexto) THEN
      PRINT "No se pudo obtener la cita"
    ELSE
      PRINT "\"" & Trim(sCita) & "\", " & Trim(sAutor)
    ENDIF
  ELSE
    PRINT "Error: Se descargo una página vacia"
  ENDIF  
  
  
END

PUBLIC FUNCTION Obtener_Cita(sTemp AS String) AS Integer
  'Toma el texto y obtiene la cita con expresiones regulares, devuelve 1 si fallo algo
  DIM rExpresion AS Regexp

  DIM sPatronCita AS String
  DIM sPatronAutor AS String
  
  sPatronCita AS String = "_cita\">([^><]*)</a" 'entre _cita"></a tomar tomar todos los caracteres que no seab un > o un <
  sPatronAutor AS String = "_home\">([^><]*)</a" 'mismo
  
  TRY rExpresion = NEW Regexp(sTemp, sPatronAutor)
  IF ERROR THEN RETURN 1
  IF rExpresion.SubMatches.Count > 0 THEN
    sAutor = rExpresion.SubMatches[1].Text
  ELSE
    RETURN 1
  ENDIF
  
  
  
  TRY rExpresion = NEW Regexp(sTemp, sPatronCita)
  IF ERROR THEN RETURN 1

  WHILE rExpresion.SubMatches.Count > 0 'recorrer el texto y cuando se encuentra parte de la cita borrarlo asi no aparece de nuevo
    
    sCita &= rExpresion.SubMatches[1].Text & " "
    sTemp = Mid(sTemp, rExpresion.Offset + 1 + Len(rExpresion.SubMatches[1].Text))
    rExpresion = NEW Regexp(sTemp, sPatronCita)
    IF ERROR THEN RETURN 1
  WEND
END


PUBLIC SUB Main()
  
  Descargar_Pagina()

END

 


 screenshot
 



 
Enchufadoo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Script Para Bajar Una Cita Aleatoria 
 
Jejejeje, que chido script, gracias!
 



 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron