- Votre server mattermost doit être installé et fonctionnel
- Disposer des API Télegram ( https://core.telegram.org/api/obtaining_api_id )
- Diposer d'une clé Bearer Token mattermost ( https://docs.mattermost.com/developer/personal-access-tokens.html )
- Disposer de la version 3.7 de python
- Installation et configuration des packets
# Dans le cas des env Docker la commande ci-dessous vous permettra de vous connecter à votre docker
shell> docker exec -it -u 2000 mattermost-docker_app_1 /bin/sh
# mise à jour du système
shell> apt update
shell> apt upgrade
# Installation du multiversion de python
shell> update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
shell> update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2
shell> update-alternatives --install /usr/bin/python python /usr/bin/python3.7 3
shell> apt install python3-pip
shell> pip3 install telethon
# Choix du python par défault
shell> update-alternatives --config python
- Créer le ficher config.ini à la racine de votre dossier telegram-mattermost
shell> cd telegram-to-mattermost
shell> touch config.ini
# Ajouter le contenu ci-dessous dans votre fichier et le configurer
[Telegram]
# you can get telegram development credentials in telegram API Development Tools
api_id = xxxx-api_id
api_hash = xxxx-hash
bot_token = xxxx-token
media_files = media
limit = 10
total_count_limit = 25
[Mattermost]
url_server = https://team.domain.net/api
team = veone
bearer_token = xxxx-token
mattermost_cli = /mattermost/bin/mattermost
- Déploiement du script
shell> git clone https://git.veone.net/msounkere/telegram-to-mattermost.git
- Préparer le fichier de mapping des comptes utilisateurs sous le format ci-dessous (list.json)
shell> cd telegram-to-mattermost
shell> touch list.json
- Preparer le contenu comme ci-dessous et l'y ajouter
[
{
"firstname": "Firstname E.",
"lastname": "NAME FAMILY",
"email": "email@domaine.net",
"telegram": "username",
"mattermost": "username"
},
{
"firstname": "Firstname E.",
"lastname": "NAME FAMILY",
"email": "email@domaine.net",
"telegram": "username",
"mattermost": "username"
}
]
- Exécution du script
shell> cd telegram-to-mattermost
shell> python3 migrate.py --type channel --tlusername username --tlphone +225xxxxxxxx --tlchannel https://t.me/joinchat/xxxxxxxxxxxx --mmteam veone --mmchannel veone_xyx --dry-run
# Description des paramètres
usage: migrate.py [-h] [--type TYPE] [--tlusername TLUSERNAME]
[--tlphone TLPHONE] [--tlchannel TLCHANNEL]
[--tlchat TLCHAT] [--mmteam MMTEAM] [--mmchannel MMCHANNEL]
[--dry-run] [--force]
--tlusername : Compte telegram admin du channel à migrer
--tlphone : Numéro de phone telegram admin du channel à migrer
--dry-run : Permet de parcourir l\'ensemble de la migration sans aucune incidence sur Mattermost
--force : Supprime tous les fichiers téléchargés et force le retéléchargement
# NB : s'il s'agit d'un migration d'une conversation faire les actions suivantes :
--type chat
--tlchat username_du_correspondant
#Pour recuperer tout les chats d\un utilisateur utliser l\'option "--tchat All" la deduction des comptes à migrer se fera à partir du fichier list.json
#Ne pas pas specifier l\'option --mmteam elle sera déduite automatiquement de l\'email (voir config.ini)
Ex : python3 migrate.py --type chat --tlusername username --tlphone +225xxxxxxxx --tlchat All --dry-run
- Transférer les données dans Mattermost par le méthode BULK JSON
# NB : si la commande "mattermost" n'existe pas, pour terminer executer manuellement la commande ci-dessous
>>>> shell> /mattermost/bin/mattermost import bulk /home/msounkere/projects/telegram-to-mattermost/media/1192446106/mattermost_data.json --apply
Vous retrouverez toutes vos conversations dans Mattermost !!! NB : Tous les utilisateurs inconnus dans Télégram sont remplacés par un utilisateur Jhon DOE (jdoe)