def __init__(self, bot, name, nick, *, config, server, port=6667, use_ssl=False, ignore_cert_errors=True, timeout=300): """ :type bot: stratus.engine.Stratus :type name: str :type bot_nick: str :type config: dict[str, unknown] :type server: str :type port: int :type use_ssl: bool :type ignore_cert_errors: bool :type timeout: int """ self.bot = bot self.loop = bot.loop self.name = name self.nick = nick self.channels = CaseInsensitiveDict() self.config = config # create permissions manager self.permissions = PermissionManager(self) self.waiting_messages = dict() self.use_ssl = use_ssl self._ignore_cert_errors = ignore_cert_errors self._timeout = timeout self.server = server self.port = port # create SSL context if self.use_ssl: self.ssl_context = SSLContext(PROTOCOL_SSLv23) if self._ignore_cert_errors: self.ssl_context.verify_mode = ssl.CERT_NONE else: self.ssl_context.verify_mode = ssl.CERT_REQUIRED else: self.ssl_context = None # if we're connected self._connected = False # if we've quit self._quit = False # transport and protocol self._transport = None self._protocol = None