[RESUELTO] Vista previa del paquete de cliente de Pronote v2023 compilación 0.1.1

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes WAPT.
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Bloqueado
olaplancha
Mensajes: 178
Inscripción: 26 de enero de 2017 - 11:11

7 de julio de 2023 - 14:12

Buen día,

Estoy compartiendo mi paquete para el cliente Pronote v2023 x64:

:!: Recuerde reemplazar las variables SERVERNAME, SERVERPORT y NOMETAB con sus valores
El nuevo código maneja automáticamente la posible presencia de la versión anterior, así como la función def update_package() para simplificar la actualización.
Usando el mismo código, es posible instalar la última versión junto con la versión anterior sin problemas.
Para desinstalar la versión anterior, deberá utilizar la función de desinstalación del paquete de la versión anterior. :!:

configuración.py:

Código: Seleccionar todo

# -*- coding: utf-8 -*-
from setuphelpers import *
import platform

uninstallkey = []

# Defining variables
bin_contains = "Install_PRNclient_FR_"
app_uninstallkey = "{02871376-45F6-4642-9D84-C7681ABE361F}"
edition = "v2023.0"
SERVERNAME = "RNE.index-education.net"  # Le nom DNS du serveur pronote
SERVERPORT = "49300"  # Le port TCP du serveur pronote
NOMETAB = "MonETAB"  # Utilisé pour personnaliser le nom du raccourci sur le bureau


def install():
    # Initializing variables
    package_version = control.version.split("-", 1)[0]
    bin_name = glob.glob("*%s*.exe" % bin_contains)[0]
    edition_old = str(int(edition[1:5]) - 1)

    print("Installing: %s" % bin_name)
    import tempfile
    import codecs

    pathinstallfile = makepath(tempfile.gettempdir(), "Setup.iss")
    if installed_softwares("INDEX EDUCATION - Client PRONOTE %s - 64bit" % edition_old):
        data = r"""[InstallShield Silent]
Version=v7.00
File=Response File
[File Transfer]
OverwrittenReadOnly=NoToAll
[%s-DlgOrder]
Dlg0=%s-SdLicense2Rtf-0
Count=6
Dlg1=%s-SdAskDestPath-0
Dlg2=%s-AskOptions-0
Dlg3=%s-AskOptions-1
Dlg4=%s-AskOptions-2
Dlg5=%s-SdFinish-0
[%s-SdLicense2Rtf-0]
Result=1
[%s-SdAskDestPath-0]
szDir=C:\Program Files\Index Education\Pronote %s\Réseau\Client
Result=1
[%s-AskOptions-0]
Result=1
Sel-0=0
[%s-AskOptions-1]
Result=1
Sel-0=1
Sel-1=0
Sel-2=0
Sel-3=0
[%s-AskOptions-2]
Result=1
Sel-0=0
[%s-SdFinish-0]
Result=1
bOpt1=0
bOpt2=0
""" % (
            app_uninstallkey,
            app_uninstallkey,
            app_uninstallkey,
            app_uninstallkey,
            app_uninstallkey,
            app_uninstallkey,
            app_uninstallkey,
            app_uninstallkey,
            app_uninstallkey,
            edition[1:5],
            app_uninstallkey,
            app_uninstallkey,
            app_uninstallkey,
            app_uninstallkey,
        )
    else:
        data = r"""[InstallShield Silent]
Version=v7.00
File=Response File
[File Transfer]
OverwrittenReadOnly=NoToAll
[%s-DlgOrder]
Dlg0=%s-SdLicense2Rtf-0
Count=5
Dlg1=%s-SdAskDestPath-0
Dlg2=%s-AskOptions-0
Dlg3=%s-AskOptions-1
Dlg4=%s-SdFinish-0
[%s-SdLicense2Rtf-0]
Result=1
[%s-SdAskDestPath-0]
szDir=C:\Program Files\Index Education\Pronote %s\Réseau\Client
Result=1
[%s-AskOptions-0]
Result=1
Sel-0=1
Sel-1=0
Sel-2=0
Sel-3=0
[%s-AskOptions-1]
Result=1
Sel-0=0
[%s-SdFinish-0]
Result=1
bOpt1=0
bOpt2=0
""" % (
            app_uninstallkey,
            app_uninstallkey,
            app_uninstallkey,
            app_uninstallkey,
            app_uninstallkey,
            app_uninstallkey,
            app_uninstallkey,
            app_uninstallkey,
            edition[1:5],
            app_uninstallkey,
            app_uninstallkey,
            app_uninstallkey,
        )
    fichier = codecs.open(pathinstallfile, "w", encoding="mbcs")
    fichier.write(data)
    fichier.close()
    install_exe_if_needed(
        bin_name, silentflags="-s -f1%s" % pathinstallfile, key=app_uninstallkey, min_version=package_version, killbefore="Client PRONOTE.exe"
    )
    uninstallkey.remove(app_uninstallkey)
    # Deleting response file
    remove_file(pathinstallfile)
    # Creating desktop shortcut for all users
    create_desktop_shortcut(
        r"Pronote%s - %s" % (edition[1:5], NOMETAB),
        target="C:\Program Files\Index Education\Pronote %s\Réseau\Client\Client PRONOTE.exe" % edition[1:5],
        arguments=r'-Adresse "%s" -PortTcp "%s"' % (SERVERNAME, SERVERPORT),
    )


def audit():
    if not installed_softwares("Mise à jour automatique"):
        print("Module de Mise à jour automatique manquant")
        return "ERROR"
    if not isfile(r"%s\InstallShield Installation Information\%s\setup.exe" % (programfiles32, app_uninstallkey)):
        print("Binaire de désinstallation manquant")
        return "WARNING"
    else:
        for soft in installed_softwares("Mise à jour automatique"):
            print(soft["name"] + " : " + soft["version"])
        return "OK"


def update_package():
    print("Downloading/Updating package content from upstream binary sources")

    # Initializing variables
    bin_name_string = "Install_PRNclient_FR_%s.%s_win64.exe"
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    app_name = control.name
    url = control.sources
    app_arch = control.architecture
    if app_arch == "x64":
        dl_arch = "win64"
    else:
        dl_arch = "win32"

    # Getting latest version from official website
    page = wgets(control.sources, proxies=proxies)
    for line in page.splitlines():
        if ("CLIENT EDT %s - 0." % edition[1:5]) in line:
            version = line.split('-')[-1].split('<')[0].replace(" ","")
            break
    latest_bin = bin_name_string % (edition[1:5], version)
    url_dl = "https://tele3.index-education.com/telechargement/pn/%s/exe/Install_PRNclient_FR_%s.%s_%s.exe" % (
        edition,
        edition[1:5],
        version,
        dl_arch,
    )

    print("Latest %s version is: %s" % (app_name, version))
    print("Download url is: %s" % url_dl)

    # Downloading latest binaries
    if not isfile(latest_bin):
        print("Downloading: %s" % latest_bin)
        wget(url_dl, latest_bin, proxies=proxies)

        # Checking version from file
        version_from_file = get_version_from_binary(latest_bin)
        if version != version_from_file:
            os.rename(latest_bin, bin_name_string % (edition[1:5], version_from_file))
            version = version_from_file

        # Changing version of the package
        control.version = "%s-%s" % (version, int(control.version.split("-")[-1]) + 1)
        control.save_control_to_wapt()
        print("Changing version to: %s in WAPT\\control" % control.version)

    # Deleting outdated binaries
    remove_outdated_binaries(version)


def uninstall():
    print("uninstalling: %s" % control.package)
    import tempfile

    pathuninstallfile = makepath(tempfile.gettempdir(), "Uninstall.iss")
    data = r"""[InstallShield Silent]
Version=v7.00
File=Response File
[File Transfer]
OverwrittenReadOnly=NoToAll
[%s-DlgOrder]
Dlg0=%s-MessageBox-0
Count=2
Dlg1=%s-SdFinishReboot-0
[%s-MessageBox-0]
Result=6
[%s-SdFinishReboot-0]
Result=1
BootOption=0
""" % (
        app_uninstallkey,
        app_uninstallkey,
        app_uninstallkey,
        app_uninstallkey,
        app_uninstallkey,
    )
    fichier = open(pathuninstallfile, "w")
    fichier.write(data)
    fichier.close()
    run(r'"%s\InstallShield Installation Information\%s\setup.exe" -s -uninst -f1%s' % (programfiles32, app_uninstallkey, pathuninstallfile))
    # Deleting response file
    remove_file(pathuninstallfile)
    # Removing desktop shortcut for all users
    remove_desktop_shortcut("Pronote%s - %s.lnk" % (edition[1:5], NOMETAB))
    # Uninstalling Auto Update Agent
    if uninstall_key_exists("{775E087D-A428-428C-A5FD-000010010000}"):
        run('"MsiExec.exe" /X{775E087D-A428-428C-A5FD-000010010000} /qn')
control:

Código: Seleccionar todo

architecture      : x64
sources           : https://www.index-education.com/fr/telecharger-pronote-pre-version.php
- Versión de WAPT instalada: 2.6.0.16795 Enterprise
- Sistema operativo del servidor: Linux / Debian Bookworm
- Sistema operativo de la máquina de administración/creación de paquetes: Windows 10
brice73
Mensajes: 42
Inscripción: 13 de febrero de 2023 - 8:05 a. m.

25 de julio de 2023 - 11:28

Gracias por compartir. Al parecer, el servidor de la versión 2023 aún no está operativo y los clientes aún no pueden conectarse (se muestra un mensaje de este tipo al abrir el cliente e intentar conectarse al servidor).
WAPT Enterprise 2.6.1.17765
Servidor WAPT bajo Debian 13
Administración/creación de paquetes bajo Windows 11/10
Laurent Bost
Mensajes: 4
Inscripción: 16 de julio de 2021 - 10:15

27 de julio de 2023 - 08:57

Hola,

cuando intento instalarlo recibo el siguiente mensaje de error:

2023-07-27 08:46:59,663 CRITICAL Error fatal en el script de instalación: el códec 'ascii' no puede decodificar el byte 0xc3 en la posición 680

Versión de Pyscripter: 3.6.4.0 X86
Versión de Waptconsole: 1.8.2.7334

Saludos,
Laurent.
Avatar de usuario
dcardón
Experto en WAPT
Mensajes: 1908
Inscripción: 18 de junio de 2014 - 09:58
Ubicación: Saint Sébastien sur Loire
Contacto :

27 de julio de 2023 - 09:42

Hola Laurent,

la versión 1.8.2 de WAPT se basaba en Python 2.7, que manejaba la codificación de forma diferente. Puedes eliminar todos los caracteres acentuados del paquete para evitar el problema de codificación, pero podrías encontrarte con otros problemas (configuración diferente, etc.).

Tranquil IT no ha mantenido la versión 1.8.2 Community de WAPT durante más de un año y nadie se ha hecho cargo de su mantenimiento. Te recomiendo que actualices. Y como se menciona en las reglas del foro, solo se aceptan preguntas relacionadas con la actualización de la versión 1.8.2 a la 2.x. :-)

Atentamente,

Denis
Denis Cardon - Tranquil IT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
Laurent Bost
Mensajes: 4
Inscripción: 16 de julio de 2021 - 10:15

28 de julio de 2023 - 15:08

Hola,

gracias por tu respuesta y disculpa la pregunta. Procederé con la actualización de Wapt.

Atentamente,
Laurent.
Bloqueado