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

Added test bots, corrected loving hunter death during the day

parent 10d3ebdd
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
*.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