From 7193bcb767860565499c210ddb6636eeaba47e07 Mon Sep 17 00:00:00 2001 From: jcao219 Date: Sat, 16 Jul 2011 15:57:29 -0500 Subject: [PATCH] added the ability to auto-nickserv-ghost or auto-nickserv-release --- botconfig.py | 7 +++++-- oyoyo/client.py | 8 ++++++-- wolfgame.py | 43 +++++++++++++++++++++++++++++++------------ 3 files changed, 42 insertions(+), 16 deletions(-) diff --git a/botconfig.py b/botconfig.py index ade7c39..3d032ff 100644 --- a/botconfig.py +++ b/botconfig.py @@ -1,6 +1,9 @@ PASS = "" -CHANNEL = "#example" +CHANNEL = "" HOST = "irc.freenode.net" PORT = 6667 NICK = "" -ADMINS = ("") +OWNER = "unaffiliated/wolfbot_admin1" +ADMINS = ("unaffiliated/wolfbot_admin1", "unaffiliated/wolfbot_admin2") +CMD_CHAR = "!" +CHANGING_HOST_QUIT_MESSAGE = "Changing host" \ No newline at end of file diff --git a/oyoyo/client.py b/oyoyo/client.py index f793c93..f34cb78 100644 --- a/oyoyo/client.py +++ b/oyoyo/client.py @@ -235,8 +235,12 @@ class IRCClient(object): self.send("NOTICE", user, ":{0}".format(line)) def quit(self, msg): self.send("QUIT :{0}".format(msg)) - def identify(self, passwd, authuser="NickServ"): - self.msg(authuser, "IDENTIFY {0}".format(passwd)) + def ns_identify(self, passwd): + self.msg("NickServ", "IDENTIFY {0} {1}".format(self.nickname, passwd)) + def ns_ghost(self): + self.msg("NickServ", "GHOST "+self.nickname) + def ns_release(self): + self.msg("NickServ", "RELEASE "+self.nickname) def user(self, uname, rname): self.send("USER", uname, self.host, self.host, rname or uname) diff --git a/wolfgame.py b/wolfgame.py index 1657254..c60f272 100644 --- a/wolfgame.py +++ b/wolfgame.py @@ -24,18 +24,36 @@ hook = decorators.generate(HOOKS, raw_nick=True) # Game Logic Begins: def connect_callback(cli): - cli.identify(botconfig.PASS) - cli.join(botconfig.CHANNEL) - cli.msg("ChanServ", "op "+botconfig.CHANNEL) - - var.USERS = [] - - @hook("whoreply") - def on_whoreply(cli, server, dunno, chan, dunno1, - cloak, dunno3, user, status, dunno4): - if user in var.USERS: return # Don't add someone who is already there - var.USERS.append(user) - cli.who(botconfig.CHANNEL) + cli.ns_identify(botconfig.PASS) + + def prepare_stuff(): + cli.join(botconfig.CHANNEL) + cli.msg("ChanServ", "op "+botconfig.CHANNEL) + + var.USERS = [] + + @hook("whoreply") + def on_whoreply(cli, server, dunno, chan, dunno1, + cloak, dunno3, user, status, dunno4): + if user in var.USERS: return # Don't add someone who is already there + var.USERS.append(user) + cli.who(botconfig.CHANNEL) + + @hook("nicknameinuse") + def mustghost(cli, *blah): + cli.nick(botconfig.NICK+"_") + cli.ns_identify(botconfig.PASS) + cli.ns_ghost() + cli.nick(botconfig.NICK) + prepare_stuff() + + @hook("unavailresource") + def mustrelease(cli, *blah): + cli.nick(botconfig.NICK+"_") + cli.ns_identify(botconfig.PASS) + cli.ns_release() + cli.nick(botconfig.NICK) + prepare_stuff() var.LAST_PING = 0 # time of last ping var.ROLES = {"person" : []} @@ -54,6 +72,7 @@ def connect_callback(cli): var.GRAVEYARD = [] var.GRAVEYARD_LOCK = threading.Lock() + prepare_stuff() def mass_mode(cli, md):