🐍 Client Python#

Pré-requis

Si vous n’avez pas installĂ© de daemon, merci de suivre la section 🚀 Quickstart.

Avant de commencer, vérifiez bien que vous avez une instance du daemon Olvid qui tourne, avec une identité créée dessus, et une clé client valide pour vous connecter en utilisant cette identité.

Si vous souhaitez vérifier que votre daemon est fonctionnel et/ou récupérer une clé client perdue, utilisez la commande : docker compose run --rm cli key get

Installation#

Nous avons dĂ©veloppĂ© une librairie Python qui permet d’interagir facilement avec votre daemon. Elle est disponible Ă  l’installation avec la commande pip.

pip3 install olvid-bot

Astuce

Le module olvid-bot nĂ©cessite une version de Python supĂ©rieure ou Ă©gale Ă  3.10. Sur Mac OS, nous vous conseillons d’utiliser HomeBrew pour installer une version plus rĂ©cente.

brew install python3

Configuration#

Pour vous connecter au daemon, votre programme a besoin d’une clĂ© client. Cette clĂ© peut ĂȘtre passĂ©e Ă  votre programme en utilisant soit une variable d’environnement, soit un fichier .env.

Fichier .env

CrĂ©ez un fichier .env en utilisant la commande suivante. Rappelez-vous que ce fichier doit ĂȘtre dans le rĂ©pertoire courant lorsque vous lancez votre programme.

echo OLVID_CLIENT_KEY=ReplaceWithYourClientKey > .env
Variable d’environnement

Il est Ă©galement possible d’exporter votre clĂ© en tant que variable d’environnement. Dans ce cas, il faut penser Ă  l’exporter Ă  chaque nouvelle session shell.

export OLVID_CLIENT_KEY=ReplaceWithYourClientKey

Premier programme#

Afin de vérifier que tout fonctionne correctement, vous pouvez copier/coller ce programme dans un fichier main.py.

import asyncio
from olvid import OlvidClient

async def main():
    client = OlvidClient()
    print((await client.identity_get()).display_name)

asyncio.set_event_loop(asyncio.new_event_loop())
asyncio.get_event_loop().run_until_complete(main())

Vous pouvez ensuite l’exĂ©cuter Ă  l’aide de l’interprĂ©teur Python.

python3 main.py

Si tout a bien Ă©tĂ© configurĂ©, vous devriez voir s’afficher le nom d’usage de l’identitĂ© que vous avez créée sur le daemon.

Sinon, rendez-vous dans notre section đŸ‘©â€đŸ”§ DĂ©pannage.

Premier Bot#

Pour commencer Ă  coder votre premier bot, vous pouvez partir de l’exemple suivant. Il se contente de rĂ©pondre Ă  chaque message avec le mĂȘme message, mais il peut facilement ĂȘtre modifiĂ© et amĂ©liorĂ©.

import asyncio
from olvid import OlvidClient, datatypes, tools

class EchoBot(OlvidClient):
    async def on_message_received(self, message: datatypes.Message):
        await message.reply(message.body)

    async def on_discussion_new(self, discussion: datatypes.Discussion):
        await discussion.post_message("Hello 👋")

async def main():
    bot = EchoBot()
    tools.AutoInvitationBot()  # automatically accept presentation and group invitations
    await bot.run_forever()

asyncio.set_event_loop(asyncio.new_event_loop())
asyncio.get_event_loop().run_until_complete(main())

Et maintenant ?#

Pour en apprendre plus sur l’utilisation de notre librairie Python rendez-vous dans notre section đŸ‘©â€đŸ« Tutoriels. Sinon rendez-vous dans la section đŸŒ± Exemples pour dĂ©ployer des projets clĂ©s en main.