anonymized the classes

This commit is contained in:
Stephen McQuay 2013-02-23 17:44:57 -08:00
parent 637a56da8c
commit 533f10a841
1 changed files with 12 additions and 8 deletions

20
tbot.py
View File

@ -1,10 +1,11 @@
import argparse import argparse
import re
from twisted.words.protocols import irc from twisted.words.protocols import irc
from twisted.internet import protocol, reactor from twisted.internet import protocol, reactor
class IDRTBot(irc.IRCClient): class IRCBot(irc.IRCClient):
@property @property
def nickname(self): def nickname(self):
return self.factory.nickname return self.factory.nickname
@ -18,22 +19,21 @@ class IDRTBot(irc.IRCClient):
print('joined {}'.format(channel)) print('joined {}'.format(channel))
def privmsg(self, user, channel, msg): def privmsg(self, user, channel, msg):
print('user: {} | channel: {} | msg: {}'.format(user, channel, msg))
username = user.split('!', 1)[0] username = user.split('!', 1)[0]
if channel == self.nickname: if channel == self.nickname:
print('got private message')
self.msg(username, "whisper back ...") self.msg(username, "whisper back ...")
if self.nickname in msg: if self.nickname in msg:
msg = msg.replace(self.nickname, '') msg = self.factory.nick_stripper.sub('', msg)
self.msg(channel, 'echo: {}'.format(msg)) self.msg(channel, 'echo: {}'.format(msg))
class IDRTBotFactory(protocol.ClientFactory): class IRCBotFactory(protocol.ClientFactory):
protocol = IDRTBot protocol = IRCBot
def __init__(self, channels, nickname='idrt'): def __init__(self, channels, nickname='bot'):
self.channels = channels self.channels = channels
self.nickname = nickname self.nickname = nickname
self.nick_stripper = re.compile(r'{}\s*?\:?'.format(self.nickname))
def clientConnectionLost(self, connector, reason): def clientConnectionLost(self, connector, reason):
print('lost connection({}), reconnecting.'.format(reason)) print('lost connection({}), reconnecting.'.format(reason))
@ -45,12 +45,16 @@ class IDRTBotFactory(protocol.ClientFactory):
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument('-H', '--host', type=str, default='localhost') parser.add_argument('-H', '--host', type=str, default='localhost')
parser.add_argument('-p', '--port', type=int, default=6667) parser.add_argument('-p', '--port', type=int, default=6667)
parser.add_argument('-n', '--nick', type=str, default='bot')
parser.add_argument('channels', nargs='+') parser.add_argument('channels', nargs='+')
args = parser.parse_args() args = parser.parse_args()
reactor.connectTCP( reactor.connectTCP(
args.host, int(args.port), args.host, int(args.port),
IDRTBotFactory('#{}'.format(c) for c in args.channels) IRCBotFactory(
('#{}'.format(c) for c in args.channels),
nickname=args.nick
)
) )
reactor.run() reactor.run()