Seite 1 von 1

[GELÖST] digiKam-Paket

Veröffentlicht: 9. Januar 2024 – 13:58 Uhr
von vnatton
Guten Morgen,
Auf Wunsch eines Nutzers habe ich das DigiKam-Paket (Win 10 64-Bit) erstellt. Es ist noch nicht perfekt, aber es wartet nur darauf, verbessert zu werden.
Da ich keine einfache Möglichkeit gefunden habe, nach Aktualisierungen zu suchen, durchsuche ich den RSS-Feed nach der neuesten Version und erstelle dann die Download-URL.

Guten Tag

Code: Alle auswählen

# -*- 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

Betreff: digiKam-Paket

Veröffentlicht: 10. Januar 2024 - 10:46 Uhr
von dcardon
Hallo Vianney,

ein frohes neues Jahr 2024! Danke für dein Feedback. Jimmy wird sich das ansehen und prüfen, ob Digikam in den Luti-Loop und den :-)

Denis

Betreff: [GELÖST] digiKam-Paket

Veröffentlicht: 10. Januar 2024 – 16:53 Uhr
von jpele
Hallo Vianney,
dir auch ein frohes neues Jahr 2024!
Nur zur Info: Das Paket wurde in der Testumgebung erstellt und ist 5 Tage lang exklusiv in diesem Repository verfügbar:
https://wapt.tranquil.it/wapt-testing/t ... EPROD.wapt.
Ich musste die `update_package()`-Funktion für die „luti-Schleife“ neu implementieren, aber die Verwendung des RSS-Feeds ist interessant.
Den verwendeten Code findest du im Paket : https://wapt.tranquil.it/store/fr/tis-w ... kage-tools.

Viele Grüße,
Jimmy