Logo Khaganat

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:errbot [2018/04/29 22:02] – [Contrôle des ACL] /* doublon */ merlin8282fr:errbot [2021/12/03 19:19] (Version actuelle) – modification externe 127.0.0.1
Ligne 6: Ligne 6:
 Cet article détaille comment gérer un bot avec Errbot. Il vaut mieux installer Errbot sur un serveur afin que le bot soit présent en permanence ensuite.  Cet article détaille comment gérer un bot avec Errbot. Il vaut mieux installer Errbot sur un serveur afin que le bot soit présent en permanence ensuite. 
  
 +<WRAP center round info 60%>
 +Errbot répondait difficilement à certains de nos besoins tout en consommant un peu trop de mémoire à notre goût pour le peu qu'il faisait, nous ne l'avons pas gardé pour Khaganat, préférant une solution maison : [[fr:botlogmauve]].
 +</WRAP>
  
 ===== Installation ===== ===== Installation =====
Ligne 16: Ligne 19:
   rm /usr/bin/python   rm /usr/bin/python
   ln -s /usr/bin/python3 /usr/bin/python    ln -s /usr/bin/python3 /usr/bin/python 
-<WRAP center round important 60%>+
 Si vous avez des erreurs sur python lors d'une mise à jour du système, remettez le lien symbolique sur python2 le temps de faire la mise à jour. Si vous avez des erreurs sur python lors d'une mise à jour du système, remettez le lien symbolique sur python2 le temps de faire la mise à jour.
 +
 +Note : ce n'est pas bien de faire ça comme ça. Mais ça marche. 
 </WRAP> </WRAP>
 +
 +==== Via Pipenv ====
 +Pipenv est probablement la façon la plus propre de gérer les choses. L'installation sous Debian est cependant un peu baroque. 
 +
 +  sudo apt install python3-pip python3-requests
  
 Puis installez ''pipenv'', avec l'utilisateur (pas en root !) afin de ne pas casser le système : Puis installez ''pipenv'', avec l'utilisateur (pas en root !) afin de ne pas casser le système :
Ligne 26: Ligne 36:
 Source : http://sametmax.com/pipenv-solution-moderne-pour-remplacer-pip-et-virtualenv/ Source : http://sametmax.com/pipenv-solution-moderne-pour-remplacer-pip-et-virtualenv/
  
-Note : avec Debian, il faudra peut-être remplacer la simple commande ''pipenv'' par ''python -m pipenv''. Pourquoi faire simple ? +Note : avec Debian, il faudra remplacer la simple commande ''pipenv'' par ''python -m pipenv''. Pourquoi faire simple ? 
-</WRAP>+ 
 +On créé un dossier où errbot sera installé et on installe ses dépendances :
  
 <code> <code>
 mkdir -p "~/errbot" mkdir -p "~/errbot"
 ‎cd "~/errbot" ‎cd "~/errbot"
-‎pipenv install errbot +python -m pip install sleekxmpp pyasn1 pyasn1-modules --user 
-‎pipenv run errbot --init +python -m pipenv install errbot
 </code> </code>
 +<WRAP center round tip 100%>
 +Si vous avez des erreurs à ce stade, lisez bien ce qui est indiqué.
 +
 +Par exemple, sleekxmpp a un [[https://github.com/fritzy/SleekXMPP/issues/462|bug]], il faut installer une version précédente. Un problème de compatibilité a également été constaté avec les deux autres dépendances.
 +
 +La commande pour installer ces dépendances dans une version antérieure devient donc 
 +<code>python -m pipenv install sleekxmpp==1.3.1 pyasn1==0.3.7 pyasn1-modules==0.1.4</code>
 +
 +J'ai aussi eu droit à quelque chose qui se terminait de cette façon :
 +<code>You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.Hint: try $ pipenv lock --pre if it is a pre-release dependency
 +Could not find a version that matches pygments-markdown-lexer>=0.1.0.dev39
 +Tried: 0.1.0.dev39
 +There are incompatible versions in the resolved dependencies.
 +</code>
 +
 +Résolu en faisant ce qui était écrit :
 +<code>python -m pipenv install --skip-lock
 +python -m pipenv graph</code>
 +</WRAP>
 +
 +On peut enfin initialiser le premier lancement du bot :
 +<code>
 +‎python -m pipenv run errbot --init 
 +</code>
 +
 +==== Alternative sans pipenv ====
  
-Alternative sans pipenv 
 <code> <code>
 virtualenv --python $(which python3) ~/.errbot-ve virtualenv --python $(which python3) ~/.errbot-ve
Ligne 53: Ligne 89:
   pip install sleekxmpp pyasn1 pyasn1-modules   pip install sleekxmpp pyasn1 pyasn1-modules
  
-<WRAP center round tip 60%> +
-Actuellement, sleekxmpp a un [[https://github.com/fritzy/SleekXMPP/issues/462|bug]], il faut installer une version précédente. Un problème de compatibilité a également été constaté avec les deux autres dépendances. +
-  pip install sleekxmpp==1.3.1 pyasn1==0.3.7 pyasn1-modules==0.1.4 +
-</WRAP>+
  
  
Ligne 91: Ligne 124:
  
 # Liste des admins autorisées à modifier le bot en ligne # Liste des admins autorisées à modifier le bot en ligne
-BOT_ADMINS = ('zatalyz@movim.eu', )  +BOT_ADMINS = ('moi@xmppserver.com', )  
  
 #Install auto des dépendances des plugins #Install auto des dépendances des plugins
Ligne 101: Ligne 134:
 BOT_IDENTITY = { BOT_IDENTITY = {
  # XMPP  # XMPP
-    'username': 'erbaut@jabber.fr',  # The JID of the user you have created for the bot+    'username': 'bot@xmppserver.com',  # The JID of the user you have created for the bot
     'password': 'ACHANGER',      'password': 'ACHANGER', 
     }     }
  
-CHATROOM_PRESENCE = ('khanat@chat.khaganat.net','krypte@chat.khaganat.net',)+CHATROOM_PRESENCE = ('salon1@chat.xmppserver.com','salon2@chat.xmppserver.com',)
  
 # "nick" of the bot in the room # "nick" of the bot in the room
Ligne 121: Ligne 154:
 ACCESS_CONTROLS = { ACCESS_CONTROLS = {
     'say': {     'say': {
-        'allowrooms': ('khanat@chat.khaganat.net','krypte@chat.khaganat.net',), +        'allowrooms': ('salon1@chat.xmppserver.com','salon2@chat.xmppserver.com',), 
-        'denyusers':('zatalyz@jabber.fr',)+        'denyusers':('toi@xmppserver.com',)
     },     },
 } }
Ligne 172: Ligne 205:
 <WRAP center round tip 60%> <WRAP center round tip 60%>
 C'est probablement presque la bonne façon de faire, sauf que ça ne marche pas pour moi avec pipenv... C'est probablement presque la bonne façon de faire, sauf que ça ne marche pas pour moi avec pipenv...
- --- //[[wiki:user:zatalyz|zatalyz]] 2018/04/29 11:01//+ --- //[[user:zatalyz|zatalyz]] 2018/04/29 11:01//
 </WRAP> </WRAP>
  
Ligne 231: Ligne 264:
  
 Renseigner son identifiant jabber dans config.py Renseigner son identifiant jabber dans config.py
-  BOT_ADMINS = ('*@localhost','zatalyz@movim.eu',+  BOT_ADMINS = ('*@localhost','moi@xmppserver.com',
  
 Puis ajouter le bot à ses contacts, et initier la conversation depuis les contacts, pas depuis le salon, sinon il croit qu'on est le salon ! Pour vérifier comment il nous voit, il suffit de lui envoyer la commande "!whoami". C'est peut-etre lié au client jabber. Puis ajouter le bot à ses contacts, et initier la conversation depuis les contacts, pas depuis le salon, sinon il croit qu'on est le salon ! Pour vérifier comment il nous voit, il suffit de lui envoyer la commande "!whoami". C'est peut-etre lié au client jabber.
Ligne 273: Ligne 306:
 <code>ACCESS_CONTROLS = { <code>ACCESS_CONTROLS = {
     'say': {     'say': {
-        'allowrooms': ('khanat@chat.khaganat.net','krypte@chat.khaganat.net',),+        'allowrooms': ('salon1@chat.xmppserver.com','salon2@chat.xmppserver.com',),
     },     },
 }</code> }</code>
Ligne 283: Ligne 316:
  
 Par exemple : Par exemple :
-  !say krypte@chat.khaganat.net:hello +  !say salon1@chat.xmppserver.com:hello 
-  !say krypte@chat.khaganat.net:/me n'aime pas causer+  !say salon2@chat.xmppserver.com:/me n'aime pas causer
  
 Moralité, va falloir un plugin d'alias... Car c'est vraiment long à écrire. Moralité, va falloir un plugin d'alias... Car c'est vraiment long à écrire.
  
-Autre point de détail : par défaut le plugin est configuré pour que seuls les administratrices puissent utiliser "say"+Autre point de détail : par défaut le plugin est configuré pour que seules les administratrices puissent utiliser "say"
  
 Il faut modifier le fichier du plugin, dans votre dossier d'installation d'errbot (probablement ''errbot/data/plugins/log0ymxm/err-say/saybot.py'' et passer ''admin_only=True'' à ''admin_only=False''. Il faut modifier le fichier du plugin, dans votre dossier d'installation d'errbot (probablement ''errbot/data/plugins/log0ymxm/err-say/saybot.py'' et passer ''admin_only=True'' à ''admin_only=False''.
Ligne 296: Ligne 329:
 <code>ACCESS_CONTROLS = { <code>ACCESS_CONTROLS = {
     'say': {     'say': {
-        'allowrooms': ('khanat@chat.khaganat.net','krypte@chat.khaganat.net',), +        'allowrooms': ('salon1@chat.xmppserver.com','salon2@chat.xmppserver.com',), 
-        'allowusers': ('georgette@movim.eu','marcek@jabber.fr',),+        'allowusers': ('georgette@xmppserver.com','marcel@xmppserver.com',),
     },     },
 }</code> }</code>
Ligne 312: Ligne 345:
  
 Alias à créer Alias à créer
-  !alias add y say krypte@chat.khaganat.net+  !alias add y say salon1@chat.xmppserver.com
-  !alias add s say khanat@chat.khaganat.net:+  !alias add s say salon2@chat.xmppserver.com:
 Appel  Appel 
 !y message !y message
Ligne 341: Ligne 374:
   !rssreader add addresse_du_flux   !rssreader add addresse_du_flux
  
-Cela va associer une ID au flux (feeds).+Cela va associer une ID au flux (feed).
  
  
Ligne 358: Ligne 391:
  
  
-<code>!rssreader subscribe f0c0f2 khaganat@chat.khaganat.net</code>+<code>!rssreader subscribe f0c0f2 salon1@chat.xmppserver.com</code>
  
 Pour voir les abonnements de chaque canaux aux flux : Pour voir les abonnements de chaque canaux aux flux :
   !rssreader subscriptions   !rssreader subscriptions
  
-===== Logguer les salons (ressource externe) ===== +===== Loguer les salons (ressource externe) ===== 
-Linkmauve nous a créé de quoi loguer les canaux. Téléchargez le fichier [[https://git.khaganat.net/khaganat/BotLogMauve|log.py]]. +Linkmauve nous a créé de quoi loguer les canaux, mais c'est un autre bot, voir [[fr:botlogmauve]]. 
- +
-Il faut installer le module slixmpp. On en profite aussi pour faire un dossier où seront les logs et le fichier du bot. +
-   +
-  mkdir xmpplog +
-  cd xmpplog +
-  python -m pipenv install slixmpp +
- +
-Mettez "log.py" dans ce dossier "xmpplog". Les dossiers de logs se créeront automatiquement ici par la suite.  +
- +
-Sans pipenvle script prends les arguments de cette façon : +
-  ./log.py -j nom@server.com -p "mot_de_passe" -r salon1@chat.khaganat.net salon2@chat.khaganat.net -n Pseudo +
-   +
-Avec les options suivantes : +
-  * ''-j'' : le JID, donc nom d'utilisateur du bot +
-  * ''-p'' : mot de passe du compte (//password//), à mettre entre guillemet pour bien intérpréter s'il y a des espaces ou des tirets +
-  * ''-r'' : les divers salons (//room//), séparés par un espace +
-  * ''-n'' : le pseudo du bot (//nickname//), si c'est le même que celui donné à Errbot, il n'y aura qu'un seul bot visiblement connectémais les deux feront le job. +
- +
-Avec pipenv, la commande est +
-  python -m pipenv run python ./log.py -j nom@server.com -p "mot_de_passe" -r salon1@chat.khaganat.net salon2@chat.khaganat.net -n Pseudo +
-   +
-Oui c'est un peu long...  +
- +
-Si ça marche, on créé un service systemd dans ''/etc/systemd/system/botlogmauve.service''. Adaptez l'utilisateur, le groupe et les chemins. +
- +
-<code> +
-[Unit] +
-Description=Chat bot XMPP log +
-After=network.target network-online.target +
-  +
-[Service] +
-Type=simple +
-User=khaganat +
-Group=khaganat +
-WorkingDirectory=/home/khaganat/chatbot/xmpplogbot/ +
-ExecStart=python -m pipenv run python ./xmpplogbot.py -j nom@server.com -p "mot_de_passe" -r salon1@chat.khaganat.net salon2@chat.khaganat.net -n Pseudo +
-Restart=always +
-KillSignal=SIGINT +
-  +
-[Install] +
-WantedBy=multi-user.target +
-</code> +
- +
  
 {{tag> Tutoriel Bot Serveur IRC XMPP}} {{tag> Tutoriel Bot Serveur IRC XMPP}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/errbot.1525032174.txt.gz · Dernière modification : 2021/12/03 19:18 (modification externe)

Licences Mentions légales Accueil du site Contact