Comunidad Gambas-es

Versión completa: Consulta: Como chequear nueva versión
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenas!, este es mi primer posteo en este foro. Hace algún tiempito vengo utilizando Gambas para diferentes cuestiones.
Entre ellas, hice un *GUI* para *ClamAV*.
[Imagen: clamav.png]
A quien le interese les dejo el link de la publicación donde puede descargarse todo el material y ver información extra. https://thenerdyapprentice.blogspot.com/...lamav.html

Mi consulta es la siguiente, hubieron (y siguen habiendo) muchas correcciones y mejoras de código en los últimos tiempos (estoy colaborando co un programador que se contactó conmigo vía el blog). Quisiera agregar alguna manera (dentro del menu *?*, por ejemplo) de que el programa pueda chequear cuál es la última versión disponible. Para así poder dirigir al usuario a la página de descarga, pero no tengo ni idea de como hacerlo.

El proyecto está publicado en GitHub: https://github.com/mcattani/clamscangui

Alguien tiene alguna pista de por donde puedo arrancar?, les agradecería mucho la información!.

Saludos.
Hola Ozymandias, bienvenido al foro.
Como sabes el archivo .project contiene la informacion relativa a la versión del programa con lo cual, al descargar dicho archivo desde el repositorio, podes hacer la comparación. Acá te dejo una forma de contrastar las versiones de tu programa y las del repositorio github.
GAMBAS
  1. Public Sub Form_Open()
  2.  
  3.   Dim vChk As String
  4.  
  5.   vChk = GitVersion("https://raw.githubusercontent.com/mcattani/clamscangui/master/.project")
  6.  
  7.   If Application.Version <> vChk Then
  8.     Message.Info(("New version found") & ": " & vChk)
  9.  
  10.  
  11. Public Function GitVersion(raw As String) As String
  12.  
  13.   Dim stx As String[]
  14.  
  15.   v = ""
  16.   If Exist("/tmp/project.txt") Then
  17.     Shell "rm /tmp/project.txt" Wait
  18.  
  19.   Shell "wget -O '/tmp/project.txt' '" & raw & "'" Wait
  20.   If Exist("/tmp/project.txt") Then
  21.     s = File.Load("/tmp/project.txt")
  22.     stx = Split(s, "\n")
  23.     For Each r In stx
  24.       If InStr(r, "Version=") Then
  25.         If Split(r, "=")[0] = "Version" Then
  26.           v = Split(r, "=")[1]
  27.           Break
  28.         Endif
  29.       Endif
  30.     Next
  31.   Return v



Nota: este método sirve siempre y cuando en el repo vayas aumentando la versión cuando haces un cambio relevante que merezca que los usuarios actualicen su instalación local.

Saludos.
Muchísimas gracias Tincho!
Desconocía la dirección https://raw.githubusercontent.com, recientemente aprendía usar GitHub!
(29-01-2021, 13:06)Ozymandias escribió: [ -> ]Desconocía la dirección https://raw.githubusercontent.com

Si, es muy útil para hacer cosas como esta.
Saludos.
Bienvenido al foro. Acá somos varios los programadores que también nos gusta la electrónica así que te vas sentir a gusto.

Dentro de la misma idea que propone Tincho, tu app puede buscar en cualquier sitio algun rastro de la existencia de una nueva version. Dependiendo de donde la tengas alojada. GitHub, Sourceforge, tu blog, etc.

Saludos.
tincho:

Muy bueno tu código. Me lo apunto .

Saludos

Julio
(29-01-2021, 18:47)jsbsan escribió: [ -> ]Muy bueno tu código. Me lo apunto .

Gracias, me alegro de que te sea útil.
Un saludo.