From e6acc60343ae3e24b52225f4b69177c2be1570a5 Mon Sep 17 00:00:00 2001 From: neersighted Date: Tue, 28 Feb 2012 15:02:44 -0800 Subject: [PATCH] added autorejoin, fixed bug --- core/config.py | 1 + plugins/misc.py | 51 +++++++++++++++++++------------------------------ 2 files changed, 21 insertions(+), 31 deletions(-) diff --git a/core/config.py b/core/config.py index 1f52dbf..3a29a57 100755 --- a/core/config.py +++ b/core/config.py @@ -20,6 +20,7 @@ if not os.path.exists('config'): "realname": "CloudBot - http://git.io/cloudbot", "nickserv_password": "", "channels": ["#channel"], + "autorejoin": "False", "command_prefix": ".", "stayalive": "", "stayalive_delay": "20" diff --git a/plugins/misc.py b/plugins/misc.py index d7bed1d..0aef229 100755 --- a/plugins/misc.py +++ b/plugins/misc.py @@ -5,26 +5,22 @@ import time from util import hook, http -socket.setdefaulttimeout(10) # global setting +socket.setdefaulttimeout(10) +@hook.event('KICK') +def rejoin(paraml, conn=None): + autorejoin = conn.conf.get('autorejoin', False) + if autorejoin: + conn.join(paraml[0]) + else: + return None -#autorejoin channels -#@hook.event('KICK') -#def rejoin(paraml, conn=None): -# if paraml[1] == conn.nick: -# if paraml[0].lower() in conn.channels: -# conn.join(paraml[0]) - - -#join channels when invited @hook.event('INVITE') def invite(paraml, conn=None): conn.join(paraml[-1]) - @hook.event('004') def onjoin(paraml, conn=None, bot=None): - # identify to services nickserv_password = conn.conf.get('nickserv_password', '') nickserv_name = conn.conf.get('nickserv_name', 'nickserv') nickserv_command = conn.conf.get('nickserv_command', 'IDENTIFY %s') @@ -34,43 +30,36 @@ def onjoin(paraml, conn=None, bot=None): conn.msg(nickserv_name, nickserv_command % nickserv_password) bot.config['censored_strings'].append(nickserv_password) time.sleep(1) - - # set mode on self mode = conn.conf.get('mode') + if mode: conn.cmd('MODE', [conn.nick, mode]) - # join channels for channel in conn.channels: conn.join(channel) - time.sleep(1) # don't flood JOINs - - # set user-agent + time.sleep(1) http.ua_skybot = 'CloudBot - http://git.io/cloudbot' - # stayalive code - stayalive = conn.conf.get('stayalive') if stayalive: while True: time.sleep(conn.conf.get('stayalive_delay', 20)) conn.cmd('PING', [conn.nick]) -# CTCPs @hook.regex(r'^\x01VERSION\x01$') -def version(inp, notice=None): +def ctcpversion(inp, notice=None): notice('\x01VERSION: CloudBot - http://git.io/cloudbot') + @hook.regex(r'^\x01PING\x01$') -def ping(inp, notice=None): +def ctcpping(inp, notice=None): notice('\x01PING: PONG') -@hook.regex(r'^\x01FINGER\x01$') -def finger(inp, notice=None): - notice('\x01FINGER: WHERE ARE YOU PUTTING THAT') + @hook.regex(r'^\x01TIME\x01$') -def time(inp, notice=None): +def ctcptime(inp, notice=None): notice('\x01TIME: GET A WATCH') -@hook.regex(r'^\x01DIE\x01$') -def die(inp, notice=None): - notice('\x01DIE: IN A FIRE') -@hook.regex(r'^\x01VIRGIN\x01$') + +@hook.regex(r'^\x01FINGER\x01$') +def ctcpfinger(inp, notice=None): + notice('\x01FINGER: WHERE ARE YOU PUTTING THAT') +