Seite 1 von 1
[GELÖST] Problem beim Herunterladen des Pakets über ein Python-Skript
Veröffentlicht: 4. Oktober 2018 – 14:31 Uhr
von troublestarter
Telegram, hier ist der Download-Link:
https://telegram.org/dl/desktop/win
Das Skript kann die ausführbare Datei nicht herunterladen.
Hier ist der relevante Code:
Code: Alle auswählen
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()
Betreff: Problem beim Herunterladen von Paketen über ein Python-Skript
Veröffentlicht: 4. Oktober 2018 – 15:27 Uhr
von agauvrit
Guten Morgen,
Meiner Meinung nach ist es einfacher, das Installationsprogramm aus dem GitHub-Repository des Projekts abzurufen, das folgendes Format hat:
Code: Alle auswählen
https://github.com/telegramdesktop/tdesktop/releases/download/v1.4.0/tsetup.1.4.0.exe
Das Abrufen der Versionsnummer mit BeautifulSoup sollte nicht allzu kompliziert sein (und ist eine gute Übung zum Lernen)
Aufrichtig,
Alexander
Betreff: Problem beim Herunterladen von Paketen über ein Python-Skript
Veröffentlicht: 4. Oktober 2018 – 15:45 Uhr
von troublestarter
Der vorherige Link erschien mir besser, da er automatisch die neueste Version abruft.
Dies betrifft den „Update“-Teil des Paketcodes.
Wenn ich Code mit einem festen Link schreibe, welchen Rat würden Sie mir für den Umgang mit Versionsaktualisierungen geben? Sollte ich den Code mit dem neuen Link aktualisieren?
Betreff: Problem beim Herunterladen von Paketen über ein Python-Skript
Veröffentlicht: 4. Oktober 2018 - 17:51 Uhr
von agauvrit
Ja, der Link kann ganz einfach generiert werden, indem man die neueste Versionsnummer auf dieser Seite abruft.
Zum Vergleich: Das Rocket.Chat-Paket macht im Wesentlichen dasselbe:
https://wapt.tranquil.it/package_detail ... 2_all.wapt
Code: Alle auswählen
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")
Alexander
Betreff: Problem beim Herunterladen von Paketen über ein Python-Skript
Veröffentlicht: 4. Oktober 2018 - 19:02 Uhr
von troublestarter
Danke. Das muss ich unbedingt ausprobieren!
Betreff: Problem beim Herunterladen von Paketen über ein Python-Skript
Veröffentlicht: 4. Oktober 2018 - 19:09 Uhr
von Floflobel
Ich möchte auch noch meinen Senf dazugeben; wir persönlich nutzen die GitHub-API oder parsen den Link zur neuesten Version. Ich finde das viel einfacher:
https://api.github.com/repos/telegramde ... ses/latest
Betreff: Problem beim Herunterladen von Paketen über ein Python-Skript
Veröffentlicht: 4. Oktober 2018 - 19:32 Uhr
von Sfonteneau
Ein sehr guter Beitrag, ich wusste gar nicht, dass es diese API gibt!
Betreff: Problem beim Herunterladen von Paketen über ein Python-Skript
Veröffentlicht: 5. Oktober 2018 - 9:56 Uhr
von agauvrit
Eindrucksvoll !
Betreff: Problem beim Herunterladen von Paketen über ein Python-Skript
Veröffentlicht: 5. Oktober 2018 - 17:50 Uhr
von troublestarter
Ich bestätige ...