Página 1 de 1

[RESUELTO] Paquete digiKam

Publicado: 9 de enero de 2024 - 13:58
por vnatton
Buen día,
A petición de un usuario, creé el paquete DigiKam (Windows 10 de 64 bits). No es muy limpio, pero necesita mejoras.
No he encontrado una forma sencilla de buscar actualizaciones, así que analizo el feed RSS buscando la última versión y luego construyo la URL de descarga.

Buen día

Código: Seleccionar todo

# -*- coding: utf-8 -*-
from setuphelpers import *

exe_name =  "Digikam-x64.exe"

def install():
    install_exe_if_needed(exe_name,key="digiKam")
    pass

def update_package():
    import xml.etree.ElementTree as ET
    # On doit utiliser cette bibliotheque pour accéder a une URL
    import urllib.request

    opener = urllib.request.build_opener()
    url = "https://apps.kde.org/fr/digikam/index.xml"
    tree = ET.parse(opener.open(url))
    root = tree.getroot()

    #root[0][6][1].text correspond au lien la derniere version

    text_link_last_version = root[0][6][1].text
    version_online = text_link_last_version.split("#")[1]


    #Construction du lien de téléchargement
    download_url = "https://download.kde.org/stable/digikam/%s/digiKam-%s-Win64.exe" % (version_online,version_online)
    latest_bin = download_url.split("/")[-1]

    package_updated = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()

    exe_name =  "Digikam-x64.exe"

    # Checking version from file
    version_actuelle = Version(control.get_software_version())
    if version_actuelle != Version(version_online) and version_actuelle != "":
        if os.path.isfile(exe_name):
            print("Changing version to the version number of the binary")
            os.rename(exe_name, "%s-ancien" % exe_name)

        # Téléchargement du dernier binaire
        print("Latest %s version is: %s" % (control.name, version_online))
        print("Download URL is: %s" % download_url)

        if not isfile(latest_bin):
            print("Downloading: %s" % latest_bin)
            wget(download_url, latest_bin, proxies=proxies)
            os.rename(latest_bin, exe_name)
        else:
            print("Binary is present: %s" % latest_bin)


        # Changement de la version du paquet
        if Version(version_online) > version_actuelle:
            print("Software version updated (from: %s to: %s)" % (version_actuelle, Version(version_online)))
            package_updated = True
        else:
            print("Software version up-to-date (%s)" % Version(version_online))

        control.set_software_version(version_online)
        control.save_control_to_wapt()

        # Suppression du binaire obsolete
        if isfile("%s-ancien" % exe_name):
            os.remove("%s-ancien" % exe_name)

        # Validating update-package-sources
        return package_updated
    else:
        print("Binary file version corresponds to online version")

    pass

Re: paquete digiKam

Publicado: 10 de enero de 2024 - 10:46 a. m.
por dcardon
Hola Vianney,

¡Feliz Año Nuevo 2024! Gracias por tus comentarios, Jimmy lo revisará y verá si es posible agregar Digikam al bucle Luti y a la :-)

Denis

Re: [RESUELTO] Paquete digiKam

Publicado: 10 de enero de 2024 - 16:53
por jpele
Hola Vianney, ¡
Feliz Año Nuevo 2024 para ti también!
Para tu información, el paquete se ha compilado en modo de prueba y estará disponible exclusivamente en este repositorio durante 5 días:
https://wapt.tranquil.it/wapt-testing/t ... EPROD.wapt
Tuve que rehacer la función update_package() para el "bucle luti", pero el uso del feed RSS es interesante.
El código utilizado se puede encontrar en el paquete : https://wapt.tranquil.it/store/fr/tis-w ... kage-tools.

Saludos cordiales,
Jimmy