Skip to content

Commit

Permalink
Merge pull request #202 from aapa/change-realname
Browse files Browse the repository at this point in the history
Allow changing bot's realname
  • Loading branch information
kipe committed Apr 27, 2016
2 parents 32f44a1 + 79b5f1f commit 8525327
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 4 deletions.
5 changes: 5 additions & 0 deletions example_full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ admins:
# Set the command character for the bot
cmdchar: '.'

# Set realname for the bot
realname: 'https://github.com/lepinkainen/pyfibot'

# Networks to connect to
networks:
# Alias for network
Expand All @@ -16,6 +19,8 @@ networks:
server: irc.nerv.fi
# We use a different nick on this network
nick: botnick_nerv
# As well as different realname
realname: 'pyfibot'
# List of channels to join
channels:
- pyfibot
Expand Down
1 change: 1 addition & 0 deletions pyfibot/botcore.py
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,7 @@ def __init__(self, config, network):
self.cmdchar = config.get('cmdchar', '.')
self.network = network
self.nickname = self.network.nickname
self.realname = self.network.realname or self.realname
self.lineRate = self.network.linerate
self.password = self.network.password
# Text wrapper to clip overly long answers
Expand Down
10 changes: 6 additions & 4 deletions pyfibot/pyfibot.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,12 @@

class Network:
"""Represents an IRC network"""
def __init__(self, root, alias, address, nickname, channels=None, linerate=None, password=None, is_ssl=False):
def __init__(self, root, alias, address, nickname, realname=None, channels=None, linerate=None, password=None, is_ssl=False):
self.root = root
self.alias = alias # network name
self.address = address # server address
self.nickname = nickname # nick to use
self.realname = realname
self.channels = channels or {} # channels to join
self.linerate = linerate
self.password = password
Expand Down Expand Up @@ -142,8 +143,8 @@ def buildProtocol(self, address):
log.error("Unknown network address: " + repr(address))
return InstantDisconnectProtocol()

def createNetwork(self, address, alias, nickname, channels=None, linerate=None, password=None, is_ssl=False):
self.setNetwork(Network("data", alias, address, nickname, channels, linerate, password, is_ssl))
def createNetwork(self, address, alias, nickname, realname, channels=None, linerate=None, password=None, is_ssl=False):
self.setNetwork(Network("data", alias, address, nickname, realname, channels, linerate, password, is_ssl))

def setNetwork(self, net):
self.data['networks'][net.alias] = net
Expand Down Expand Up @@ -434,6 +435,7 @@ def main():
for network, settings in config['networks'].items():
# settings = per network, config = global
nick = settings.get('nick', None) or config['nick']
realname = settings.get('realname') or config.get('realname')
linerate = settings.get('linerate', 0.5) or config.get('linerate', 0.5)
password = settings.get('password', None)
is_ssl = bool(settings.get('is_ssl', False))
Expand All @@ -460,7 +462,7 @@ def main():
else:
server_name = settings['server']

factory.createNetwork((server_name, port), network, nick, chanlist, linerate, password, is_ssl)
factory.createNetwork((server_name, port), network, nick, realname, chanlist, linerate, password, is_ssl)
if is_ssl:
log.info("connecting via SSL to %s:%d" % (server_name, port))
reactor.connectSSL(server_name, port, factory, ssl.ClientContextFactory())
Expand Down

0 comments on commit 8525327

Please sign in to comment.