Welcome to Etherpad!
This pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!
Get involved with Etherpad at
http://etherpad.org
import irc.bot
import random
import time
import threading
import multiprocessing
global murders, lock
murders = []
def loop(bot):
while True:
time.sleep(60)
c = bot.connection
c.names(bot.channel)
def murder(channel, c, user, target):
global murders
murders.append(user)
c.privmsg(user, "I'm really glad we have this moment alone.")
time.sleep(5)
c.privmsg(user, '[ ' + target.capitalize() + ' has walked uncomfortably close to you. He is standing too close. ]')
time.sleep(5)
c.privmsg(user, '[ You feel the cold fingers of ' + target.capitalize() + ' wrap around your throat. ]')
time.sleep(5)
c.privmsg(user, '[ You you are being strangled by ' + target.capitalize() + '. ]')
time.sleep(10)
c.privmsg(user, '[ You can not breath. ]')
time.sleep(1)
c.privmsg(user, '[ ** GASP GASP!!! GARGLE!!! ** ]')
time.sleep(5)
c.privmsg(user, '[ You are dead. ]')
time.sleep(5)
c.notice(channel, user + " has been found dead. It looks like murder by strangulation.")
murders.remove(user)
class MurderBot(irc.bot.SingleServerIRCBot):
def __init__(self, channel, nickname, server, port=6667):
irc.bot.SingleServerIRCBot.__init__(self, [(server, port)], nickname, nickname)
self.channel = channel
def on_welcome(self, c, e):
print "Bot connected"
c.join(self.channel)
def on_privmsg(self, c, e):
print e.arguments[0]
global user, murders
if user in e.source:
if user not in murders:
t = threading.Thread(target=murder, args=(self.channel, c, user, e.target))
t.start()
elif "stop" in e.arguments[0].lower():
c.privmsg(user, "No. I'm not going to stop...until you are dead.")
elif "no" in e.arguments[0].lower():
c.privmsg(user, "Just let it happen.")
elif "ah" in e.arguments[0].lower() or "arg" in e.arguments[0].lower():
c.privmsg(user, "No one can hear you. We are alone.")
def on_pubmsg(self, c, e):
print e.target
print e.source
print e.arguments
def on_namreply(self, c, e):
global users, user
users = e.arguments[2].split()
user = users[random.randint(0,len(users) - 1)]
print "Murdering: " + user
c.privmsg(user, 'Hello! Are you there?')
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser(description='BashBot')
parser.add_argument('--host', default="localhost", help='host')
parser.add_argument('--port', type=int, default=6667, help='port')
parser.add_argument('channel', help='channel to join')
parser.add_argument('nickname', help='bot nickname')
args = parser.parse_args()
if not args.channel.startswith("#"):
args.channel = "#"+args.channel
bot = MurderBot(args.channel, args.nickname, args.host, args.port)
t = threading.Thread(target=loop, args=(bot,))
t.start()
bot.start()