3 votes

Importation des contacts Telegram dans le répertoire téléphonique - Android

J'ai un problème assez sérieux. J'ai perdu tous les numéros dans le répertoire téléphonique, en cassant la carte SIM, mais heureusement j'ai vu que la plupart d'entre eux sont stockés sur Telegram. J'ai essayé avec Telegram desktop d'exporter tous les contacts et l'opération a été réussie.
Maintenant, comment puis-je les mettre dans le répertoire téléphonique ? J'espère qu'il y a une solution, même en démarrant une nouvelle procédure à partir de zéro.

La solution ici ne fonctionne pas Synchroniser les contacts Telegram avec les contacts téléphoniques

4voto

basicEntity Points 91

Après avoir exporté tous les contacts avec Exportation des données Telegram, j'ai créé un script Python qui extrayait tous les contacts du site web généré.
Le script, positionné directement à l'intérieur du dossier Telegram Desktop, est le suivant :

#PREMIER DOSSIER À MODIFIER
cheminVersFichier = 'DataExport_08_12_2018 (2)/lists/contacts.html'

with open(cheminVersFichier, encoding='utf-8') as f:
    lignes = tuple(l for l in f.readlines())
    with open('csvAConvertir.csv', "w", encoding="utf-8") as fichierSortie:
        fichierSortie.write('nom, téléphone\n')
        for i,l in enumerate(lignes):
            if l.startswith('    

Remarquez que ce script est destiné aux numéros de téléphone italiens (notez les préfixes qui sont vérifiés dans certaines clauses if)!
Cependant, une fois que le dossier est modifié et que le script est exécuté, un fichier appelé csvAConvertir.csv est généré.
Ensuite, ce fichier doit être passé à un programme appelé CVS to VCard, qui se charge de convertir le fichier csv en fichier vcard.
Ensuite, une fois que le fichier vcard est généré, il suffit de l'importer dans les contacts Google (https://contacts.google.com/ > plus > importation), et le tour est joué ! Magiquement, vous trouverez tous les contacts dans le répertoire téléphonique de votre téléphone Android !

J'espère avoir été utile.

1voto

Martin Braun Points 170

La réponse de @Memmo est excellente et m'a mis dans la bonne direction. Cependant, le script ne fonctionne plus, car l'indentation change pour les exportations Telegram. De plus, je voulais une version qui fonctionne pour toutes les origines de pays. Mon CSV de sortie peut également être importé dans Google Contacts sans avoir besoin de le convertir en VCard. Voici ma version modifiée :

import re

pathToFile = 'lists/contacts.html'

with open(pathToFile, encoding='utf-8') as f:
    lines = tuple(l for l in f.readlines())
    with open('csvToConvert.csv', "w", encoding="utf-8") as outputFile:
        outputFile.write('Name,Group Membership,Phone 1 - Type,Phone 1 - Value\n')
        for i,l in enumerate(lines):
            if '

L'exportation des données peut être trouvée dans Telegram Desktop dans Paramètres > Avancé. Le script ci-dessus doit être situé dans le dossier d'exportation de données résultant et doit être exécuté avec Python3.

Ma dernière étape a été de fusionner les contacts en utilisant Fusion + sur mon mobile après la synchronisation, car le script va créer une entrée par numéro, pas par contact.

0voto

Jaakkonen Points 101

Vous pouvez exporter les contacts Telegram via l'application de bureau en allant dans Paramètres > Avancé > Exporter les données Telegram. Sélectionnez uniquement les contacts et exportez au format JSON.

Vous pouvez ensuite transformer cela en un fichier CSV au format Google Calendar en utilisant l'outil en ligne de commande jq.

jq '[
  # Renommer les champs au format CSV des Contacts Google et formater le numéro de téléphone commençant par 00 en +
  .contacts.list[] 
  | .phone_number |= sub("^00"; "+") 
  | .["Given Name"] = .first_name 
  | .["Family Name"] = .last_name 
  | del(.first_name, .last_name) 
  | .["Phone 1 - Type"] = "Mobile" 
  | .["Phone 1 - Value"] = .phone_number
  | del(.phone_number, .date, .date_unixtime)]
  # Convertir un tableau d'objets en CSV, depuis https://stackoverflow.com/a/71505734/13994822
  | (map(keys) | add | unique) as $cols
  | map(. as $row | $cols | map($row[.])) as $rows 
  | $cols, $rows[]
  | @csv' \
-r "Téléchargements/Telegram Desktop/DataExport_[DATE]/result.json" \
| tee contacts.csv

Ceci peut ensuite être importé sur Google Contacts via le bouton d'importation Symbole du bouton d'importation. À partir du 2023-05-15, ceci se trouve en haut à droite de l'interface de l'application.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X