def __init__(self, bot: "IRCBot.Bot", events: EventManager.Events, id: int, alias: str, connection_params: utils.irc.IRCConnectionParameters): self.bot = bot self.events = events self.id = id self.alias = alias self.connection_params = connection_params self.name = None # type: typing.Optional[str] self.version = None # type: typing.Optional[str] self.connected = False self.reconnected = False self.from_init = False self.nickname = None # type: typing.Optional[str] self.username = None # type: typing.Optional[str] self.realname = None # type: typing.Optional[str] self.hostname = None # type: typing.Optional[str] self.capability_queue = { } # type: typing.Dict[str, utils.irc.Capability] self.capabilities_requested = { } # type: typing.Dict[str, utils.irc.Capability] self._capabilities_waiting = set([]) # type: typing.Set[str] self.agreed_capabilities = set([]) # type: typing.Set[str] self.server_capabilities = {} # type: typing.Dict[str, str] self.batches = {} # type: typing.Dict[str, utils.irc.IRCBatch] self.users = {} # type: typing.Dict[str, IRCUser.User] self.new_users = set([]) #type: typing.Set[IRCUser.User] self.channels = IRCChannels.Channels(self, self.bot, self.events) self.own_modes = {} # type: typing.Dict[str, typing.Optional[str]] self.isupport = {} # type: typing.Dict[str, typing.Optional[str]] self.prefix_symbols = collections.OrderedDict((("@", "o"), ("+", "v"))) self.prefix_modes = collections.OrderedDict((("o", "@"), ("v", "+"))) self.channel_list_modes = ["b"] # type: typing.List[str] self.channel_parametered_modes = ["k"] # type: typing.List[str] self.channel_setting_modes = ["l"] # type: typing.List[str] self.channel_modes = ["n", "i", "m", "t", "p", "s"] # type: typing.List[str] self.channel_types = ["#"] self.case_mapping = "rfc1459" self.statusmsg = [] # type: typing.List[str] self.motd_lines = [] # type: typing.List[str] self.motd_done = False self.attempted_join = { } # type: typing.Dict[str, typing.Optional[str]] self.ping_sent = False self.send_enabled = True self.events.on("timer.rejoin").hook(self.try_rejoin)
def __init__(self, bot: "IRCBot.Bot", events: EventManager.EventHook, id: int, alias: typing.Optional[str], connection_params: utils.irc.IRCConnectionParameters): self.connected = False self.bot = bot self.events = events self.id = id self.alias = alias self.connection_params = connection_params self.name = None # type: typing.Optional[str] self.nickname = None # type: typing.Optional[str] self.username = None # type: typing.Optional[str] self.realname = None # type: typing.Optional[str] self.hostname = None # type: typing.Optional[str] self._capability_queue = set([]) # type: typing.Set[str] self._capabilities_waiting = set([]) # type: typing.Set[str] self.capabilities = set([]) # type: typing.Set[str] self.requested_capabilities = [] # type: typing.List[str] self.server_capabilities = {} # type: typing.Dict[str, str] self.batches = {} # type: typing.Dict[str, utils.irc.IRCLine] self.cap_started = False self.write_buffer = b"" self.buffered_lines = [] # type: typing.List[bytes] self._write_throttling = False self.read_buffer = b"" self.recent_sends = [] # type: typing.List[float] self.cached_fileno = None # type: typing.Optional[int] self.bytes_written = 0 self.bytes_read = 0 self.users = {} # type: typing.Dict[str, IRCUser.User] self.new_users = set([]) #type: typing.Set[IRCUser.User] self.channels = IRCChannels.Channels(self, self.bot, self.events) self.own_modes = {} # type: typing.Dict[str, typing.Optional[str]] self.isupport = {} # type: typing.Dict[str, typing.Optional[str]] self.prefix_symbols = collections.OrderedDict((("@", "o"), ("+", "v"))) self.prefix_modes = collections.OrderedDict((("o", "@"), ("v", "+"))) self.channel_modes = [] # type: typing.List[str] self.channel_list_modes = [] # type: typing.List[str] self.channel_paramatered_modes = [] # type: typing.List[str] self.channel_types = ["#"] self.case_mapping = "rfc1459" self.motd_lines = [] # type: typing.List[str] self.motd_done = False self.last_read = time.monotonic() self.last_send = None # type: typing.Optional[float] self.attempted_join = { } # type: typing.Dict[str, typing.Optional[str]] self.ping_sent = False self.events.on("timer.rejoin").hook(self.try_rejoin)