Implement relay, channel and alias management
This commit is contained in:
@@ -6,6 +6,7 @@ from core.bot import IRCBotFactory
|
||||
from modules import alias
|
||||
from modules.chankeep import nukeNetwork
|
||||
from modules.regproc import needToRegister
|
||||
from utils.deliver_relay_commands import deliverRelayCommands
|
||||
from utils.get import getRelay
|
||||
from utils.logging.log import log
|
||||
|
||||
@@ -48,6 +49,42 @@ class Network:
|
||||
# self.start_bot(num)
|
||||
return num, main.alias[num]["nick"]
|
||||
|
||||
def enable_relay(self, num):
|
||||
"""
|
||||
Enable a relay for this network.
|
||||
Send a command to ZNC to connect.
|
||||
"""
|
||||
self.relays[num]["enabled"] = True
|
||||
user = main.alias[num]["nick"]
|
||||
commands = {"status": ["Connect"]}
|
||||
name = f"{self.net}{num}"
|
||||
deliverRelayCommands(num, commands, user=user + "/" + self.net)
|
||||
main.saveConf("network")
|
||||
if name not in main.IRCPool.keys():
|
||||
self.start_bot(num)
|
||||
|
||||
def disable_relay(self, num):
|
||||
"""
|
||||
Disable a relay for this network.
|
||||
Send a command to ZNC to disconnect.
|
||||
Stop trying to connect to the relay.
|
||||
"""
|
||||
self.relays[num]["enabled"] = False
|
||||
user = main.alias[num]["nick"]
|
||||
# relay = main.network[spl[1]].relays[relayNum]
|
||||
commands = {"status": ["Disconnect"]}
|
||||
name = f"{self.net}{num}"
|
||||
deliverRelayCommands(num, commands, user=user + "/" + self.net)
|
||||
main.saveConf("network")
|
||||
if name in main.ReactorPool.keys():
|
||||
if name in main.FactoryPool.keys():
|
||||
main.FactoryPool[name].stopTrying()
|
||||
main.ReactorPool[name].disconnect()
|
||||
if name in main.IRCPool.keys():
|
||||
del main.IRCPool[name]
|
||||
del main.ReactorPool[name]
|
||||
del main.FactoryPool[name]
|
||||
|
||||
def killAliases(self, aliasList):
|
||||
for i in aliasList:
|
||||
name = self.net + str(i)
|
||||
|
||||
Reference in New Issue
Block a user