Pagina 1 di 1
[RISOLTO] Problema durante il download del pacchetto tramite script Python
Pubblicato: 4 ottobre 2018 - 14:31
da troublestarter
Telegram, ecco il link per il download:
https://telegram.org/dl/desktop/win
Lo script non riesce a scaricare il file eseguibile.
Ecco il codice pertinente:
Codice: Seleziona tutto
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: Problema nel download dei pacchetti tramite script Python
Pubblicato: 4 ottobre 2018 - 15:27
di agauvrit
Buongiorno,
A mio parere, sarà più semplice recuperare il programma di installazione dal repository GitHub del progetto, che ha questo formato:
Codice: Seleziona tutto
https://github.com/telegramdesktop/tdesktop/releases/download/v1.4.0/tsetup.1.4.0.exe
Recuperare il numero di versione con BeautifulSoup non dovrebbe essere troppo complicato (ed è un buon esercizio per imparare)
Sinceramente,
Alessandro
Re: Problema nel download dei pacchetti tramite script Python
Pubblicato: 4 ottobre 2018 - 15:45
da troublestarter
Il link precedente mi sembrava migliore perché recupera automaticamente l'ultima versione...
Questo riguarda la parte di "aggiornamento" del codice del pacchetto.
Se scrivo del codice con un link fisso, che consiglio mi dareste per gestire gli aggiornamenti di versione? Dovrei aggiornare il codice con il nuovo link?
Re: Problema nel download dei pacchetti tramite script Python
Pubblicato: 4 ottobre 2018 - 17:51
di agauvrit
Sì, il collegamento può essere generato facilmente recuperando il numero dell'ultima versione disponibile su questa stessa pagina.
Per riferimento, il pacchetto Rocket.Chat fa essenzialmente la stessa cosa:
https://wapt.tranquil.it/package_detail ... 2_all.wapt
Codice: Seleziona tutto
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")
Alessandro
Re: Problema nel download dei pacchetti tramite script Python
Pubblicato: 4 ottobre 2018 - 19:02
da troublestarter
Grazie. Devo provarlo!
Re: Problema nel download dei pacchetti tramite script Python
Pubblicato: 4 ottobre 2018 - 19:09
di Floflobel
Vorrei aggiungere il mio parere; personalmente, utilizziamo l'API di GitHub o analizziamo il link all'ultima versione. Lo trovo molto più semplice:
https://api.github.com/repos/telegramde ... ses/latest
Re: Problema nel download dei pacchetti tramite script Python
Pubblicato: 4 ottobre 2018 - 19:32
di sfontenau
Un ottimo contributo, non sapevo dell'esistenza dell'API!
Re: Problema nel download dei pacchetti tramite script Python
Pubblicato: 5 ottobre 2018 - 09:56
di agauvrit
Eccezionale !
Re: Problema nel download dei pacchetti tramite script Python
Pubblicato: 5 ottobre 2018 - 17:50
da troublestarter
Confermo...