Récupérer conversations SMS dans Libre Office ?

Ami age Membre non connecté
-
- Voir le profil du membre Ami age
- Inscrit le : 18/08/2012
- Site internet
- Groupes :
-
Modérateur
Reprise du message précédent
reste à point à améliorer, il y a 2 valeurs date, et elles sont en secondes depuis le 1/1/1970.Je peux faire la converstion dans calc, mais ça serait plus simple que celà soit fait dans le script,
mais quand je redemande à chat gpt, il me refait un autre script différent,
A suivre.
_______________________________________________________________________

___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.



___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.

Ami age Membre non connecté
-
- Voir le profil du membre Ami age
- Inscrit le : 18/08/2012
- Site internet
- Groupes :
-
Modérateur
Code TEXT :
#!/bin/bash # Vérifier si le fichier messages.ndjson existe if [ ! -f messages.ndjson ]; then echo "Le fichier messages.ndjson n'existe pas" exit 1 fi # Créer le fichier csv avec les entêtes de colonnes echo '"Id","Quand","Numéro","Qui","Message"' > messages.csv # Parcourir le fichier messages.ndjson ligne par ligne cat messages.ndjson | while read line; do # Extraire les valeurs des rubriques nécessaires id=$(echo "$line" | grep -Po '(?<=_id":")[^"]+') date=$(echo "$line" | grep -Po '(?<=date":")[^"]+') date_formatted=$(date -d @$(($date / 1000)) +"%Y %m %d %H:%M:%S") from=$(echo "$line" | grep -Po '(?<=address":")[^"]+') __display_name=$(echo "$line" | grep -Po '(?<=__display_name":")[^"]+') message=$(echo "$line" | grep -Po '(?<=body":")[^"]+') # Ajouter les valeurs extraites dans le fichier CSV echo "\"$id\",\"$date_formatted\",\"$from\",\"$__display_name\",\"$message\"" >> messages.csv done echo "Conversion terminée, le fichier CSV messages.csv a été généré avec succès"
Il reste encore à extraire le code envoyé ou reçu, ca c'est facile, j'en ai pas pour long.
La requête id avec le numéro de message est pas au point, car d'autres champs se termine par ID et ça capture d'autres valeurs dans cette colonne, mais c'est pas vraiment génant.
Je verrais ça demain.
ensuite, il faudra passer en niveau 2, le traitement des photos associées !
Édité par Ami age Le 23/04/2024 à 19h47
_______________________________________________________________________

___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.



___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.

Ami age Membre non connecté
-
- Voir le profil du membre Ami age
- Inscrit le : 18/08/2012
- Site internet
- Groupes :
-
Modérateur
voilà le résultat dans libre office :

Avec le filtre sur la personne, on peut suivre une convesrsation.
Faire une recherche dans tous les messages,
c'est très pratique.
Code TEXT :
#!/bin/bash # Vérifier si le fichier messages.ndjson existe if [ ! -f messages.ndjson ]; then echo "Le fichier messages.ndjson n'existe pas" exit 1 fi # Créer le fichier csv avec les entêtes de colonnes echo '"Id","Quand","Numéro","Qui","Envoyé-Reçu","Message"' > messages.csv # Parcourir le fichier messages.ndjson ligne par ligne cat messages.ndjson | while read line; do # Extraire les valeurs des rubriques nécessaires id=$(echo "$line" | grep -Po '(?<=_id":")[^"]+') date=$(echo "$line" | grep -Po '(?<=date":")[^"]+') date_formatted=$(date -d @$(($date / 1000)) +"%Y %m %d %H:%M:%S") from=$(echo "$line" | grep -Po '(?<=address":")[^"]+') __display_name=$(echo "$line" | grep -Po '(?<=__display_name":")[^"]+') type=$(echo "$line" | grep -Po '(?<=type":")[^"]+') message=$(echo "$line" | grep -Po '(?<=body":")[^"]+') # Ajouter les valeurs extraites dans le fichier CSV echo "\"$id\",\"$date_formatted\",\"$from\",\"$__display_name\",\"$type\",\"$message\"" >> messages.csv done echo "Conversion terminée, le fichier CSV messages.csv a été généré avec succès"
Il demeure un problème, le contenu des messages est tronqué à la première guillemet !
dans cette ligne :
message=$(echo "$line" | grep -Po '(?<=body":")[^"]+')
Édité par Ami age Le 26/04/2024 à 10h23
_______________________________________________________________________

___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.



___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.

Ami age Membre non connecté
-
- Voir le profil du membre Ami age
- Inscrit le : 18/08/2012
- Site internet
- Groupes :
-
Modérateur
je ne m'en sors pas pour avoir un résultat qui prends bien en compte Tout le contenu d'un message.
en effet, le script est perturbé par les carractères spéciaux (au moins les ") dans le corps de messages.
au départ, donc un fichier texte text dont la première ligne est
{"_id":"4636","thread_id":"29","address":"33600000000","date":"1711867093387","date_sent":"1711867090000","read":"1","status":"-1","type":"1","body":"ceci est le contenu du message que je viens d'anonymiser ","locked":"0","sub_id":"2","error_code":"-1","creator":"foundation.e.message","seen":"1"}
soit "nom rubrique1": "valeur rubrique1", "nom rubrique2": "valeur rubrique2", ...................
il faudrait mettre dans la varialble message de cette ligne :
message=$(echo "$line" | grep -Po '(?<=body":")[^"]+')
tous ce qui est entre "body":" et ","locked"
Édité par Ami age Le 26/04/2024 à 10h27
_______________________________________________________________________

___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.



___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.

Ami age Membre non connecté
-
- Voir le profil du membre Ami age
- Inscrit le : 18/08/2012
- Site internet
- Groupes :
-
Modérateur
message=$(echo "$line" | awk -F'"body":"|","locked"' '{print $2}')
mais j'ai toujours des messages qui apparaisent en 3 cases cotes à cotes dans libres office, et pas tout dans la même case ou même champs csv.
Édité par Ami age Le 26/04/2024 à 10h51
_______________________________________________________________________

___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.



___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.

Ami age Membre non connecté
-
- Voir le profil du membre Ami age
- Inscrit le : 18/08/2012
- Site internet
- Groupes :
-
Modérateur
_______________________________________________________________________

___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.



___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.

Ami age Membre non connecté
-
- Voir le profil du membre Ami age
- Inscrit le : 18/08/2012
- Site internet
- Groupes :
-
Modérateur
Code TEXT :
#!/bin/bash # Vérifier si le fichier messages.ndjson existe if [ ! -f messages.ndjson ]; then echo "Le fichier messages.ndjson n'existe pas" exit 1 fi # Créer le fichier csv avec les entêtes de colonnes echo -e "Id\tQuand\tNuméro\tQui\tEnvoyé-Reçu\tMessage" > messages.csv # Parcourir le fichier messages.ndjson ligne par ligne cat messages.ndjson | while read line; do # Extraire les valeurs des rubriques nécessaires id=$(echo "$line" | grep -Po '(?<=_id":")[^"]+') date=$(echo "$line" | grep -Po '(?<=date":")[^"]+') date_formatted=$(date -d @$(($date / 1000)) +"%Y %m %d %H:%M:%S") from=$(echo "$line" | grep -Po '(?<=address":")[^"]+') __display_name=$(echo "$line" | grep -Po '(?<=__display_name":")[^"]+') type=$(echo "$line" | grep -Po '(?<=type":")[^"]+') message=$(echo "$line" | awk -F'"body":"|","locked"' '{print $2}') # Ajouter les valeurs extraites dans le fichier CSV en utilisant des tabulations comme séparateurs echo -e "$id\t$date_formatted\t$from\t$__display_name\t$type\t$message" >> messages.csv done echo "Conversion terminée, le fichier CSV messages.csv a été généré avec succès"
_______________________________________________________________________

___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.



___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.

Ami age Membre non connecté
-
- Voir le profil du membre Ami age
- Inscrit le : 18/08/2012
- Site internet
- Groupes :
-
Modérateur
j'aurais mieux faire d'apprendre un peu le bash et l'instruction grep, j'aurais moins perdu mon temps :(
_______________________________________________________________________

___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.



___________________________________ Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie