diff options
Diffstat (limited to 'titlebot')
| -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 = [ | 
