Rework data structures, storing all front-end network data in Network objects

This commit is contained in:
Al Beano
2019-08-11 21:58:14 +01:00
parent f6657cb905
commit e5adcfef4c
24 changed files with 258 additions and 284 deletions

View File

@@ -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)