[RESOLU] Paquet digiKam
Publié : 09 janv. 2024 - 13:58
Bonjour,
Suite a une demande d'un utilisateur j'ai créé le paquet DigiKam (Win 10 64bit), il n'est pas super propre mais ne demande qu'a être amélioré.
Je n'ai pas trouvé de méthode facile pour vérifier l'existence de mise a jour, je parse donc le flux rss a la recherche de la dernière version puis je construit l'url de téléchargement.
Bonne journée
Suite a une demande d'un utilisateur j'ai créé le paquet DigiKam (Win 10 64bit), il n'est pas super propre mais ne demande qu'a être amélioré.
Je n'ai pas trouvé de méthode facile pour vérifier l'existence de mise a jour, je parse donc le flux rss a la recherche de la dernière version puis je construit l'url de téléchargement.
Bonne journée
Code : Tout sélectionner
# -*- 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