Example #1
0
    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)
Example #2
0
    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)