[GELÖST] Problem beim Herunterladen des Pakets über ein Python-Skript

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.
Gesperrt
Problemlöser
Nachrichten: 15
Anmeldung: 5. September 2018 - 10:30 Uhr
Ort: Villeneuve d'Ascq

4. Oktober 2018 – 14:31 Uhr

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()
Benutzeravatar
agauvrit
WAPT-Experte
Nachrichten: 238
Anmeldung: 17. November 2016 - 10:25 Uhr
Ort: Nantes
Kontakt:

4. Oktober 2018 – 15:27 Uhr

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
Problemlöser
Nachrichten: 15
Anmeldung: 5. September 2018 - 10:30 Uhr
Ort: Villeneuve d'Ascq

4. Oktober 2018 – 15:45 Uhr

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?
Benutzeravatar
agauvrit
WAPT-Experte
Nachrichten: 238
Anmeldung: 17. November 2016 - 10:25 Uhr
Ort: Nantes
Kontakt:

4. Oktober 2018 – 17:51 Uhr

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
Problemlöser
Nachrichten: 15
Anmeldung: 5. September 2018 - 10:30 Uhr
Ort: Villeneuve d'Ascq

4. Oktober 2018 – 19:02 Uhr

Danke. Das muss ich unbedingt ausprobieren!
Floflobel
Nachrichten: 135
Anmeldung: 15. Oktober 2015 - 17:32 Uhr

4. Oktober 2018 – 19:09 Uhr

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
Benutzeravatar
Sfonteneau
WAPT-Experte
Nachrichten: 2322
Registriert: 10. Juli 2014 - 23:52 Uhr
Kontakt:

4. Oktober 2018 – 19:32 Uhr

Floflobel schrieb: 4. Okt. 2018 - 19:09 Uhr 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
Ein sehr guter Beitrag, ich wusste gar nicht, dass es diese API gibt!
Benutzeravatar
agauvrit
WAPT-Experte
Nachrichten: 238
Anmeldung: 17. November 2016 - 10:25 Uhr
Ort: Nantes
Kontakt:

5. Oktober 2018 - 9:56 Uhr

Eindrucksvoll !
Problemlöser
Nachrichten: 15
Anmeldung: 5. September 2018 - 10:30 Uhr
Ort: Villeneuve d'Ascq

5. Oktober 2018 – 17:50 Uhr

Ich bestätige ...
Gesperrt