コード例 #1
0
ファイル: usertrack.py プロジェクト: bethebunny/mircy
    def whois_channels(self, event):
        user = self.get_user(event.line.params[1])
        if not user:
            return

        isupport = self.get_extension("ISupport")
        prefix = prefix_parse(isupport.get("PREFIX"))

        for channel in event.line.params[-1].split():
            mode = set()
            mode, channel = status_prefix_parse(channel, prefix)
            user.channels[channel] = mode
コード例 #2
0
ファイル: usertrack.py プロジェクト: foxkit-us/PyIRC
    def whois_channels(self, _, line):
        """Update a user's channel set."""
        user = self.get_user(line.params[1])
        if not user:
            return

        isupport = self.base.isupport
        prefix = prefix_parse(isupport.get("PREFIX"))

        for channel in line.params[-1].split():
            mode = set()
            mode, channel = status_prefix_parse(channel, prefix)
            user.channels[channel] = mode
コード例 #3
0
ファイル: modehandler.py プロジェクト: bethebunny/mircy
    def names(self, event):
        line = event.line
        params = line.params

        target = params[2]

        isupport = self.get_extension("ISupport")
        prefix = prefix_parse(isupport.get("PREFIX"))

        logger.debug("params=%r", params)

        for nick in params[-1].split(' '):
            modes, nick = status_prefix_parse(nick, prefix)

            logger.debug("NAMES: %s", nick)

            for mode in modes:
                # TODO - aggregation
                self.call_event("modes", "mode_prefix", line, line.hostmask,
                                target, True, mode, nick)
コード例 #4
0
    def names(self, _, line):
        """Handle bursting of new users from NAMES."""
        params = line.params

        channel = params[2]

        isupport = self.base.isupport
        prefix = prefix_parse(isupport.get("PREFIX"))

        for hostmask in params[3].split(' '):
            if not hostmask:
                continue

            modes, hostmask = status_prefix_parse(hostmask, prefix)
            hostmask = Hostmask.parse(hostmask)

            modes = [(m, hostmask, True, None) for m in modes]

            scope = Scope(
                hostmask, channel, False, cause=line.hostmask, modes=modes)
            self.call_event("scope", "user_burst", scope)