Page 1 sur 1
[RESOLU]Souci de téléchargement de package via script python
Publié : 04 oct. 2018 - 14:31
par troublestarter
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()
Re: Souci de téléchargement de package via script python
Publié : 04 oct. 2018 - 15:27
par agauvrit
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
Re: Souci de téléchargement de package via script python
Publié : 04 oct. 2018 - 15:45
par troublestarter
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 ?
Re: Souci de téléchargement de package via script python
Publié : 04 oct. 2018 - 17:51
par agauvrit
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
Re: Souci de téléchargement de package via script python
Publié : 04 oct. 2018 - 19:02
par troublestarter
Merci. A tester !
Re: Souci de téléchargement de package via script python
Publié : 04 oct. 2018 - 19:09
par Floflobel
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
Re: Souci de téléchargement de package via script python
Publié : 04 oct. 2018 - 19:32
par sfonteneau
Très bonne pierre a l’édifice je n'avais pas connaissance de l’existence de l'api !
Re: Souci de téléchargement de package via script python
Publié : 05 oct. 2018 - 09:56
par agauvrit
Génial !
Re: Souci de téléchargement de package via script python
Publié : 05 oct. 2018 - 17:50
par troublestarter
Je confirme ...