diff options
Diffstat (limited to 'IRC')
| -rwxr-xr-x | IRC/bot2.py | 22 | 
1 files changed, 19 insertions, 3 deletions
| diff --git a/IRC/bot2.py b/IRC/bot2.py index 7365686..49e8a57 100755 --- a/IRC/bot2.py +++ b/IRC/bot2.py @@ -85,16 +85,32 @@ class IRCBot(SimpleIRCClient):      # TODO reconnect      exit(0) +# retrieve the value of a [singleton] variable from a tinc.conf(5)-like file +def getconf1(x, path): +  from re import findall +  pattern = '(?:^|\n)\s*' + x + '\s*=\s*(.*\w)\s*(?:\n|$)' +  y = findall(pattern, open(path, 'r').read()) +  if len(y) < 1: +    raise AttributeError("len(getconf1('%s', '%s') < 1)" % (x, path)) +  if len(y) > 1: +    y = ' '.join(y) +    raise AttributeError("len(getconf1('%s', '%s') > 1)\n  ====>  %s" +        % (x, path, y)) +  return y[0] +  def main(): -  host = str(env.get('host', 'irc.freenode.org')) +  name = getconf1('Name', '/etc/tinc/retiolum/tinc.conf') +  host = str(env.get('host', 'supernode'))    port = int(env.get('port', 6667)) -  nick = str(env.get('nick', 'crabspasm')) +  nick = str(env.get('nick', name))    target = str(env.get('target', '#tincspasm'))    print('====> irc://%s@%s:%s/%s' % (nick, host, port, target))    client = IRCBot(target)    try: -    client.connect(host, port, nick) +    from getpass import getuser +    client.connect(host, port, nick, username=getuser(), +        ircname='//Reaktor running at %s.retiolum' % (name))    except ServerConnectionError, error:      print(error)      exit(1) | 
