Change alias definitions to be global, so aliases can be reused across different networks

This commit is contained in:
2019-09-29 22:45:16 +01:00
parent 355a80b19b
commit 32309ecec2
15 changed files with 68 additions and 33 deletions

View File

@@ -2,6 +2,9 @@ import main
import random
import re
def generate_password():
return "".join([chr(random.randint(0, 74) + 48) for i in range(32)])
def generate_alias():
nick = random.choice(main.aliasdata["stubs"])
rand = random.randint(1, 2)
@@ -60,6 +63,6 @@ def generate_alias():
if rand == 3 or rand == 4:
realname = realname.capitalize()
password = "".join([chr(random.randint(0, 74) + 48) for i in range(32)])
password = generate_password()
return {"nick": nick, "altnick": altnick, "ident": ident, "realname": realname, "password": password}

View File

@@ -6,7 +6,7 @@ from twisted.internet import reactor
from core.bot import IRCBot, IRCBotFactory
import main
from utils.logging.log import *
from utils.getrelay import getRelay
from utils.get import getRelay
class Network:
def __init__(self, net, host, port, security, auth):
@@ -29,14 +29,19 @@ class Network:
"net": self.net,
"id": num
}
self.aliases[num] = alias.generate_alias()
if main.config["ConnectOnCreate"]:
self.start_bot(num)
return num, self.aliases[num]["nick"]
password = alias.generate_password()
if not num in main.alias.keys():
main.alias[num] = alias.generate_alias()
main.saveConf("alias")
self.aliases[num] = {"password": password}
#if main.config["ConnectOnCreate"]: -- Done in provision
# self.start_bot(num)
return num, main.alias[num]["nick"]
def delete_relay(self, id):
del self.relays[id]
del self.aliases[id]
#del main.alias[id] - Aliases are global per num, so don't delete them!
def start_bot(self, num):
# a single name is given to relays in the backend

View File

@@ -57,8 +57,10 @@ def provisionRelayForNetwork(num, alias, network):
return
def provisionRelay(num, network):
aliasObj = main.network[network].aliases[num]
aliasObj = main.alias[num]
alias = aliasObj["nick"]
provisionUserData(num, *aliasObj.values())
provisionRelayForNetwork(num, alias, network)
if main.config["ConnectOnCreate"]:
main.network[network].start_bot(num)
return alias