Rework data structures, storing all front-end network data in Network objects
This commit is contained in:
22
core/bot.py
22
core/bot.py
@@ -20,13 +20,14 @@ from utils.logging.send import *
|
||||
from twisted.internet.ssl import DefaultOpenSSLContextFactory
|
||||
|
||||
def deliverRelayCommands(relay, relayCommands, user=None, stage2=None):
|
||||
# where relay is a dictionary extracted from the Network object
|
||||
keyFN = main.certPath+main.config["Key"]
|
||||
certFN = main.certPath+main.config["Certificate"]
|
||||
contextFactory = DefaultOpenSSLContextFactory(keyFN.encode("utf-8", "replace"),
|
||||
certFN.encode("utf-8", "replace"))
|
||||
bot = IRCBotFactory(None, relay, relayCommands, user, stage2)
|
||||
rct = reactor.connectSSL(main.relay[relay]["host"],
|
||||
int(main.relay[relay]["port"]),
|
||||
rct = reactor.connectSSL(relay["host"],
|
||||
int(relay["port"]),
|
||||
bot, contextFactory)
|
||||
|
||||
class IRCRelay(IRCClient):
|
||||
@@ -34,10 +35,10 @@ class IRCRelay(IRCClient):
|
||||
self.connected = False
|
||||
self.buffer = ""
|
||||
if user == None:
|
||||
self.user = main.relay[relay]["user"]
|
||||
self.user = relay["user"]
|
||||
else:
|
||||
self.user = user
|
||||
password = main.relay[relay]["password"]
|
||||
password = relay["password"]
|
||||
self.nickname = self.user
|
||||
self.realname = self.user
|
||||
self.username = self.user
|
||||
@@ -88,7 +89,7 @@ class IRCRelay(IRCClient):
|
||||
return
|
||||
|
||||
class IRCBot(IRCClient):
|
||||
def __init__(self, name):
|
||||
def __init__(self, name, relay):
|
||||
self.connected = False
|
||||
self.channels = []
|
||||
self.net = "".join([x for x in name if not x in digits])
|
||||
@@ -96,14 +97,11 @@ class IRCBot(IRCClient):
|
||||
error("Network with all numbers: %s" % name)
|
||||
self.buffer = ""
|
||||
self.name = name
|
||||
inst = main.pool[name]
|
||||
alias = main.alias[inst["alias"]]
|
||||
relay = main.relay[inst["relay"]]
|
||||
network = main.network[inst["network"]]
|
||||
alias = relay["alias"]
|
||||
|
||||
self.nickname = alias["nick"]
|
||||
self.realname = alias["realname"]
|
||||
self.username = inst["alias"]+"/"+inst["network"]
|
||||
self.username = alias["nick"]+"/"+relay["net"]
|
||||
self.password = relay["password"]
|
||||
self.userinfo = None
|
||||
self.fingerReply = None
|
||||
@@ -448,7 +446,7 @@ class IRCBotFactory(ReconnectingClientFactory):
|
||||
self.name = name
|
||||
self.net = "".join([x for x in self.name if not x in digits])
|
||||
else:
|
||||
self.name = "Relay to "+relay
|
||||
self.name = "Relay to "+relay["net"]+relay["id"]
|
||||
self.client = None
|
||||
self.maxDelay = main.config["Tweaks"]["Delays"]["MaxDelay"]
|
||||
self.initialDelay = main.config["Tweaks"]["Delays"]["InitialDelay"]
|
||||
@@ -459,7 +457,7 @@ class IRCBotFactory(ReconnectingClientFactory):
|
||||
|
||||
def buildProtocol(self, addr):
|
||||
if self.relay == None:
|
||||
entry = IRCBot(self.name)
|
||||
entry = IRCBot(self.name, self.relay)
|
||||
main.IRCPool[self.name] = entry
|
||||
else:
|
||||
entry = IRCRelay(self.relay, self.relayCommands, self.user, self.stage2)
|
||||
|
||||
Reference in New Issue
Block a user