diff options
-rw-r--r-- | config.py | 7 | ||||
-rw-r--r-- | titlebot/titlebot.py | 28 |
2 files changed, 24 insertions, 11 deletions
@@ -17,8 +17,8 @@ irc_restart_timeout = 5 irc_channels = [ '#krebs' ] -admin_file='admin.lst' -auth_file='auth.lst' +admin_file=workdir+'/admin.lst' +auth_file=workdir+'/auth.lst' config_filename = abspath(__file__) @@ -26,7 +26,8 @@ config_filename = abspath(__file__) me = '\\b' + re.escape(name) + '\\b' me_or_us = '(?:' + me + '|\\*)' -def default_command(cap, cmd=None, env={}): +def default_command(cap, cmd=None, env=None): + if not env: env = {} if cmd == None: cmd=cap return { 'capname': cap, diff --git a/titlebot/titlebot.py b/titlebot/titlebot.py index dc4e28a..05ff612 100644 --- a/titlebot/titlebot.py +++ b/titlebot/titlebot.py @@ -1,4 +1,5 @@ from os import environ,mkdir +from os.path import abspath, expanduser debug = False @@ -21,26 +22,37 @@ irc_restart_timeout = 5 irc_channels = [ '#binaergewitter' ] +admin_file=workdir+'/admin.lst' +auth_file=workdir+'/auth.lst' + +config_filename = abspath(__file__) -admin_file=workdir+'/'+'admin.lst' try: with open(admin_file,"x"): pass except: pass -auth_file=workdir+'/'+'auth.lst' -def default_command(cmd): +# me is used, so name cannot kill our patterns below +me = '\\b' + re.escape(name) + '\\b' +me_or_us = '(?:' + me + '|\\*)' + +def default_command(cmd, env=None): + if not env: env = {} return { 'capname': cmd, - 'pattern': '^(?:' + name + '|\\*):\\s*' + cmd + '\\s*(?:\\s+(?P<args>.*))?$', - 'argv': [ 'commands/' + cmd ] } + 'pattern': '^' + me_or_us + ':\\s*' + cmd + '\\s*(?:\\s+(?P<args>.*))?$', + 'argv': [ 'commands/' + cmd ], + 'env': env + } def titlebot_cmd(cmd): return { 'capname': cmd, - 'pattern': '\\.' + cmd + '\\s*(?:\\s+(?P<args>.*))?$', + 'pattern': '^\\.' + cmd + '\\s*(?:\\s+(?P<args>.*))?$', 'argv': [ 'titlebot/commands/' + cmd ] } public_commands = [ - default_command('caps'), + default_command('caps', env={ + 'config_filename': config_filename + }), default_command('hello'), default_command('badcommand'), default_command('rev'), @@ -54,7 +66,7 @@ public_commands = [ titlebot_cmd('down'), # identify via direct connect { 'capname': 'identify', - 'pattern': '^identify' + '\\s*(?:\\s+(?P<args>.*))?$', + 'pattern': '^identify' + '\\s*(?:\\s+(?P<args>.*))?$', 'argv' : [ 'commands/identify' ]} ] commands = [ |