Beiträge von ClGSZ100

Stelle deine Frage öffentlich an die Threema-Forum-Community - über 4.800 Mitglieder helfen dir weiter. > Frage stellen <

    ich habe ein kleines Open-Source-Werkzeug veröffentlicht, das ich für meinen eigenen Bedarf entwickelt habe. Vielleicht ist es auch für andere hier nützlich.

    chex wandelt den entschlüsselten ZIP-Export eines einzelnen Threema-Chats (iOS) in ein eigenständiges HTML-Archiv um. Das Ergebnis besteht aus einer einzigen Datei (`index.html`) und einem `media/`-Ordner mit den Mediendateien – ohne JavaScript, ohne externe Abhängigkeiten und ohne Server. Das Archiv lässt sich in jedem Browser öffnen – heute und auch noch in vielen Jahren.

    Unterstützt werden:

    • Textnachrichten
    • Bilder, Videos, Audiodateien und Dateianhänge
    • Zitierte Nachrichten
    • Standortfreigaben (als OpenStreetMap-Links)
    • Umfragen (Fragen und Antworten; Abstimmungsergebnisse sind im Export nicht enthalten)

    Unterstützte Sprachen: Alle 19 Sprachversionen der Threema-iOS-App, darunter Deutsch, Englisch, Ukrainisch, Französisch und Japanisch. Die Sprache wird in der Regel automatisch erkannt.

    Plattformen: Linux, macOS und Windows – native Binärdateien, keine Laufzeitumgebung erforderlich.

    Das Werkzeug ist quelloffen (ISC-Lizenz) und auf Codeberg verfügbar: https://codeberg.org/duras/chex

    Obwohl es hier über 4.800 Mitglieder gibt, ist die Hilfe nicht sehr schnell ^^ Glücklicherweise ist das Problem gelöst. Das Problem, mit dem ich konfrontiert war, entsteht, weil die serverlose Umgebung keinen direkten Zugriff auf Systembibliotheken wie libsodium bietet. Während libsodium in requirements.txt aufgenommen werden kann, übernimmt der Server nicht die Installation oder Verknüpfung der von threema-gateway während der Bereitstellung benötigten Systembibliotheken. Ich habe das Problem mit der Libsodium-Abhängigkeit durch die Verwendung von Wrappern gelöst.

    Servus an das Forum,

    Ich wende mich an Sie, weil ich ein Problem bei der Nutzung der threema.gateway auf Servern habe.

    Beim Einsatz der Bibliothek in serverlosen Python-Funktionen von Vercel (ähnlich zu AWS Lambda) erhalte ich die folgende Fehlermeldung:

    --------
    [ERROR] OSError: Could not locate nacl lib, searched for libsodium.so, libsodium.so.23, libsodium.so.18, libsodium.so.17, libsodium.so.13, libsodium.so.10, libsodium.so.5, libsodium.so.4,
    Traceback (most recent call last):
    File "/var/task/api/index.py", line 1, in <module>
    from threema.gateway import Connection, GatewayError
    File "/var/task/threema/gateway/__init__.py", line 26, in <module>
    from . import _gateway
    File "/var/task/threema/gateway/_gateway.py", line 4, in <module>
    import libnacl.encode
    File "/var/task/libnacl/__init__.py", line 87, in <module>
    nacl = _get_nacl()
    File "/var/task/libnacl/__init__.py", line 83, in _get_nacl
    raise OSError(msg)INIT_REPORT Init Duration: 830.34 ms Phase: invoke Status: error Error Type: Runtime.Unknown
    ------

    So wie ich die Situation verstehe: Die Importanweisung von threema.gateway löst das Laden des libnacl-Moduls aus. Das libnacl-Modul versucht, die gemeinsam genutzten Bibliotheksdateien für libsodium zu finden. Es sucht nach verschiedenen Versionen der Bibliothek, kann aber keine davon finden. Die Initialisierungsfunktion _get_nacl() von libnacl versucht, die gemeinsam genutzte Bibliothek zu finden und zu laden, und wenn dies fehlschlägt, wird ein OSError mit einer detaillierten Meldung ausgegeben.

    Da ich keine Möglichkeit habe, die Serverkonfiguration oder Einstellungen auf Vercel zu ändern, möchte ich Sie um Unterstützung bitten.

    Gibt es eine bekannte Lösung oder eine Methode, um diese Abhängigkeit in meiner Umgebung korrekt zu integrieren? Ich danke Ihnen im Voraus für Ihre Hilfe und Unterstützung.

    Mit freundlichen Grüssen