IRCBridgeModule/fr

From OpenSimulator

Jump to: navigation, search


Configurer IRCBridgeModule

IRCBridgeModule vous permet de retransférer les discussions de votre région OpenSimulator vers un canal IRC et vice versa. Vous pouvez utiliser ce module pour

  • rendre le chat dans le monde disponible via une interface en mode texte comme IRC.
  • contrôler les objets depuis des canaux IRC
  • utiliser des objets dans le monde pour contrôler des bots connectés via IRC
  • ...

IRCBridge peut être utilisé dans trois modes :

  • en mode traditionnel où nous relayons toutes les discussions en ligne de toutes les régions vers un canal IRC unique sur un serveur unique, ou bien
  • en mode multi-canal mode où nous pouvons relayer le chat in-world d'une région spécifique vers un canal spécifique (ou même vers un serveur spécifique).
  • en mode objet relais de chat où nous ne relayons que les discussions vers et depuis les canaux privés du monde.

En plus, nous pouvons envoyer des commandes vers IRCBridge depuis des objets du monde pour reconfigurer IRCBridge

Mode traditionnel de l'IRCBridgee

Dans le mode traditionnel d'IRCBridge ("traditionnel" parce que c'était le IRCBridge original modus operandi) toutes les discussions d'avatars dans le monde de toutes les régions sont relayées à un canal de discussion IRC spécifique sur un serveur spécifique. La discussion d'un avatar est signalée par un robot IRC alimenté par OpenSimulator dans le canal IRC. Les discussions provenant du canal IRC sont signalées par la "voix de Dieu" dans toutes les régions (la voix de Dieu signifie que les avatars dans le monde "entendront" la discussion mais ne seront pas en mesure de voir l'auteur de la discussion dans la région).

Pour configurer IRCBridge pour un fonctionnement en mode traditionnel, utilisez la section de configuration suivante dans votre fichier OpenSim.ini (en la modifiant si nécessaire, bien sûr) :

[IRC]
enabled = true ; vous devez définir ce paramètre, sinon la connexion ne se fera pas.
server  = some.irc.server.net
nick    = OpenSimBot
user    = " UTILISATEUR OpenSimBot 8 * :Je suis un bot OpenSim sur IRC "
channel = #opensim
port = 6667
relay_chat = true
report_clients = true

commands_enabled = false
command_channel = 4711
access_password = WuffWuff

relay_private_channels = false
relay_private_channel_out = 4712
relay_private_channel_in = 4713


;fallback_region = name of "default" region
;MSGformat fields : 0=botnick, 1=user, 2=region, 3=message
; must start with "PRIVMSG {0} : " or irc server will get upset
;for <bot>:<user in region> :<message>
msgformat = "PRIVMSG {0} :<{1} in {2}>: {3}"
;for <bot>:<message> - <user of region> :
;msgformat = "PRIVMSG {0} : {1} [{2}]: {3}"
;for <bot>:<message> - from <user> :
;msgformat = "PRIVMSG {0} : {3} - from {1}"

Parcourons la liste des options de configuration :

Variable de configuration explication
enabled vous devez définir ce paramètre à "true" sinon le IRCBridgeModule ne sera pas activé
server le nom d'hôte du serveur IRC que vous comptez utiliser
nick le pseudo que IRCBridge utilisera pour se connecter au serveur IRC
channel le canal IRC auquel se connecter
port le port du serveur IRC auquel se connecter ; il s'agit généralement du port 6667.
relay_chat pour le mode traditionnel, vous devez mettre ce paramètre sur "true" pour relayer la discussion normale dans le monde.
report_clients si vous mettez ce paramètre à "true", alors IRCBridge notifiera le canal IRC chaque fois qu'un avatar se connecte, entre dans une région, quitte une région et se déconnecte.
msgformat sélectionnez le format de message que vous souhaitez que IRCBridge utilise pour relayer les messages du monde réel vers le canal IRC.
commands_enabled laisser en l'état pour le mode traditionnel
command_channel laisser en l'état pour le mode traditionnel
relay_private_channels laisser en l'état pour le mode traditionnel
relay_private_channel_in laisser en l'état pour le mode traditionnel
relay_private_channel_out laisser en l'état pour le mode traditionnel
access_password laisser en l'état pour le mode traditionnel

Mode multi-canal

Avec le mode multi-canal, nous pouvons configurer IRCBridge pour relayer le chat de différentes régions dans des canaux IRC différents - ou même même dans différents canaux IRC sur différents serveurs IRC !

L'extrait suivant du fichier de configuration OpenSim.ini configure IRCBridge pour relayer les discussions de la région A vers le canal IRC #opensin-A-opensim.server.net

channel = "#opensim-[%region]-[%host]"

Regardons de plus près ce qui se passe ici : IRCBridge nous permet d'appliquer la substitution de variables (un mécanisme assez puissant).

configuration explication
channel = “#OS” connectera toutes les régions au même canal ; plusieurs serveurs opensim spécifiant ce même nom partageront le canal.
channel = “#OS[%host]” connectera toutes les régions d'un serveur opensim particulier au canal nommé; plusieurs hôtes spécifiant ce même modèle seront chacun connecté à un canal unique dérivé du nom de l'hôte
channel = “#OS[%region]” Chaque région sera connectée à un canal dérivé du nom de la région; en fait, toutes les régions seront connectées à un canal unique ; Si deux serveurs opensim utilisent une région portant le même nom identique, alors ces régions partageront le canal
channel = “#OS[%host]-[%region]” Chaque combinaison serveur-région sera connectée à un canal unique; cela offre la meilleure garantie d'un nom unique sur l'ensemble de l'internet.
channel = “#OS[%region][%k]” cette configuration permet de distinguer les activations consécutives de la même région en apposant un numéro unique à la fin du nom.

Dans tous ces exemples, les crochets sont éliminés par le processus de substitution. Le préfixe '%' indique qu'il s'agit d'une variable d'exécution. Une valeur entre crochets et non précédée de '%' indique que la valeur peut avoir été fournie comme valeur dans la configuration de l'IRC ini. Par exemple, le mécanisme existant pour nommer le canal pourrait être rendu inutilement compliqué en spécifiant :

channel   = “[channelid]”
channelid = “#my-irc-channel”

Le processus de substitution est exhaustif, ainsi un nom de variable de configuration peut être construit à partir de valeurs d'exécution.

Pour illustrer cela, supposons que le fichier .ini contient :

channel = “[#[%region]]”
#brief1 = “#chatter-1”
#brief2 = “#chatter-2”

Alors la région brief1 sera connectée au canal #chatter-1, brief2 sera connectée à #chatter-2, et toutes les autres régions seront connectées à des canaux dont le nom est identique à celui de leur région. Il s'agit d'un exemple trivial, mais il prend tout son sens lorsque l'on considère tous les autres paramètres qui doivent être uniques par région (serveur, port, etc.). En utilisant ce mécanisme, nous pouvons créer un fichier ini qui a des paramètres uniques pour tous les aspects d'IRC pour chaque région.

Les paramètres suivants sont disponibles pour ce processus :

variable explication
 %host nom d'hôte externe associé à une région
 %region nom de la région
 %locX Coordonnée X de la région.
 %locY Coordonnée Y de la région.
 %master1 Prénom de l'avatar maître
 %master2 Nom de l'avatar maître
 %k Un numéro unique attribué à cette région, par exemple "0".

Enfin, un exemple plus complet d'un fichier de configuration. supposons que nous avons deux régions, Wonky et Borked :

channel    = “[%region]”
server     = “[[%region]-server]”
port       = “[[%region]-port]”
nick       = “[[%region]-nick]”

Wonky-server = irc1.server.org
Wonky-port   = 1234
Wonky-nick   = WonkyBot

Borked-server = irc2.anotherserver.net
Borked-port   = 1234
Borked-nick   = BorkedBot

La région Wonky se connectera au canal IRC #Wonky via le port 1234 du serveur IRC irc1.server.org et IRCBridge apparaîtra comme WonkyBot. Notre région Borked se connectera au canal IRC #Borked via le port 1234 du serveur IRC irc2.anotherserver.net en utilisant le surnom BorkedBot.

Mode de relais de chat par un objet

En mode relais de chat par un objet, IRCBridge relaie les messages de et vers les canaux du monde.

Pour configurer IRCBridge pour ce mode vous devez utiliser la configuration suivante :

[IRC]
enabled = true ; vous devez définir ce paramètre, sinon la connexion ne se fera pas.
server  = some.irc.server.net
nick    = OpenSinBot
channel = #opensin
port = 6667
relay_chat = false
report_clients = false

commands_enabled = false
command_channel = 4711

relay_private_channels = true
relay_private_channel_out = 4712
relay_private_channel_in = 4713

access_password = WuffWuff

;fallback_region = name of "default" region
;MSGformat fields : 0=botnick, 1=user, 2=region, 3=message
; must start with "PRIVMSG {0} : " or irc server will get upset
;for <bot>:<user in region> :<message>
msgformat = "PRIVMSG {0} :<{1} in {2}>: {3}"
;for <bot>:<message> - <user of region> :
;msgformat = "PRIVMSG {0} : {1} [{2}]: {3}"
;for <bot>:<message> - from <user> :
;msgformat = "PRIVMSG {0} : {3} - from {1}"

Les variables de configuration importantes ici sont :

variable de configuration explication
relay_chat doit être désactivé (enfin, vous pouvez le garder activé si vos objets dans le monde sont silencieux et ne répètent pas ce qu'ils ont entendu)
report_clients n'a pas vraiment de sens si vous avez désactivé relay_chat
relay_private_channels doit être défini comme " true "
relay_private_channel_in Tout le trafic du canal IRC sera envoyé sur ce canal privé dans le monde.
relay_private_channel_out toutes les discussions sur ce canal privé dans le monde sont relayées sur le canal IRC.
access_password définissez ce mot de passe comme celui de votre choix

Vos objets dans le monde doivent alors utiliser du code LSL conformément aux lignes suivantes :

	llSay(command_channel, “access_password,from,message”);

pour envoyer des messages sur le canal IRC.

Configuration dans le monde

La dernière fonctionnalité qui mérite d'être mentionnée est que vous pouvez contrôler le IRCBridge depuis le monde en envoyant des commandes sur un canal de commande spécifique.

Pour activer cette fonction, vous devez suivre les instructions de configuration suivantes :

commands_enabled = true
command_channel = 4711
variable de configuration explication
commands_enabled doit être " true " (vrai)
command_channel définissez ce paramètre comme le numéro du canal privé dans le monde que vous souhaitez utiliser.

IRCBridgecomprend les commandes suivantes:

variable de configuration explication
server hostname remplacer hostname par le nom d'hôte du serveur IRC
port port-number remplacer port-number par le port utilisé pour se connecter au serveur IRC
channel channel-name remplacer "channel-name" par le nom du canal utilisé
nick new-nick remplacer new-nick par le pseudo utilisé
false activer les rapports sur les clients
in-channel channel-number changer relay_private_channel_in en channel-number
out-channel channel-number changer relay_private_channel_out en channel-number
close fermer la connexion IRC
connect ouvrir la connexion IRC
reconnect fermer et rouvrir la connexion IRC

Méthode irc_admin XmlRpc

IRCBridge prend en charge une méthode XmlRpc qui vous permet d'obtenir la configuration IRCBridge pour une région spécifique. Pour activer cette méthode, vous devez activer le module [RemoteAdmin]. irc_admin attend deux paramètres:

paramètre explication
password le mot de passe de RemoteAdmin
region le nom de la région pour laquelle vous souhaitez configurer l'IRC.

cela retournera

paramètre explication
server le nom du serveur
port le nom du port
user le nom d'utilisateur IRC utilisé
channel le nom du canal utilisé
enabled si le relais IRC est activé ou non
connected si le relais IRC est connecté ou non
nickname le pseudo actuel

voici un exemple de code python montrant comment invoquer irc_admin :

import xmlrpclib
s = xmlrpclib.Server('http://opensim.zurich.ibm.com:9000/admin')
print s.irc_admin(dict(password = 'c00lstuff', region = 'zurela'))

      {'channel': '#opensim-lotus3d-zurela-opensim.zurich.ibm.com',
       'connected': True,
       'enabled': True,
       'nickname': 'lotus3dbot66',
       'port': '',
       'server': 'zurich.irc.ibm.com',
       'success': True,
       'user': "USER OpenSimBot 8 * :I'm an OpenSimulator to IRC bot"}
Personal tools
General
About This Wiki