diff options
Diffstat (limited to 'Reaktor')
| -rw-r--r-- | Reaktor/titlebot/titlebot.py | 29 | 
1 files changed, 20 insertions, 9 deletions
| diff --git a/Reaktor/titlebot/titlebot.py b/Reaktor/titlebot/titlebot.py index 396b9b58..b5195d53 100644 --- a/Reaktor/titlebot/titlebot.py +++ b/Reaktor/titlebot/titlebot.py @@ -1,6 +1,6 @@ -from os import environ,mkdir +from os import environ,mkdir,abspath -debug = False +debug = True  # CAVEAT name should not contains regex magic  name = 'bgt_titlebot' @@ -21,18 +21,27 @@ 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, @@ -40,7 +49,9 @@ def titlebot_cmd(cmd):      '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 +65,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 = [ | 
