Beiträge von ThE_-_BliZZarD

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


    Die aktuelle Version lautet wohl openMittsu_0.9.2plus60-g76535d4-windows-x86-le. Ich hatte noch die vorherige Version.
    Aber auch in der aktuellen Version funktioniert die Formatierung noch nicht wieder. Wie kommt eigentlich die Versionsnummer zustande?
    Der vordere Teil ist ja irgendwie noch klar, aber g76535d4.

    0.9.2 ist Major, Minor, Patch.
    Plus 60 - es sind 60 commits seit dem setzen des letzten Tags vergangen. Das Tag ist "0.9.2".
    Dann kommt der kurze Hash des Git-Commits. Damit lässt sich (fast) eindeutig bestimmen, aus welchen Quellen diese Version erzeugt wurde. Da Git keine lineare Versionslinie hat wie SVN sondern auch komplexere Strukturen zulässt, ist die bloße Nummer nicht mehr eindeutig.
    Dahinter kommen dann noch Plattform (Windows), die Endianness (Little Endian, Big Endian oder Mixed Endian) und ob die Plattform 64bit oder 32bit als Basisgröße hat.

    Die aktuelle Version ist übrigens openMittsu_0.9.2plus63-g8407687 - hier sollten die Formatierungen ENDGÜLTIG gefixt sein :)
    Bzgl debugging: Ihr könnt immer via https://downloads.openmittsu.de/ zum Testen die -DEBUG Variante der aktuellsten Version beziehen. Diese schreibt einen viel ausführlicheren Log mit allerlei nützlichen Informationen zum Aufspüren der Fehler.


    Ich habe einige kleinere Probleme festgestellt. Die Formartierung funktioniert nicht richtig. Wenn ich mich recht erinnere soll diese implentiert sein. Und ein Designfehler. Die Zeile mit den Symbolen hat rechts einen Schatten die darüberliegende Tableiste nicht.

    Jaja, die Formatierungen. Die sind aktuell kaputt. In der Version vorher ging das, dafür wurden ab und zu Links kaputt gemacht. Ich bin noch dran das endgültig zu bändigen... Sorry.

    Dass das kursiv Gedruckte abgeschnitten wird ist bekannt, siehe https://bugreports.qt.io/browse/QTBUG-53502 - leider interessiert sich dafür zur Zeit niemand. Ist aber ein Problem im Framework, nicht bei openMittsu. Und man kann diesen Fehler leider nicht clientseitig beheben.

    Der Schatten - das ist ja interessant, mal sehen, woran das liegt :D

    OpenMittsu benutzt natürlich den gleichen Port wie die App, sonst könnt es gar nicht kommunizieren.

    Allerdings haben die Apps einen Fallback von Port 5222 auf 443 eingebaut, falls ersterer durch einen Firewall blockiert ist. Vermutlich ist dieser Fallback in openMittsu nicht implementiert.


    Oha. Das hatte ich anfangs beim Reverse-Engineering mal vermutet, aber nachdem Port 5222 funktionierte nie weiter verfolgt. Ich werde darüber nachdenken, wie man das sinnvoll (auch mit den automatischen Reconnects die immer wieder gewünscht werden) einbauen kann.


    Gibt es seit 3 Monaten keine neue Beta-Version mehr? Würde den Client gerne auch mal testen, aber eine sichere Version, darum habe ich bisher gewartet.
    Wird der Threema Desktop Client noch weiterentwickelt?


    @"fidget" , ich kann leider nur etwas mit fertigen Binaries anfangen. Im Eingangsposting werden einige fertige Builds angeboten, doch diese stammen noch vom April.


    Ja, die Entwicklung geht weiter. Nur sehr viel langsamer, da ich versuche, eine Masterarbeit zu schreiben, die leider so gar nichts mit Threema zu tun hat ;)
    Die Links zu den Builds im Eingangspost update ich übrigens regelmäßig mal (siehe Last Updated am Beitrag).

    Außerdem: Der Client hat einen Update-Notifier. Wenn du fertige Binaries von mir benutzt (d.h. auf einer unterstützten Plattform, was aktuell nur Windows ist), bekommst du sofort beim Programmstart einen Hinweis, sollte es eine neuere freigegebene Version geben.

    Was meinst du mit "sichere Version"? Meine Binaries werden von mir immer mit meinem Entwicklerzertifikat signiert und getimestamped, unter Windows kannst du dies via "Eigenschaften" -> "Digitale Signaturen" überprüfen.


    Wie lade ich ein Backup rein? Das System lässt nur 4 Zahlen unter "Backup" zu...


    Der Backup-Importer kann nur die ID-Backups in der Form 2222-RRRR-OOOO-TTTT-TTTT-FFFF-RRRR-GGGG-IIII-2222-5555-BBBB-3333-QQQQ-BBBB-BBBB-JJJJ-ZZZZ-IIII-SSSS zu (Zahlen und Buchstaben hier zufällig zur Demo gewählt.
    Auszug aus dem README:

    Zitat


    1. Export the identity from the Threema App. In the main menu, click on the uppermost entry containing your ID.
    Select "Save ID" and enter a password.
    2. In openMittsu, click on Identity, Load Backup.
    3. Enter the exported backup and the password.
    4. Choose a suitable location and let the application save the generated client configuration there.


    Ich hoffe das hilft :)

    Threema nutzt SQLCipher. Ich würde empfehlen, einfach die Threema Datenbank as is zu öffnen und die Daten daraus zu extrahieren. Das würde zwei Fliegen mit einer Klappe schlagen: Importieren von Daten aus der Threema App wäre möglich und du brauchst kein eigenes Datenbankformat entwickeln.


    Ich versuche auch SQLCipher zu nutzen ;)
    Leider ist mein Smartphone aktuell nicht gerootet, ich vermute mal ich komme an die Datenbank nur mit Root-Rechten heran.

    Falls du eine Möglichkeit hast, mir ein Test-Exemplar zur Verfügung zu stellen, sehe ich mir das gerne an! Vielleicht einfach mit einer neuen ID plus ein paar Messages an EchoTest o.ä..
    Das Backup ist ja (leider) nur ein ZIP File mit Verschlüsselung.

    Okay, ich denke ich kann hier mal eine kurze Übersicht über meine Pläne geben:

    Mein Ziel ist es, nur noch eine Datei zu haben, welche Privaten Schlüssel, ID, Kontakte, gesendete und empfangene Nachrichten sowie ausgetauschte Fotos/Files/Videos enthält.
    Eigentlich wollte ich hierfür eine Art SQLite Datenbank benutzen (soweit so einfach), welche verschlüsselt ist. D.h. beim Starten müsste der Benutzer ein Passwort eingeben, um die gesamten Daten zu entsperren/entschlüsseln.

    Leider gibt es wenige Implementierungen dieser Technik und die meisten sind nur kommerziell erhältlich. Solche, die auch kostenfrei erhältlich sind, scheinen mir extra so schlecht dokumentiert zu sein, als dass sich der Entwickler am Ende doch für kommerziellen Support entscheiden soll, anstatt genervt rum zu basteln.

    Da ich kein Geld für eine Lizenz habe, ist der mittelfristige Weg wohl, den Plan einfach minus der Verschlüsselung umzusetzen.
    Für die Speicherung des Nachrichtenverlaufs muss allerdings noch einiges angepasst werden und auch einiges im UI neu implementiert werden - dafür habe ich aktuell wenig Zeit. Von meiner Seite heißt das: Wenn es nicht jemand anderes tut, wird es irgendwann kommen, ich kann nur nicht sagen, wann.

    Neue Version: 0.9.2+53 @ gec6867e

    Features/News:

    • ImageViewer. Ein Klick auf empfangene oder gesendete Bilder öffnet das Bild in einem Viewer. Man beachte: Edit -> Fit to Window (an/aus).
    • Message Ordering nach Zeitstempeln.
    • Bug fixes. Unter anderem NOCH mehr Bugs bzgl. Sync bei unbekannten Gruppen...

    Meh. Jede Menge Zeug und keine Zeit - aber:

    • Besseres Handling von Nachrichten aus unbekannten Gruppen. Es sollten jetzt keine Abstürze mehr auftreten und Nachrichten aus noch unbekannten Gruppen nach eintreffen des Re-Syncs angezeigt werden.
    • Die Kontakte sind jetzt sortiert - erst alle Kontakte, dann alle Gruppen. Kontakte sind nach ID sortiert und Gruppen nach Namen. Das wird noch konfigurierbar werden. Die Basis ist da ;)
    • Formatierungen mit *bold*, _italic_ und ~strikethrough~ sind jetzt verfügbar und werden angezeigt.
    • Link-Umwandlung in Fließtext gefixt.
    • Random bugs a' plenty.


    Downloads:

    Mehrsprachigkeit: geplant. Leider habe ich anfangs im Code dafür nötige Maßnahmen verpasst vorzunehmen, die Übersetzbarkeit zieht also erst nach und nach ein.
    Sprechblasen-Bugs: Fixed!
    Jetzt können Bilder auch via URL verschickt werden (URL -> Bild wird heruntergeladen und dann normal versendet).


    Jetzt mit viel besserem und übersichtlicherem UI von @"simmac": Version 0.9.2+34!

    In einem Git ihrer Nähe oder, für Windows:


    @"Mogli" Sehr gut, die Debug Version erzeugt einen recht ausführlichen Log. Entweder du schaust selber mal nach, oder du schickst mir den Auszug rund um die betroffenen Nachrichten (30 Sekunden vorher bis nachher).

    Allgemein:
    Wer Spenden möchte, darf das gerne tun! Aktuell ist es nur via Paypal möglich. Einfach hier klicken!
    Danke für eure Unterstützung.


    Bug: Wenn ich direkt nach dem Start und VOR dem Verbinden eine neue Gruppe erstellen möchte, so schmiert die Anwendung ab. In der Log-Datei sind jedoch keine weiteren Daten dazu. Hatte ich zuvor eine aktive Verbindung, so erscheint eine Fehlermeldung (Hinweis, dass man angemeldet sein muss um eine Gruppe erstellen zu können).

    Edit: Was mir noch einfällt. Es wäre nett, wenn der Messenger später mal seine Position und Größe speichert und diese bei jedem Neustart von selbst einnimmt.

    Beides FIXED :D

    Neue Version: 0.9.2+16 @ g784b161.

    Windows x64: https://downloads.openmittsu.de/openMittsu_0.9…dows-x64-le.zip
    Windows x86: https://downloads.openmittsu.de/openMittsu_0.9…dows-x86-le.zip
    Windows x86 DEBUG: https://downloads.openmittsu.de/openMittsu_0.9…86-le-DEBUG.zip

    Changelog:

    • Text ist jetzt selektierbar und URLs klickbar im Chat (Danke an Simmac)
    • Client stürzt nicht mehr ab, wenn man in eine Gruppe eingeführt wird, welche Mitglieder hat, die dem Clienten noch nicht bekannt sind
    • Client stürzt nicht mehr ab, wenn man versucht eine Gruppe zu erstellen, während keine Verbindung besteht
    • Fensterposition und -geometrie werden gespeichert und beim Start wiederhergestellt
    • Gateway IDs jetzt bei Kontakten möglich (noch nicht über die GUI)
    • iOS Geräte sollten jetzt bei eingehenden Nachrichten von openMittsu den lokal gewählten Alias anzeigen


    @alle iOS Nutzer: Bitte die neue Version testen. Ihr könnt in eurer Contacts.txt (wie auch immer sie bei euch heißt) jetzt für die eigene ID einen Nickname vergeben. Unter iOS sollte bei eingehenden Pushnachrichten jetzt dieser auftauchen.

    Und: Vielen Dank für euer Feedback, auch was die Oberfläche angeht - da habe ich auch noch große Pläne, nur zu wenig Zeit und Ahnung.
    Ansonsten: Mehr testen, mehr Bugs reporten ;)


    Ich habe auch noch was:

    Sehr erfreulich, dass sich ein Hinweisfenster auf die Neue Version öffnet. Leider kommt bei mir dann nur "Seitenladefehler"

    Ich kann aber auch gerade die Version die hier im Beitrag verlinkt ist nicht erreichen

    Oh. Das ist schlecht. Könntest du den Link hier posten, welcher für dich nicht erreichbar ist? Allgemein sind alle Downloads erhältlich unter https://downloads.openmittsu.de/


    ...ach ja, noch etwas bzgl. Nicknames: ich habe den Eindruck, dass beim Senden von Nachrichten aus openMittsu heraus der vergebene Nickname nicht verwendet wird. Auf dem iPhone wird jedenfalls auf dem Lockscreen lediglich "Nachricht von ABCDABCD" angezeigt - und nicht "Nachricht von $NICKNAME", wie es sonst üblich ist.


    Wie auch immer, ich habe gesehen, dass in meiner Kontakte-Datei automatisch der Eintrag

    • "<MEINEID> : <pubkey> : You"


    angelegt wurde. Ich habe daher angenommen, dass man dort den Nickname für's Versenden einstellen kann, indem man den Text "You" entsprechend ersetzt - aber das klappt anscheinend nicht.

    AndyG


    Ähm. Ja. Da ich kein iPhone besitzt, habe ich diesen Aspekt des Protokolls ein wenig ignoriert. Das Problem ist hierbei, dass der Push aufs Handy den Usernamen mitsenden muss, und der muss dafür in der Nachricht enthalten sein.
    Und das automatisch "You" gesetzt wird - ja, das ist suboptimal. Ich werde da mal dran arbeiten und dann müsste jemand aus der iPhone Liga bzgl. Erfolg testen - aber ich bin aktuell noch an anderen Aspekten am arbeiten.


    Die Fehlermeldung bzw. die Verbindungsabbrüche (vgl. Post #60) sind mit der aktuellen Beta weiterhin vorhanden.

    Ich glaube nicht, dass diese Probleme auf meiner Seite liegen, denn ich hatte die Abbrüche auch mit einer Debug-Version, aber zum Zeitpunkt des Abbruchs ist nichts gesendet worden, und Keep-Alive war auch ok.
    Nervig ist es trotzdem.


    @ThE_-_BliZZarD:
    Generell würde ich mir etwas mehr Dokumentation wünschen (zB was ist das locationchatwidgetitem genau). Ich kenns ja selbst, Dokumentation schreiben ist viel langweiliger als das Programmieren an sich, aber es würde so viel einfacher machen ;)
    Und wenn du schon anfängst, schau dass du es gleich Doxygen-freundlich machst. :)

    Danke jedenfalls für deine Arbeit :)

    1. Mehr prokrastinieren
    2. ???
    3. Profit!

    Wie bereits eingangs erwähnt - da alles aus einem (sehr) minimalen Proof-Of-Concept entwickelt hat, sieht alles eben auch so aus. Aber ich gebe mir bei neuen Sachen Mühe ;)


    ThE_-_BliZZarD:

    Vielleicht könntest du die Links und die Änderungen dazu in deinem Eingangspost aktualisieren, dann muss man nicht immer umständlich den ganzen Thread durchlesen!? :)


    Danke für das Update.
    Die Idee von Mogli ist sehr gut, so wird es zB bei XDA etc auch gehandelt. Bzw nur ein Link zu der Liste mit den Dateien.

    _Würde_ ich ja gerne, geht aber nicht, da das Forum nur Bearbeiten von Beiträgen in den ersten 120min nach Erstellen des Beitrages erlaubt. Wenn mir jemand sagt, wie das geht, mache ich das sofort. Mein aktueller Plan ist, eine Release-Webseite aufzusetzen mit Changelog.


    Bzgl der Gruppe:
    Zum Testen gerne! Wer mir seine ID per PN schickt... :)

    Neue Builds mit neuen Bugs!

    • Description bei Kontakten bricht jetzt um
    • QR Verification klappt unter iOS
    • Force Resync/Request sync aus dem Kontextmenü für Gruppen verfügbar
    • Button "Add Group" umbenannt nach "Create new Group"

    ... und mehr.

    Windows x64: https://downloads.openmittsu.de/openMittsu_0.9…dows-x64-le.zip
    Windows x86: https://downloads.openmittsu.de/openMittsu_0.9…dows-x86-le.zip
    Windows x86 mit DEBUG Ausgaben, für Fehlersuche: https://downloads.openmittsu.de/openMittsu_0.9…86-le-DEBUG.zip


    Wer sehen möchte, was genau versendet wird oder Fehler suchen will, kann die x86 Debug Version verwenden (unter Windows) - auch auf 64bit Systemen :)

    @"Mogli" Yeeeees danke, das war also das Problem :D Ich hatte schon mehrfach gesehen, das irgendwas mit Gruppen noch Probleme macht, aber ich wusste nicht genau was. Steht auf der Liste!


    Zitat


    [...] kommt mir eher so vor als wäre übersehen worden, dass es die Gateway IDs gibt.

    Ja, 100% korrekt. Ich habe keine Ahnung, wie das funktioniert und wie man mit den IDs umgehen muss. Jemand ein paar Tipps?
    Ist es eine normale ID (also Länge 8), aber das erste Zeichen ist ein Stern?


    P.S.: Neue Builds mit jede Menge Fixes kommen wohl heute Abend oder morgen, ich bin noch dabei mein Auto-Build System zu fixen.

    Allgemein: Ich stehe mit Threema in Kontakt, das Projekt wird also geduldet und hier und da mit Informationen supported. Auch der Zugang zum Threema-Netz wurde in Absprache für meinen Client eingerichtet. Man muss sich also keine Sorgen bzgl. der Nutzung machen.

    Interessant, mir geht es eher umgekehrt: Ich will unabhängig vom Smartphone chatten können, die Historie ist mir dabei nicht unbedingt wichtig. Aber ich verstehe wohl, das es hier vielen anders geht ;)

    @"Mogli": Du hast Recht, die Beschreibung "Add Group" ist ein wenig fehlerhaft. Es müsste "Create new group" heißen.
    Du hast drei Möglichkeiten, bestehende Gruppen zu erhalten.

    • Du bist mit dem Client online und jemand schreibt eine Nachricht in eine Gruppe, in der du drin bist, aber der Client nicht kennt. Der Client empfängt eine Gruppennachricht, sieht das er die Gruppe nicht kennt und fragt beim Besitzer der Gruppe nach (Group Sync Request). Das geht natürlich nur, wenn die Gruppe nicht dir gehört.
    • Du bittest den Gruppenbesitzer darum, die Gruppe neu zu annoncieren. Das geht via dem Gruppeneinstellungsmenü, wo auch Titel und Bild der Gruppe gesetzt werden können. Wenn man dort etwas ändert (oder auch nicht) und dann wieder bestätigt, sollte die Gruppe neu an alle Mitglieder annonciert werden, d.h. der Client bekommt dann auch die Group Creation Nachricht und legt die Gruppe lokal an.
    • Du findest die Gruppen-ID raus und legst sie von Hand in den Kontakten an. Das ist eher schwierig ;)

    Bist du also nicht Besitzer der Gruppe, lass jemanden eine Nachricht in die Gruppe schreiben während du online bist und schwupps, Fall erledigt.

    Das mit den langen Gruppennamen... Tja, ich habe nicht so viele Freunde, ergo hatte ich das Problem noch nicht. Aber du hast völlig recht, das sollte behoben werden :/