Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Megaupload Checker
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Megaupload Checker 
 
Hola a todos!
Os muestro un programa que he hecho para comprobar el estado de links a megaupload (Para ver si está obsoleto y si no lo está indicar los datos del archivo).

Ingredientes:
-Gambas 2 XD
-1 ColumnView (CvArchivos)
-1 TextBox (TxtUrl)
-1 Boton (CmdCheck)
-1 HttpClient (HttpClient1)
-2 Labels
-1 Modulo de clase (MegauploadFile)

pantallazomegauploadche

Formulario:
' gambas class file
PUBLIC Buffer AS String 'Variable para guardar los datos del HttpClient
PUBLIC Key AS Integer 'Variable para la clave del ColumnView
PUBLIC SUB Form_Open()
'Cargamos el columnView
CvArchivos.Columns.count = 4
CvArchivos.Columns[0].Text = "Nombre del Archivo"
CvArchivos.Columns[1].text = "Tamaño"
CvArchivos.Columns[2].text = "Url"
CvArchivos.Columns[3].text = "Estado"
CvArchivos.Columns[0].Width = 300
CvArchivos.Columns[1].Width = 100
CvArchivos.Columns[2].Width = 350
CvArchivos.Columns[3].Width = 120
END

PUBLIC SUB CmdCheck_Click()
'Comprobamos que el link sea a megaupload  
IF Mid(TxtUrl.text, 1, 26) <> "http://www.megaupload.com/" THEN
   Message.Error("La Url especificada no es a megaupload")
ELSE  
HttpClient1.url = TxtUrl.text
HttpClient1.get()
END IF
END
PUBLIC SUB HttpClient1_Finished()
DIM Archivo AS MegauploadFile
  IF Lof(HttpClient1) THEN    
    READ #HttpClient1, Buffer, Lof(HttpClient1)
  END IF
   'Creamos una instancia de la clase
   Archivo = NEW Megauploadfile  
  'Comprobamos que el archivo este online
   IF InStr(Buffer, "importlinkhref") <> 0 THEN
      Archivo.Status = "Online"
      Archivo.Url = HttpClient1.URL
      Archivo.FileName = Between(Buffer, "<span>", "</span>")
      Archivo.Size = Between(Buffer, "File size:</strong> ", "<br>")
   ELSE
      Archivo.Status = "Offline"
      Archivo.Url = HttpClient1.URL
      Archivo.FileName = "No existe el archivo"
      Archivo.Size = "0.0 bytes XD"
   END IF
   'añadimos los Datos al columnview  
   CvArchivos.Add(key, Archivo.FileName)
   CvArchivos[key][1] = Archivo.Size
   CvArchivos[key][2] = Archivo.Url
   CvArchivos[key][3] = Archivo.Status
   key = key + 1
END

FUNCTION Between(Datos AS String, Cadena1 AS String, Cadena2 AS String) AS String
  DIM iinf AS Integer
  DIM isup AS Integer
  iinf = InStr(Datos, Cadena1) + Len(Cadena1)
  isup = InStr(Datos, Cadena2, iinf)
  RETURN Mid(Datos, iinf, isup - iinf)
END
 


MegauploadFile:
' gambas class file
PUBLIC Url AS String
PUBLIC Size AS String
PUBLIC FileName AS String
PUBLIC Status AS String


Saludos!
 




===================
Sube tus clases, módulos o funciones a Mi Web

No soy un completo inútil. Por lo menos sirvo de mal ejemplo
 
Juan Luis Lopez - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Megaupload Checker 
 
Hey!
Ingenioso el programita!

Gracias!

Saludos!
 



 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Megaupload Checker 
 
Buenísimo!

No encontré la línea, pero me parece que falta:

PUBLIC HttpClient1 AS NEW HttpClient


Hay que habilitar el componente gb.net.curl para que esté disponible la clase httpclient.

Muy buena la idea!
Saludos!
 



 
santijav - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Megaupload Checker 
 
Está bien, pero se echa en falta el soporte para manejar varios enlaces secuencialmente. No tiene mucho sentido usar un gridview sólo para un elemento. Esto se puede hacer fácilmente mediante un array de cadenas y un buclle for..next.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Megaupload Checker 
 
Voy a intentar implementar algo para que puedas comprobar varios copiados al portapapeles al estilo de jDownloader.
 




===================
Sube tus clases, módulos o funciones a Mi Web

No soy un completo inútil. Por lo menos sirvo de mal ejemplo
 
Juan Luis Lopez - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Megaupload Checker 
 
Bien, bien, hay que estimular la creatividad y el pensamiento  

Suerte y saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Megaupload Checker 
 
Bueno pues aquí esta el procedimiento:
He añadido un boton BtCheckClip y he puesto el TimeOut del HttpClient a 3 segundos para esperar entre una comprobacion y otra.

PUBLIC SUB CheckLinksFromClipBoard()
DIM MultiLinks AS String
DIM CheckLink AS String
DIM Archivo AS File
DIM Linea AS String
DIM Contador AS Integer
DIM LinkNum AS Integer
Contador = 0
'Copiamos los links en una variable
MultiLinks = Clipboard.paste()
IF Mid(multilinks, 1, 7) <> "http://" THEN
  Message.Info("No hay links de megaupload en el portapapeles")
  RETURN
END IF
'Creamos un archivo temporal donde se guardaran todos los links del portapapeles
OPEN Application.path & "/conf.txt" FOR WRITE CREATE AS #Archivo
  PRINT #Archivo, MultiLinks
CLOSE #Archivo

'Contamos el numero de links
Archivo = OPEN Application.path & "/conf.txt" FOR INPUT
 WHILE NOT Eof(Archivo)
   LINE INPUT #Archivo, Linea  
   contador = contador + 1
 WEND
CLOSE #Archivo

'Leemos linea a linea el archivo y vamos comprobando cada link
Archivo = OPEN Application.path & "/conf.txt" FOR INPUT
 WHILE NOT Eof(Archivo)
   LINE INPUT #Archivo, Linea  
   WAIT HttpClient1.Timeout
   HttpClient1.url = Linea
   HttpClient1.Get()
   LinkNum = LinkNum + 1
   BtCheckClip.Text = CStr(linkNum) & "/" & CStr(Contador)
 WEND
CLOSE #Archivo
BtCheckClip.text = "Check Clipboard"
END

PUBLIC SUB BtCheckClip_Click()
CheckLinksFromClipBoard()
END


El problema es que si la conexion va lenta, al modificar la url del httpclient saldra un error porque esa propiedad es de solo lectura ientras ejecutas.
alguna forma de arreglarlo?

Saludos!!!
 




===================
Sube tus clases, módulos o funciones a Mi Web

No soy un completo inútil. Por lo menos sirvo de mal ejemplo
 
Juan Luis Lopez - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Megaupload Checker 
 
Bueno, no está mal el intento, pero dos cosas:

  • La propiedad .timeout del httpclient sirve para establecer un tiempo de espera hasta que haya una respuesta de la web. Pasado ese tiempo se dispara un error y se descarta la acción.
    Una cifra buena es entre 5 y 10 segundos, si pasado ese tiempo no hay respuesta, probablemente el servidor esté caído. En la forma que lo usas dentro del bucle, es lo mismo que poner WAIT 3, que por otra parte es un valor aceptable.

  • Teóricamente, no es necesario crear un archivo para almacenar los enlaces, que ya tienes almacenados en una variable. Seguramente podrás hacer un split con un final de línea "\n" creando un array de string que podrás evaluar con un bucle for each. Para comprobar si el link es válido semánticamente hay muchas formas, pero la tuya es rápida y limpia, excepto que no hace falta usar Mid, sino Left.


Respecto al error último, puedes asegurarte de que la descarga ha terminado en el evento Finished, es ahí cuando debería iniciarse la siguiente descarga, y así te ahorras el WAIT.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Megambasup: Upload Files To Megaupload razaAztk Aplicaciones/Fragmentos de Código 0 Martes, 11 Enero 2011, 01:58 Ver último mensaje
razaAztk
 

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

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
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