1. Introduction

Dans les discussions via internet les moins sérieuses, il est souvent de bon ton d’envoyer des images et des GIFs animés en réaction ou en réponse à un message. Le plus souvent, ces réactions sont basées sur des "memes", des blagues correspondant à une référence commune à beaucoup d'internautes. Il pourrait être intéressant d’avoir également une possibilité d’envoyer des sons comme réactions à des messages. En effet, cela permettrait d'avoir une alternative aux gifs et aux images. De plus, l'envoi de fichiers audio possède un avantage certain sur l'envoi de vidéos, en effet, les destinataires du fichiers connaissent la référence de l'audio envoyé, l'image n'est pas nécessaire pour se représenter mentalement la vidéo qui l'accompagne d'habitude.

La principale difficulté de ce projet sera de comprendre comment marche l'interface de programmation de bot créée par les développeurs de l'application que j'ai choisi d'utiliser (en l'occurence "Telegram"), afin de l'apprivoiser et de pouvoir en tirer tout son potentiel. Je souhaite créer un bot (un compte de messagerie géré par un code informatique) qui permettrait d’envoyer des sons sur une discussion de groupe, sur commande de l’utilisateur via ses messages privés avec le bot. Le but principal de ce projet, plus que de faire un rassemblement gigantesque de sons tirés de "memes", est de créer un bot utilisable facilement pour envoyer des sons que j'aurai prédéfinis. Le concept marcherait ainsi: on ajoute le bot à une discussion de groupe. À partir de là, on peut envoyer des commandes au bot, par message privés ou sur le groupe de discussion en question, et le bot les interprètera et enverra le son souhaité dans la discussion souhaitée.

2. Matériel et méthodes

2.1 Matériel

  1. Un ordinateur avec une connexion à internet (de préférence tournant sur un OS dérivé d'Unix, ou équipé d'une machine virtuelle, par exemple VirtualBox (1), utilisant un OS adéquat, par exemple Ubuntu (2))
  2. L’application Telegram, en étant titulaire d'un compte utilisateur (3)
  3. La librairie permettant d’avoir une interface python sur l'API de programmation de bot de Telegram(4)
  4. Python 3 (5)

2.2 Méthode

Premièrement, j'ai choisi d'utiliser Telegram comme service de messagerie instantanée, et ce pour plusieurs raisons: premièrement, c'est un système de messagerie populaire dans le monde entier, réputé comme étant assez sécurisé, car utilisant des systèmes de cryptographie symétrique pour chiffrer les messages (même si ceux-ci sont stockés sur les serveurs de Telegram). De plus, cette application utilise une interface de programmation (API) de bots créée exprès pour par les développeurs de Telegram. De plus, il existe une librairie Python permettant de coder ces bots directement dans ce langage, puis la librairie se charge de rendre le code compréhensible par l'API.
Tout d'abord, il faut envoyer un message sur Telegram au "Botfather", pour pouvoir créer son bot ainsi que récupérer le "token" qui lui est associé. Celui-ci permettra de contrôler le bot avec un simple fichier python et la librairie adéquate. Ensuite, il faut engager la discussion avec "Manybot", afin de configurer le nom et la description du bot. Pour la suite, il s'agit de coder le bot, qui fonctionne ainsi: le bot va effectuer une action précise ("def") quand il reçoit un message et qu'il perçoit une commande qu'il connaît ("CommandHandler"). En l'occurrence, je lui demande d'envoyer un fichier audio précis lié à la commande (le code est disponible sur le Git).

3. Résultats

Au final, le bot fonctionne, il peut envoyer des sons sur commande dans un chat de groupe photo_2018-05-15_07-08-30.jpg (Ici, un exemple de l'utilisation du bot fonctionnel sur le groupe de discussion des élèves de l'option complémentaire informatique du Gymnase Provence)

4. Discussion

Il est important de relever plusieurs éléments: Premièrement, je n'ai pas réussi à implémenter de fonction permettant de demander en message privé au bot d'envoyer le son sur une discussion de groupe. Cela est réalisable avec l'API de bots de Telegram, mais relativement complexe à mettre en place. De plus, avec le recul, je doute de l'utilité d'une telle fonction. Une fonction supplémentaire aurait été un outil d'ajout de sons dans la banque de données du bot, toutefois, cela veut dire créer un code de bot évolutif en fonction des requêtes de l'utilisateur, et l'ouverture d'un espace de stockage ou l'utilisateur pourrait stocker ce qu'il veut tant que le fichier porte une extension ".mp3". Ces deux aspects font que cette fonction pourrait se révéler comme ayant des conséquences chaotiques (stockage de fichiers illicites, bourrage de l'espace de stockage, failles dans le code, etc...). Un autre défaut, propre au bot, et qui d'ailleurs n'est peut-être pas un défaut mais plus une propriété inhérentes aux bots, est que le serveur doit faire tourner en permanence le programme pour que le bot soit actif, ce qui veut donc dire une certaine consommation d'énergie. On pourrait toutefois vouloir améliorer le système de stockage des bruitages à l'aide d'une base de données. Ce qui simplifierait probablement la façon dont les sons sont enregistrés et envoyés.

Toutefois, ce TP m'a apporté beaucoup: je me suis familiarisé avec le langage python, j'ai du travailler sous la pression du temps de manière efficiente (avec plus ou moins de succès), et j'ai enfin compris comment fonctionnaient le protocole ssh, git, et certains aspects des file systems accessibles en ligne.

5. Conclusion

En conclusion, on voit que les objectifs de base (créer un bot envoyant des sons via Telegram), est atteint. Il manque cependant quelques fonctions qui auraient pu être utiles, comme l'ajout de sons, et la possibilité de demander au bot d'envoyer le son sur un autre chat que celui ou la commande est ordonnée.

Au final, ce bot est une ébauche d'un outil qui pourrait se révéler fort utile aux farceurs du dimanche, s'il était équipé de quelques fonctions supplémentaires. Avec un système de base de données, on pourrait imaginer comme extension de ce projet une énorme banque de "memes internet" accessible à tous les utilisateurs de Telegram, qui pourraient les envoyer à leur gré dans les conversations qu'ils veulent.

Références

(1)https://www.virtualbox.org/wiki/Downloads

(2)https://www.ubuntu.com/download/desktop

(3)https://telegram.org/apps

(4)https://github.com/python-telegram-bot/python-telegram-bot

(5)https://www.python.org/downloads/