Chat aus Daten-Backup in HTML konvertieren

Stelle deine Frage öffentlich an die Threema-Forum-Community - über 4.800 Mitglieder helfen dir weiter. > Frage stellen <
  • Als reine Threema-Bkp Frage stellte sich mir, ob Medien grundsätzlich in voller Auflösung vorhanden sind, oder down-sized.

    Im Backup werden die Größen/Auflösungen gesichert, die auch auf dem Gerät selbst noch vorliegen und wie sie verschickt oder empfangen wurden. Wenn du bspw. ein im Original 2400x2400 Bild an einen Kontakt schickst, die Auflösung in Threema jedoch nicht auf Extra oder Original gesetzt wird (oder als Datei schicken - dann mit Metadaten), wird das Bild vor dem Versand entsprechend verkleinert (z. B. auf 1600x1600). Eben diese letztere Version wird im Backup hinterlegt.

    Ausnahme: Zu jedem Bild (und auch Video, aber das ist hier irrelevant) wird auch ein Vorschaubild erzeugt. Wenn du nun in der Medienübersicht das Bild löscht, ist in der Chatübersicht weiterhin die Vorschau enthalten. Diese wird dann im Backup aufgenommen, ohne dass das "Original" enthalten ist. Wie denn auch? Das "Original" ist ja schon gelöscht.

    In der HTML werden jegliche Bilder kleiner angezeigt, beim Klick darauf öffnet sich jedoch das "Original" oder Vorschaubild - je nachdem, was vorhanden ist.

    Dann bin ich im html doch zufällig auf einen seltsamen Fall gestoßen.

    Kannst du den Fall noch etwas weiter erklären?

    Du hast ein Bild in einer Gruppe erhalten, welches zeitlich auf den 04.09.2020 datiert ist, aber eigentlich zum 03.09.2020 gehört? Und vorher und nachher sind Nachrichten/weitere Medien um das Bild mit dem 03.09.2020 vorhanden?

    Mich würde da einmal die Zeile (+1 davor und +1 danach) in der CSV-Datei interessieren. Handelt es sich hierbei ggf. um einen Chatpartner, der das Bild zwar schon am 03.09.2020 eingestellt hat, der Versand aber erst am 04.09.2020 erfolgte?

  • Danke für die Erklärung bzgl. Auflösungen!

    OK, csv Auszug habe ich per PN geschickt.

    Vermutung: das Foto ist relativ groß, evtl. wurde das Vollbild erst verzögert aufs Handy runtergeladen (e.g. per WLAN) - und das Skript verwendet den Zeitstempel der Mediendatei (nicht der Nachricht).

  • Skript funktioniert, SUB wird erstellt, html-Datei bleibt im Hauptverzeichnis.

    Aber: Wenn ich die html öffne, so steht bei allen Bildern:

    "Bild nicht gefunden

    <Datum> <Uhrzeit>"

    so sieht meine Commandozeile aus:

    PowerShell -ExecutionPolicy Bypass -File .\Backupaufdroeseln.ps1 .\group_message_06afb3b57b85c012-UZSAUMS8.csv

    Das ist ein Auszug aus der html-Datei, wo ich eigentlich einen Bild-Link erwarten würde:

    Code
    <div class="sent">
        <p class="msg"><i>Bild nicht gefunden.</i><br/></p>
        <p class="timestamp">29.02.2020, 11:28:12</p>
    </div>


    Super fände ich, wenn das Skript Media-Dateien gleich als solche im erstellten Verzeichnis speichert. (mit entsprechender Erweiterung)

    Herzlich TH

  • Wenn ich die html öffne, so steht bei allen Bildern:

    "Bild nicht gefunden

    Das passiert, wenn das Skript die entsprechenden Medien (oder Vorschaubilder dieser) nicht findet. Es kann leider nicht hexen, daher schreibt es einfach nur "nicht gefunden" rein.

    Ich habe mir mit auf die Liste genommen, dass im Quellcode wenigstens noch der eigentliche Dateiname mit aufgenommen wird bzw. der "nicht gefunden" String als Alternativname vergeben wird. Irgendwann dann bei Zeiten :)

    so sieht meine Commandozeile aus

    Die sieht gut aus.

    Super fände ich, wenn das Skript Media-Dateien gleich als solche im erstellten Verzeichnis speichert.

    Das Skript verschiebt gefundene Medien-Dateien automatisch in der erstellte Unterverzeichnis. Dabei löscht es ggf. vorhandene Vorschaubilder, da die nicht mehr benötigt werden, wenn das Original vorliegt.

    mit entsprechender Erweiterung

    Das war mal kurzzeitig enthalten, wurde dann aber wieder entfernt, da es doch leider nicht immer 100% eindeutig ist, was das denn für Dateien sind (z. B. ein DOCX ist eigentlich ein ZIP, nur eben mit anderer Endung).

    Außerdem: würde ich jede Medien-Datei umbenennen (egal ob den Namen oder um die Dateiendung erweitern), kann man diese nicht nochmal für ein erneutes Archiv-Konvertieren nutzen, sondern müsste sie vorab alle händisch umbenennen oder nochmal aus dem Backup-Archiv extrahieren.

    Workaround: wenn du die HTML im Browser anschaust, dann mache einen Rechtsklick auf die Datei und sag "Ziel speichern unter..." und dann sollten dir Bilder als Bilder, Videos als Videos und andere Dateien eben entsprechend als Download angeboten werden.

  • Unglaublich tolles Skript, vielen Dank! Mein Backup hat mittlerweile weit über 20GB. Das kann ich auf dem Smartphone dann jetzt endlich reduzieren.

    Mit meinem neuesten Backup habe ich aber ein Problem, vermutlich hat sich die Art und Weise wie Backups erstellt werden geändert? Die message_XXX.csv Dateien sind jetzt leider nicht mehr nach der Threema-ID benannt, sondern haben für mich nur noch willkürliche Zahlen.

    Also nicht mehr message_ECHOECHO.csv sondern nur noch message_0123456789.csv.

    Ich konnte mir nur behelfen, indem ich die Dateigröße - die größten sind die wichtigsten Chats - angeschaut habe und dann jeden einzelnen geöffnet habe. Wurde dann etwas chaotisch in Excel geöffnet und anhand einzelner Nachrichten konnte ich erkennen welcher Chat das sein muss.

    Gibt es da eine elegantere Lösung herauszufinden welche message_XXX.csv-Datei zu welcher ID bzw welcher Person gehört?

  • Hallo Zusammen,

    ich habe begonnen einen Threema-Chat in HTML zu konvertieren und finde die Idee und das Skript wirklich super!

    Hat jedoch noch jemand das Problem, dass die Zitate nicht richtig angezeigt werden? Der Chat den ich gerne als HTML exportieren möchte, lebt leider von den Zitaten (verschiedene parallele Diskussionen :D) und ohne diese ist er eher unbrauchbar.

    Ich glaube, dass die Zitatreferenzen nicht richtig aus Threema selber exportiert werden, da ich in der originalen Exeldatei "message_xxx" nur in der ersten Zeit Zitate sehe und dann auch nur meine Zitat und ab 05.05.2022 leider nicht mehr.

    Hatte jemand das Problem bereits und weiß, woran es liegen könnte?

    Viele liebe Grüße und Danke schon mal im Voraus,

    Sophia

  • Mahlzeit!

    ich bin auf der Suche nach einem HTML-Konverter auf diese Seite gestoßen.

    Erst einmal einen herzlichen Dank an jnL für das tolle Script und den darin enthaltenen Gehirnschmalz :thumbup:.

    Und obwohl das Script schon ein paar Tage alt ist, und Threema doch so einige Dinge in der Zwischenzeit geändert hat, funktioniert es weiterhin solide und tut, was es soll.

    Ich bin u.a. auch auf die Zitat-Problematik gestoßen und habe das mal verfolgt. Das "Problem" ist, daß Threema wohl irgendwann angefangen hat, zitierten Text nicht mehr in dem (neuen) Nachrichten-Datensatz zu speichern, sondern nur noch einen Verweis auf den zitierten Datensatz. Das macht es u.a. möglich, alles mögliche zu zitieren...Text, Bilder, Dateien, ...

    Wie groß ist denn das Interesse, das Script u.a. auf die neue Zitier-Methode zu modernisieren? Und...was sagt denn jnL dazu, daß da evtl. jemand anderes an seinen Code möchte :/?

    (Hintergrund: Ich habe für mich die neue Zitier-Methode schon in das Script implementiert :saint:. Möchte aber "ausserhalb meines Rechners" nicht dem Urheber quer schiessen...)

    Grüße

  • Das "Problem" ist, daß Threema wohl irgendwann angefangen hat, zitierten Text nicht mehr in dem (neuen) Nachrichten-Datensatz zu speichern, sondern nur noch einen Verweis

    Genau so ist es. Und kurz darauf (oder gar damit?) wurde es möglich, dass auch Medien zitiert werden können. Fehlt nur noch, dass man auf ein Zitat mit einem Medium antworten kann - vielleicht kommt das ja noch :)

    Wie groß ist denn das Interesse, das Script u.a. auf die neue Zitier-Methode zu modernisieren?

    Sicher groß. Fast 2 Jahre sind seit der letzten Skriptversion her und es hat über 400 Downloads. Teils wird auch von Threema in ihren Supportantworten auf das Skript verwiesen (nur damals und heute nicht mehr?).

    was sagt denn jnL dazu, daß da evtl. jemand anderes an seinen Code möchte :/ ?

    Ich bleibe dabei: ich habe es bereitgestellt, damit andere es nutzen, bearbeiten, erweitern und verteilen können. Ich erhebe keinerlei Anspruch auf ein Urheberrecht (eine kurze Erwähnung, woher es stammt wäre toll - mehr nicht), biete aber aufgrund fehlender Zeit auch keinen (aktiven) Support dafür.
    Andersherum können wir es auch so machen: wenn du deinen überarbeiteten Code teilen magst, kann ich das Skript im 1. Post aktualisieren. Wer liest schon die nächsten/letzten Seiten? :P
    Eine Onlineplattform zum gemeinsamen Bearbeiten wäre auch denkenswert, die Frage wäre nur wo und wie frei wäre es bearbeitbar, ohne dass ich alles gegenlesen müsste?! Daher: gerne Änderungen einbringen und das Skript dadurch gemeinsam verbessern.

  • Genau so ist es. Und kurz darauf (oder gar damit?) wurde es möglich, dass auch Medien zitiert werden können. Fehlt nur noch, dass man auf ein Zitat mit einem Medium antworten kann - vielleicht kommt das ja noch :)

    Geht schon...ja, das geht schon 8|! Und durch das neue System könnte man sich bei den Zitaten (rekursiv?) durchhangeln bis zur Quelle...naja, wir wollen es ja mal nicht übertreiben :whistling:...

    Eine Onlineplattform zum gemeinsamen Bearbeiten wäre auch denkenswert, die Frage wäre nur wo und wie frei wäre es bearbeitbar, ohne dass ich alles gegenlesen müsste?! Daher: gerne Änderungen einbringen und das Skript dadurch gemeinsam verbessern.

    Ich möchte hier nicht unbedingt ein großes Projekt aufbohren, aber extern bereitstellen hätte schon den Vorteil, daß man relativ unabhängig daran arbeiten könnte. Darf/Kann man hier im Forum auf externe Seiten verlinken? Hab auf die Schnelle keine Infos dazu gefunden...

  • Darf/Kann man hier im Forum auf externe Seiten verlinken?

    Hallo :)

    selbstverständlich. Solche Verweise gibt es hier doch ständig, siehe z.B. im Thema

    threemat
    15. Februar 2016 um 13:25

    Das sollten natürlich keine fragwürdigen Seiten mit Pornos, Malware oder anderen strafbaren Inhalten sein.

    Gruß Ingo

  • auf ein Zitat mit einem Medium antworten

    das geht schon 8|

    Mit so oder einem ähnlichen Gesicht wie dein verwendeter Smiley war meine Reaktion, als ich deine Nachricht gelesen habe. "Das geht schon?", frug ich mich und habe es ausprobiert. Ohne Erfolg. Ich war in einer Gruppe, habe einen Text zitiert und dann auf die Büroklammer gedrückt, um über die Galerie-Schnellauswahl ein Bild auszuwählen. Ohne groß etwas mehr klicken zu wollen habe ich direkt "Absenden" geklickt. Das Bild wurde zwar verschickt, aber es gibt kein Zitat mehr und somit ist mein Medium ohne Zitatbezug verschickt worden.

  • Mit so oder einem ähnlichen Gesicht wie dein verwendeter Smiley war meine Reaktion, als ich deine Nachricht gelesen habe. "Das geht schon?", frug ich mich und habe es ausprobiert. Ohne Erfolg. Ich war in einer Gruppe, habe einen Text zitiert und dann auf die Büroklammer gedrückt, um über die Galerie-Schnellauswahl ein Bild auszuwählen. Ohne groß etwas mehr klicken zu wollen habe ich direkt "Absenden" geklickt. Das Bild wurde zwar verschickt, aber es gibt kein Zitat mehr und somit ist mein Medium ohne Zitatbezug verschickt worden.

    Ui...okay. Ich dachte, ich hätte es so schon mal in einem meiner Chats gesehen. Vielleicht war es aber doch andersrum :rolleyes:... tut mir leid ob der falschen "Freude"... ;)

  • Sodele...

    ich habe mal meine aktuelle Motivation genutzt und das Konvertierungs-Script auf einer externe Seite gehostet.

    Ausgehend von der 'letzten' aktiven Version von jnL habe ich es etwas weiterentwickelt (u.a. unterstützt es nun die neue Zitat-Funktion von Threema) und stelle diese Entwicklung gerne der Allgemeinheit zur Verfügung. Wer Interesse hat, findet das Script auf dieser Seite:

    threema-csv2html bei codeberg.org

    Weitere Entwicklungen (zumindest) meinerseits werden dort veröffentlicht.


    Aktuell sind noch weitere Anpassungen von mir geplant - z.B. die Aufnahme des Mediendateinamens (nicht nur) wenn die Datei nicht gefunden wird und eine Funktion, die korrespondierende (Gruppen-)Chat ID zu finden ohne manuelles Suchen in den *.csv-Dateien.

    Grüße

    3 Mal editiert, zuletzt von Bawal (14. November 2023 um 17:21) aus folgendem Grund: Versuch, das Profilfoto nicht anzuzeigen

  • Update 24.11.2023 - Version 1.3

    Eigentlich sollten hier erst mal nur kleine Änderungen erfolgen...am End' ist das Update dann doch etwas größer geworden :saint:.

    Changelog v1.3
    • benutzerdefinierte Optionen hinzugefügt (müssen z.Zt. noch direkt in Script angepasst werden, falls gewünscht)
    • wenn Nachricht/Zitat/Datei nicht vorhanden, gebe ID/Name des fehlenden Objekts aus
    • um die Zeit-Konsistenz beizubehalten, wird "created_at" anstatt "posted_at" als Timestamp benutzt (passt besser, besonders bei Umfragen)
    • wenn Nachricht einen Geändert-Timestamp besitzt, diese Info mit ausgeben
    • benutze Timestamp als MouseOver-Text bei Status-Nachrichten
    • bei Zitaten immer einen Absender benutzen
    • kleine Formatierungs- und Anzeige-Korrekturen bei Umfragen
    • allgemein ein paar Änderungen am Nachrichten-Design in der HTML-Datei
    • noch mehr Anzeigen bei Scriptausführung (u.a. eine Progress-Bar!)
    • Thumbnail-Datei wird nun nicht mehr gelöscht, wenn die originale Datei gefunden wurde
    • den Start des Script unter die Funktionen verschoben (Vorbereitung für spätere Dinge)

    Der Link zum Script steht auf der ersten Seite dieses Threads.


    Ein paar Hintergründe zu den benutzerdefinierten Optionen:

    Bisher wurden die Threema-IDs bei Gruppen-Chats immer mit ausgegeben. Soweit, so gut. Allerdings finde ich es manchmal "schicker", diese nicht mit auszugeben.

    Dafür finde ich es besser, bei Gruppen-Chats auch bei den eigenen Nachrichten den Absender auszugeben. Da dieser (eigener Name + eigene Threema-ID) aber nirgendwo im Threema-Backup zu erfahren ist, blieb mir erst mal nur übrig, diese Infos "hardcodiert" ins Script zu schreiben.

    Und da ich schon mal dabei war... Ich finde es auch "schicker", in 1:1-Chats die Absender mit auszugeben. Einfach der Vollständigkeit halber.

    Da dies aber nur meine Meinung ist, habe ich diese Möglichkeiten optional gestaltet. Jeder, wie er möchte...


    Noch ein Tipp:

    Um eine HTML-Datei erneut zu erzeugen, muss nur noch die *.csv-Datei eine Ebene höher verschoben werden. Die Medien-Dateien, die schon in dem entsprechenden Medien-Verzeichnis stehen, können dort bleiben und werden dort gefunden (da nach dem neuen Zitat-System die evtl. zitierten Dateien ja schon verschoben wurden, sucht das Script diese nun auch in dem Medien-Verzeichnis :thumbup:).

    Grüße

  • Update 28.11.2023 - Version 1.4

    Wieder ein paar (kleine) Änderungen.

    Changelog v1.4
    • neue benutzerdefinierte Option hinzugefügt: Klick auf Zitat-Nachricht springt zur zitierten Nachricht
    • URLs in Nachrichten werden nun als klickbare Links ausgegeben
    • Umfrage-Beginn und -Ende haben nun auch einen Absender

    Sodele...meine "Spieltrieb-"Motivation nimmt langsam ab. Ich denke, von der Funktionalität her ist alles wichtige abgedeckt(?).

    Es wird auf jeden Fall noch eine weitere Version geben, wo (u.a.) die benutzerdefinierten Optionen als Parameter direkt dem Script übergeben werden können.

    Danach...mal schauen :/.


    Grüße

  • Update 04.12.2023 - Version 2.0

    Wie angedroht: ein neues Update! Eine neue Funktion, zwei neue Befehle, Parameterübergabe und ein paar Bugfixes. Ich denke, das ist dann schon mal eine Version 2.0 wert 8).

    Changelog v2.0
    • Message-Stati (Daumen hoch, Daumen runter) bei Gruppen-Chats hinzugefügt
    • zwei neue Befehle ("ListContacts" und "ListGroups") hinzugefügt, um die Dateinamen der Chats zu bestimmen
    • Parameterübergabe für benutzerdefinierte Optionen (yeah!)
    • zwei benutzerdefinierte Optionen in eine neue zusammengelegt und eine umbenannt
    • Hilfe-Funktion und -Text hinzugefügt
    • bugfix: Links in Zitaten nicht mehr doppelt umwandeln
    • bugfix: Umwandlung in echte Links: \s hat gefehlt
    • bugfix: "VOICEMESSAGE" ist zwar alt, hat aber gefehlt

    Details zu den Befehlen und den Parametern und ihrer Übergabe an das Script gibt es auf der Projekt-Seite des Scripts (Link im ersten Beitrag dieses Threads) - oder mit dem Befehl "Help" an das Script ;).

    Das Script kann weiterhin mit alten und neuen Backups umgehen. Ich habe das Script mit einem Backup aus 2020 und mit neueren aus 2023 malträtiert. Soweit scheint bei mir alles zu funktionieren. Ich hoffe, bei euch auch :thumbup:.

    Keine Ahnung, wann und ob eine nächste Version von mir kommt... vielleicht, wenn Threema das Datenbankformat wieder ändert =O!? mal sehen...

    Grüße

  • Update 13.12.2023 - Version 2.1

    Einen habe ich dann doch noch ;)...

    Ich bekam einen Hinweis einer sehr netten Nutzerin, daß VoIP-Anrufe über Threema in den HTML-Dateien nicht abgebildet werden. Stimmt (D'oh!). Und wenn wir schon dabei sind - die (neuerdings) funktionierenden Gruppenanrufe übrigens auch nicht. Also flugs mal beide Funktionen eingebaut 8). Sie gewinnen vielleicht keine Umsetzungs- oder Design-Preise, aber sie funktionieren...

    Changelog v2.1
    • VoIP-Anrufe in 1:1-Chats hinzugefügt
    • Gruppenanrufe hinzugefügt
    • die *.csv-Datei wird in den Medienordner kopiert und nicht mehr verschoben (so kann man mehrere Durchläufe machen, ohne ständig Dateien hin-und-her verschieben zu müssen)


    Grüße