[RESOLU]Souci de téléchargement de package via script python

Questions about WAPT Packaging / Requêtes et aides autour des paquets Wapt.
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
troublestarter
Messages : 15
Inscription : 05 sept. 2018 - 10:30
Localisation : Villeneuve d'ascq

04 oct. 2018 - 14:31

telegram, voici le lien de DL : https://telegram.org/dl/desktop/win
Impossible que le scirpt télécharge l'exe.

voici le code concerné :

Code : Tout sélectionner

def update_package():
    """ You can do a CTRL F9 in pyscripter to update the package """
    import re,requests,urlparse,glob

    url = requests.head('https://telegram.org/dl/desktop/win',proxies={}).headers['Location']
    filename = urlparse.unquote(url.rsplit('/',1)[1])

    if not isfile(filename):
        print('Downloading %s from %s'%(filename,url))
        wget(url,filename)

    exes = glob.glob('*.exe')
    for fn in exes:
        if fn != filename:
            remove_file(fn)

    # updates control version from filename, increment package version.
    control = PackageEntry().load_control_from_wapt ('.')
    control.version = '%s-0'%(re.findall('tsetup(.*)\.exe',filename)[0])
    control.save_control_to_wapt('.')

if __name__ == '__main__':
    update_package()
Avatar de l’utilisateur
agauvrit
Expert WAPT
Messages : 238
Inscription : 17 nov. 2016 - 10:25
Localisation : Nantes
Contact :

04 oct. 2018 - 15:27

Bonjour,

Il sera à mon avis plus simple de récuperer l'installeur à partir du dépot GitHub du projet et qui a cette forme :

Code : Tout sélectionner

https://github.com/telegramdesktop/tdesktop/releases/download/v1.4.0/tsetup.1.4.0.exe 
Pour récupérer le numéro de version avec BeautifulSoup ce ne doit pas être trop compliqué (et c'est un bon exercice pour apprendre)

Cordialement,

Alexandre
troublestarter
Messages : 15
Inscription : 05 sept. 2018 - 10:30
Localisation : Villeneuve d'ascq

04 oct. 2018 - 15:45

Le lien précédent me paraissait mieux car pas il récupère tout seul la dernière version...
C'est pour la partie de code "update" du package.

Si je fais un code avec le lien en fixe, quel conseil donner vous pour gérer les mises à jour de version ? Updater le code avec le nouveau lien ?
Avatar de l’utilisateur
agauvrit
Expert WAPT
Messages : 238
Inscription : 17 nov. 2016 - 10:25
Localisation : Nantes
Contact :

04 oct. 2018 - 17:51

Oui le lien est facilement générable en récupérant le dernier numéro de version disponible dans cette meme page.
Pour référence le paquet Rocket.Chat dans lequel on effectue sensiblement la même chose : https://wapt.tranquil.it/package_detail ... 2_all.wapt

Code : Tout sélectionner

def update_package():
    proxy={'http':'http://srvproxy:3128','https':'http://srvproxy:3128'}

    import requests,BeautifulSoup
    import re
    verify=True
    pe = PackageEntry()
    pe.load_control_from_wapt(os.getcwd())
    current_version = pe['version'].split('-',1)[0]

    software_name = "Rocket.Chat"

    version_software_url = "https://github.com/RocketChat/Rocket.Chat.Electron/releases/latest"

    pattern=re.compile(r'version (.*)')
    page = wgets(version_software_url,user_agent='Mozilla/5.0 (Windows NT 6.1; Win64; x64)',proxies=proxy)
    bs = BeautifulSoup.BeautifulSoup(page)
    software_version = str(bs.find('title')).split(' ')[1]

    print "Current %s WAPT package version is : %s" % (software_name,current_version)
    print "Latest %s version available is : %s" % (software_name,software_version)

    if Version(current_version) < Version(software_version):
            print "%s package is not up-to-date, updating" % software_name
            print "Cleanup current exe files"

            for exe in glob.glob('*.exe'):
                remove_file(exe)

            print("Downloading latest version")
            wget('https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/' + software_version + '/rocketchat-setup-' + software_version + '.exe' , 'rocketchat-setup' + software_version + '.exe',proxies=proxy)

            pe.version = software_version + '-0'
            pe.save_control_to_wapt(os.getcwd())
    else:
        print("No update needed, package already up to date")
Alexandre
troublestarter
Messages : 15
Inscription : 05 sept. 2018 - 10:30
Localisation : Villeneuve d'ascq

04 oct. 2018 - 19:02

Merci. A tester !
Floflobel
Messages : 135
Inscription : 15 oct. 2015 - 17:32

04 oct. 2018 - 19:09

J'ajoute ma pierre à l'édifice, personnellement nous utilisons l'api de github ou nous parsons le lien de la dernière release. Je trouve ça beaucoup plus facile :)

https://api.github.com/repos/telegramde ... ses/latest
Avatar de l’utilisateur
sfonteneau
Expert WAPT
Messages : 1783
Inscription : 10 juil. 2014 - 23:52
Contact :

04 oct. 2018 - 19:32

Floflobel a écrit : 04 oct. 2018 - 19:09 J'ajoute ma pierre à l'édifice, personnellement nous utilisons l'api de github ou nous parsons le lien de la dernière release. Je trouve ça beaucoup plus facile :)

https://api.github.com/repos/telegramde ... ses/latest
Très bonne pierre a l’édifice je n'avais pas connaissance de l’existence de l'api !
Avatar de l’utilisateur
agauvrit
Expert WAPT
Messages : 238
Inscription : 17 nov. 2016 - 10:25
Localisation : Nantes
Contact :

05 oct. 2018 - 09:56

Génial !
troublestarter
Messages : 15
Inscription : 05 sept. 2018 - 10:30
Localisation : Villeneuve d'ascq

05 oct. 2018 - 17:50

Je confirme ...
Verrouillé