Update-Paketvorschlag für Screenpresso

Fragen zu WAPT-Paketen / Anfragen und Hilfe bezüglich WAPT-Paketen.
Forumregeln
Community-Forumregeln
* Englischer Support auf www.reddit.com/r/wapt
* Französischer Community-Support ist in diesem Forum verfügbar.
* Bitte kennzeichnen Sie gelöste Themen mit [GELÖST].
* Bitte bearbeiten Sie keine Themen, die mit [GELÖST] markiert sind. Erstellen Sie stattdessen ein neues Thema und verweisen Sie auf das alte.
* Geben Sie die installierte WAPT-Version, die vollständige Versionsnummer und die Build-Nummer (2.2.1.11957 / 2.2.2.12337 / usw.) sowie die Enterprise-/Discovery-Edition an.
* Versionen 1.8.2 und älter werden nicht mehr unterstützt. Fragen zu Version 1.8.2 werden nur beantwortet, wenn sie sich auf ein Upgrade auf eine unterstützte Version (2.1, 2.2 usw.) beziehen.
* Geben Sie das Server-Betriebssystem (Linux/Windows) und die Version (Debian Buster/Bullseye – CentOS 7 – Windows Server 2012/2016/2019) an.
* Geben Sie gegebenenfalls das Betriebssystem des Administrations-/Paketerstellungsrechners und des Rechners mit dem problematischen Agenten an (Windows 7/10/11/Debian 11/etc.).
* Vermeiden Sie es, mehrere Fragen in einem Thema zu stellen, da diese sonst möglicherweise ignoriert werden. Falls mehrere Themen relevant sind, erstellen Sie bitte separate Themen, vorzugsweise nacheinander und nicht gleichzeitig (d. h. vermeiden Sie Spam im Forum).
* Fügen Sie Code-Snippets, Screenshots und andere Bilder direkt in Ihren Beitrag ein. Links zu Pastebin, Bitly und anderen Drittanbieterseiten werden systematisch entfernt.
* Wie in jedem Community-Forum erfolgt die Unterstützung freiwillig durch die Mitglieder. Für kommerziellen Support kontaktieren Sie bitte den Vertrieb von Tranquil IT unter +44 2 40 97 57 55.
Antwort
jlatieule
Nachrichten: 59
Anmeldung: 3. Juli 2019 - 9:18 Uhr

7. Oktober 2024 – 13:13 Uhr

Hallo Team,


Vor drei oder vier Jahren habe ich ein Paket für Screenpresso mit der Funktion update_package erstellt.
Da die MSI-Dateiversion in der Datei nicht korrekt angegeben war, habe ich einen Workaround verwendet, indem ich die EXE-Version heruntergeladen, sie extrahiert und anschließend die EXE-Datei gelöscht habe

Können Sie es dem Paket hinzufügen?
Der Code könnte zwar verbessert werden, aber so wie er jetzt ist, funktioniert er einwandfrei.
Zu Hause bewahrte ich die Kommentare auf, die noch aus der Zeit stammten, als ich die mobile Anwendung nutzte.
Es ist wahrscheinlich eine Fälschung, aber ich habe sie als Souvenir und internes Beispiel behalten

Code: Alle auswählen

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

uninstallkey = []

def install():
    version = control['version'].split('-',1)[0]

##    print('Desinstallation version EXE avant déploiement version portable')
##    if isdir(makepath(programfiles,'Learnpulse','Screenpresso')):
##        print('The directory exists')
##        print('Desinstallation de Screenpresso')
##        run('"C:\Program Files\Learnpulse\Screenpresso\Screenpresso.exe" -uninstall pf -silent')

##    print('Suppression de la version portable')
##    remove_tree( makepath('C:','ProgramData','Screenpresso'), ignore_errors=True )

##    print(u'Ajout de démarrage automatique')
##    registry_set(HKEY_LOCAL_MACHINE, r"Software\Microsoft\Windows\CurrentVersion\Run",'Screenpresso','"C:\Program Files\Learnpulse\Screenpresso\Screenpresso.exe" run --hideworkspace')

    # Suppression du démarrage auto de l'ancienne version à créer
    print('Installation de Screenpresso format MSI')
    install_msi_if_needed("Screenpresso.msi",killbefore="screenpresso")

##    print('Installation de Screenpresso format EXE')
##    install_exe_if_needed("Screenpresso.exe",'/install pf /silent',key='Screenpresso',min_version=version,killbefore=['Screenpresso.exe'],accept_returncodes=[4])

##    print('Copie pour utilisation application portable')
##    mkdirs(makepath ('C:','ProgramData','Screenpresso'))
##    filecopyto('Screenpresso.exe',makepath ('C:','ProgramData','Screenpresso'))
##    create_shortcut(r"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Screenpresso.lnk" , r"C:\Program Files\Learnpulse\Screenpresso\Screenpresso.exe")


def uninstall():
    print('Desinstallation de Screenpresso')
    for soft in installed_softwares('Screenpresso'):
        run(WAPT.uninstall_cmd(soft['key']))

##    run('"C:\Program Files\Learnpulse\Screenpresso\Screenpresso.exe" -uninstall pf -silent')



def session_setup():
##    print('Ajout au démarrage de session pour version portable')
##    registry_setstring(HKEY_CURRENT_USER, r"Software\Microsoft\Windows\CurrentVersion\Run",'Screenpresso','"C:\ProgramData\Screenpresso\Screenpresso.exe" --portablemode --hideworkspace', type=REG_SZ)

##    # A FINALISER
##    print('Suppression au démarrage de session')
##    registry_deletekey(HKEY_CURRENT_USER, r"Software\Microsoft\Windows\CurrentVersion\Run",'Screenpresso')
##    registry_deletekey(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run",'Screenpresso')

    remove_user_programs_menu_shortcut('Screenpresso')



def update_package():
    # Version MSI correcte depuis 12.2023, code à faire évoluer
    #print(get_product_props('Screenpresso.msi')['version'])


    try:
        import BeautifulSoup
    except:
        import bs4 as BeautifulSoup
    import re

    proxies = {}
    if isfile(makepath(user_local_appdata(),'waptconsole','waptconsole.ini')):
        proxywapt = inifile_readstring(makepath(user_local_appdata(),'waptconsole','waptconsole.ini'),'global','http_proxy')
        if proxywapt :
            proxies = {'http':proxywapt,'https':proxywapt}

    # Recherche et téléchargement de la dernière version de ScreenPresso
    os.chdir(os.path.dirname(__file__))
    page = wgets('https://www.screenpresso.com/fr/telechargement-msi',user_agent='Mozilla/5.0 (Windows NT 6.1; Win64; x64)',proxies=proxies)
    # Téléchargement du MSI
    bs = BeautifulSoup.BeautifulSoup(page, features="html.parser")
    url32 = bs.find(title = u"Cliquez ici pour télécharger")["href"]

    print(u'Telechargement de Screenpresso MSI')
    print (url32)
    wget(url32,'Screenpresso.msi',proxies=proxies)


    print(u'Recherche numéro de version (celui du MSI est incorrect)')
    bs = BeautifulSoup.BeautifulSoup(page, features="html.parser")
    url32 = bs.find(role = "button")["href"]
    #print ("Chemin vers la version : %s" % url32)

    version = (
        url32.split('screenpresso-')[1]
        .split('/')[0]
        .replace('-', '.')
    )

    # Changement de version du paquet
    if Version(version) > Version(control.get_software_version()):
        print("Mise à jour de la version logicielle (de: %s à: %s)" % (control.get_software_version(), Version(version)))
        package_updated = True
    else:
        print("Version du logiciel est déjà à jour (%s)" % Version(version))
    control.set_software_version(version)
    control.save_control_to_wapt()

##    # Validating or not update-package-sources
##    return package_updated

##if __name__ == '__main__':
##    update_package()
System- und Netzwerkadministrator bei Domitia Habitat
Benutzeravatar
Blemoire
Nachrichten: 178
Anmeldung: 17. Juli 2020 - 11:29 Uhr

11. Oktober 2024 - 10:38 Uhr

Hallo @jlatieule,
hast du das hier schon ausprobiert? https://wapt.tranquil.it/store/fr/tis-screenpresso

Bertrand
jlatieule
Nachrichten: 59
Anmeldung: 3. Juli 2019 - 9:18 Uhr

11. Oktober 2024 – 17:12 Uhr

Ja, und es installiert einfach eine einfache ausführbare Datei
System- und Netzwerkadministrator bei Domitia Habitat
Benutzeravatar
Blemoire
Nachrichten: 178
Anmeldung: 17. Juli 2020 - 11:29 Uhr

11. Oktober 2024 – 18:05 Uhr

Hallo Joël,

ich weiß nicht, ob dir diese Oberfläche bekannt ist: https://luti.tranquil.it/
Dort kannst du Paket-Builds verfolgen, sobald ein Entwickler eine Anwendung aktualisiert.
Screenpresso ist eines dieser verfolgten Pakete und verfügt daher bereits über eine `update_package()`-Funktion. Diese Funktion ist nun in einer separaten Datei definiert (`update_package.py` statt `setup.py`).

Schönes Wochenende,
Bertrand
Antwort