diff options
Diffstat (limited to 'titlebot/titlebot.py')
-rw-r--r-- | titlebot/titlebot.py | 28 |
1 files changed, 20 insertions, 8 deletions
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 = [ |