Skip to content
Extraits de code Groupes Projets
Valider 7943dd4d rédigé par Alexis DAMIENS's avatar Alexis DAMIENS
Parcourir les fichiers

Merge branch 'master' into 'develop'

Tests & Bugs corrections

See merge request !19
parents 10d3ebdd cdc52098
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!19Tests & Bugs corrections
*.pyc *.pyc
config.py
Fichier déplacé
Fichier déplacé
**TODO**
Rename config.py.dist into config.py and fill the parameters in order to customize which channels your bot should join
# -*- coding: utf-8 -*-
import re
class Regex_LG(object):
# Récupération du rôle du bot
@staticmethod
def getRole():
return re.compile(r'Ton role pour la partie sera : (\w+)')
""" IRC Channel configuration """
IRC_SERVER = "irc.iiens.net"
IRC_PORT = 6667
BOT_OWNER = "PUT_YOUR_NAME"
BOT_NAME = "PUT_A_NAME"
BOT_PWD = "PUT_A_PASSWORD"
BOT_DESC = "PUT_A_DESC"
TBOT_NAME = "PUT_A_NAME"
MAIN_CHANNEL = "#PUT_A_CHANNAME"
WOLF_CHANNEL = "#PUT_A_CHANNAME"
TRIG_CHANNEL = "#PUT_A_CHANNAME"
DEAD_CHANNEL = "#PUT_A_CHANNAME"
DEBUG_CHANNEL = "#PUT_A_CHANNAME"
Ce diff est replié.
# -*- coding: utf-8 -*-
from IRCLibs import irclib
from IRCLibs import ircbot
# Banque de regex pour le bot
from Tests.Regex_LG import Regex_LG as rlg
from multiprocessing import Process
from config import *
# Classe permettant d'ajouter des bots de test
class Dummy(ircbot.SingleServerIRCBot):
role = ""
name = ""
# Passer le nom du bot en paramètre
def __init__(self, name):
self.name = name
ircbot.SingleServerIRCBot.__init__(
self, [(IRC_SERVER, IRC_PORT)], name, "Bot de test LG", 5)
# Action lors du lancement
def on_welcome(self, serv, ev):
serv.join(MAIN_CHANNEL)
# Action lors d'une invitation, seule l'invitation sur WOLF_CHANNEL est validée
def on_invite(self, serv, ev):
if ev.arguments()[0] == WOLF_CHANNEL:
serv.join(WOLF_CHANNEL)
serv.privmsg(BOT_OWNER, "J'ai rejoint le camp des loups")
# Messages privés
def on_privmsg(self, serv, ev):
# Récupération de l'émetteur et du message
sender = ev.source().split("!")[0]
message = ev.arguments()[0]
# Cas envoi par propriétaire
if BOT_OWNER in sender:
# Mets fin au bot
if "!die" in message:
serv.privmsg(MAIN_CHANNEL, "C'est un bot qui sort d'un canal...")
self.die()
# Message à envoyer sur le canal principal
if "!say" in message:
serv.privmsg(MAIN_CHANNEL, " ".join(message.split(" ")[1:]))
if "!whisper" in message:
serv.privmsg(BOT_NAME, " ".join(message.split(" ")[1:]))
# Cas envoi par autre personne
elif BOT_NAME in sender:
# Récupération du rôle (1er message au bot de test)
if self.role == "":
self.role = rlg.getRole().match(message).group(1)
print self.name + " : " + self.role
serv.privmsg(BOT_OWNER, "< " + sender + "> " + message)
# Messages publics
def on_pubmsg(self, serv, ev):
# Récupération de l'émetteur, du canal et du message
sender = ev.source().split("!")[0]
message = ev.arguments()[0]
canal = ev.target()
# Cas envoi par propriétaire
if BOT_OWNER in sender and (WOLF_CHANNEL in canal or MAIN_CHANNEL in canal):
# Tout le monde MEURT
if "!die" in message:
serv.privmsg(MAIN_CHANNEL, "AAAAAH")
self.die()
# Tout le monde rejoint la partie
if "!newgame" in message:
serv.privmsg(MAIN_CHANNEL, "!join")
# Tout le monde vote pour un malheureux dans le bon canal
if "!vote" in message:
serv.privmsg(canal, message)
# Fin classe Dummy
if __name__ == '__main__':
p1 = Process(target=Dummy("Tinky_Winky").start)
p2 = Process(target=Dummy("Dipsy").start)
p3 = Process(target=Dummy("Laa-Laa").start)
p4 = Process(target=Dummy("Po").start)
p5 = Process(target=Dummy("Tiic").start)
p6 = Process(target=Dummy("Taac").start)
p1.start()
p2.start()
p3.start()
p4.start()
p5.start()
p6.start()
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter