Ejemplo n.º 1
0
def onRaw(e):
    if not e.quiet:
        if e.msg[1].isdigit():
            if e.msg[1] == '332':
                window = windows.get(windows.ChannelWindow, e.network, e.msg[3]) or e.window
                
                f = log_file(e.network, window.id)
                
                f.write('topic on %s is: %s' % (e.msg[3], e.text))
                
            elif e.msg[1] == '333':
                window = windows.get(windows.ChannelWindow, e.network, e.msg[3]) or e.window
                
                f = log_file(e.network, window.id)
                
                f.write('topic on %s set by %s at time %s' % (e.msg[3], e.msg[4], time.ctime(int(e.msg[5]))))
            
            elif e.msg[1] == '329': #RPL_CREATIONTIME
                pass
            
            else:
                f = log_file(e.network, e.window.id)
            
                f.write('* %s' % ' '.join(e.msg[3:]))

        elif e.msg[1] == 'ERROR':
            f = log_file(e.network, e.window.id)
            
            f.write('Error: %s' % e.text)
Ejemplo n.º 2
0
def setupText(e):
    if e.target == e.network.me:
        e.window = windows.new(windows.QueryWindow, e.network, e.source, core)
    else:
        e.window = \
            windows.get(windows.ChannelWindow, e.network, e.target, core) or \
            windows.get(windows.QueryWindow, e.network, e.source, core) or \
            e.window
Ejemplo n.º 3
0
def setupText(e):
    if e.target == e.network.me:
        e.window = windows.new(windows.QueryWindow, e.network, e.source)
    else:
        e.window = \
            windows.get(windows.ChannelWindow, e.network, e.target) or \
            windows.get(windows.QueryWindow, e.network, e.source) or \
            e.window
Ejemplo n.º 4
0
def onRaw(e):
    if not e.quiet:
        if e.msg[1].isdigit():
            if e.msg[1] == '332':
                window = windows.get(windows.ChannelWindow, e.network,
                                     e.msg[3], core) or e.window
                window.write("%sTopic on %s is: %s" %
                             (prefix(e), e.msg[3], e.text))

            elif e.msg[1] == '333':
                window = windows.get(windows.ChannelWindow, e.network,
                                     e.msg[3], core) or e.window
                window.write(
                    "%sTopic on %s set by %s at time %s" %
                    (prefix(e), e.msg[3], e.msg[4], time.ctime(int(e.msg[5]))))

            elif e.msg[1] == '329':  #RPL_CREATIONTIME
                pass

            elif e.msg[1] == '311':  #RPL_WHOISUSER
                e.window.write("* %s is %s@%s * %s" %
                               (e.msg[3], e.msg[4], e.msg[5], e.msg[7]))

            elif e.msg[1] == '312':  #RPL_WHOISSERVER
                e.window.write("* %s on %s (%s)" %
                               (e.msg[3], e.msg[4], e.msg[5]))

            elif e.msg[1] == '317':  #RPL_WHOISIDLE
                e.window.write("* %s has been idle for %s" %
                               (e.msg[3], pretty_time(int(e.msg[4]))))
                if e.msg[5].isdigit():
                    e.window.write("* %s signed on %s" %
                                   (e.msg[3], time.ctime(int(e.msg[5]))))

            elif e.msg[1] == '319':  #RPL_WHOISCHANNELS
                e.window.write("* %s on channels: %s" % (e.msg[3], e.msg[4]))

            elif e.msg[1] == '330':  #RPL_WHOISACCOUNT
                #this appears to conflict with another raw, so if there's anything weird about it,
                # we fall back on the default
                if len(
                        e.msg
                ) == 6 and not e.msg[4].isdigit() and not e.msg[5].isdigit():
                    e.window.write("* %s %s %s" %
                                   (e.msg[3], e.msg[5], e.msg[4]))
                else:
                    e.window.write("* %s" % ' '.join(e.msg[3:]))

            else:
                e.window.write("* %s" % ' '.join(e.msg[3:]))
        elif e.msg[1] == 'ERROR':
            e.window.write("Error: %s" % e.text)
Ejemplo n.º 5
0
def setupJoin(e):
    if e.source == e.network.me:
        window = windows.get(windows.StatusWindow, e.network, 'status')
        
        if window and not conf.get('status'):
            window.mutate(windows.ChannelWindow, e.network, e.target)
        else:
            window = windows.new(windows.ChannelWindow, e.network, e.target)
        
        if e.requested:
            window.activate()

    e.window = windows.get(windows.ChannelWindow, e.network, e.target) or e.window
Ejemplo n.º 6
0
def setupNotice(e):
    if e.target != e.network.me:
        e.window = windows.get(
            windows.ChannelWindow,
            e.network,
            e.target,
            core) or e.window
Ejemplo n.º 7
0
def setupRaw(e):
    if e.msg[1] == '353': #names reply
        channel = getchan(e.network,e.msg[4])
        if channel:
            if not channel.getting_names:
                channel.nicks.clear()
                channel.normal_nicks.clear()
                channel.getting_names = True
            if not channel.got_names:
                e.quiet = True
            for nickname in e.msg[5].split(' '):
                if nickname:
                    if not nickname[0].isalpha() and nickname[0] in e.network.prefixes:
                        n = nickname[1:]
                        channel.nicks[n] = e.network.prefixes[nickname[0]]
                        channel.normal_nicks[e.network.norm_case(n)] = n
                    else:
                        channel.nicks[nickname] = ''
                        channel.normal_nicks[e.network.norm_case(nickname)] = nickname

    elif e.msg[1] == '366': #end of names reply
        channel = getchan(e.network,e.msg[3])
        if channel:
            if not channel.got_names:
                e.quiet = True
                channel.got_names = True
            channel.getting_names = False
            
            window = windows.get(windows.ChannelWindow, e.network, e.msg[3], core)
            if window:
                window.nicklist.replace(
                    (nick, escape(prefix(e.network, channel.name, nick)), sortkey(e.network, channel.name, nick)) for nick in channel.nicks
                    )
        
    elif e.msg[1] == '324': #channel mode is
        channel = getchan(e.network,e.msg[3])
        if channel:
            if not channel.got_mode:
                e.quiet = True
                channel.got_mode = True
            mode = e.msg[4]
            params = e.msg[:4:-1]
            list_modes, always_parm_modes, set_parm_modes, normal_modes = \
                e.network.isupport['CHANMODES'].split(',')
            parm_modes = always_parm_modes + set_parm_modes
            channel.mode = e.msg[4]
            channel.special_mode.clear()
            for char in channel.mode:
                if char in parm_modes:
                    channel.special_mode[char] = params.pop()
        
    elif e.msg[1] == '331': #no topic
        channel = getchan(e.network,e.msg[3])
        if channel:
            channel.topic = ''

    elif e.msg[1] == '332': #channel topic is
        channel = getchan(e.network,e.msg[3])
        if channel:
            channel.topic = e.text
Ejemplo n.º 8
0
def nicklist_add(network, channel, nick):
    window = windows.get(windows.ChannelWindow, network, channel.name, core)
    #window = core.window
    if window:
        window.nicklist.append(nick, escape(prefix(network, channel.name,
                                                   nick)),
                               sortkey(network, channel.name, nick))
Ejemplo n.º 9
0
def nicklist_del(network, channel, nick):
    window = windows.get(windows.ChannelWindow, network, channel.name, core)
    #window = core.window
    if window:
        try:
            window.nicklist.remove(nick)
        except ValueError:
            pass
Ejemplo n.º 10
0
def onRaw(e):
    if not e.quiet:
        if e.msg[1].isdigit():
            if e.msg[1] == '332':
                window = windows.get(windows.ChannelWindow, e.network, e.msg[3]) or e.window
                window.write(
                    "%sTopic on %s is: %s" % 
                        (prefix(e), e.msg[3], e.text)
                        )
                
            elif e.msg[1] == '333':
                window = windows.get(windows.ChannelWindow, e.network, e.msg[3]) or e.window
                window.write(
                    "%sTopic on %s set by %s at time %s" % 
                        (prefix(e), e.msg[3], e.msg[4], time.ctime(int(e.msg[5])))
                        )
            
            elif e.msg[1] == '329': #RPL_CREATIONTIME
                pass
            
            elif e.msg[1] == '311': #RPL_WHOISUSER
                e.window.write("* %s is %s@%s * %s" % (e.msg[3], e.msg[4], e.msg[5], e.msg[7]))
            
            elif e.msg[1] == '312': #RPL_WHOISSERVER
                e.window.write("* %s on %s (%s)" % (e.msg[3], e.msg[4], e.msg[5]))
            
            elif e.msg[1] == '317': #RPL_WHOISIDLE
                e.window.write("* %s has been idle for %s" % (e.msg[3], pretty_time(int(e.msg[4]))))
                if e.msg[5].isdigit():
                    e.window.write("* %s signed on %s" % (e.msg[3], time.ctime(int(e.msg[5]))))
            
            elif e.msg[1] == '319': #RPL_WHOISCHANNELS
                e.window.write("* %s on channels: %s" % (e.msg[3], e.msg[4]))
            
            elif e.msg[1] == '330': #RPL_WHOISACCOUNT
                #this appears to conflict with another raw, so if there's anything weird about it,
                # we fall back on the default
                if len(e.msg) == 6 and not e.msg[4].isdigit() and not e.msg[5].isdigit():
                    e.window.write("* %s %s %s" % (e.msg[3], e.msg[5], e.msg[4]))
                else:
                    e.window.write("* %s" % ' '.join(e.msg[3:]))
            
            else:
                e.window.write("* %s" % ' '.join(e.msg[3:]))
        elif e.msg[1] == 'ERROR':
            e.window.write("Error: %s" % e.text)
Ejemplo n.º 11
0
def nicklist_del(network, channel, nick):
    window = windows.get(windows.ChannelWindow, network, channel.name, core)
    #window = core.window
    if window:
        try:
            window.nicklist.remove(nick)
        except ValueError:
            pass
Ejemplo n.º 12
0
def onQuit(e):
    to_write = "%s%s leaves%s" % (prefix(e), format_info_source(e), text(e))
    
    for channame in chaninfo.channels(e.network):
        if chaninfo.ison(e.network, channame, e.source):
            window = windows.get(windows.ChannelWindow, e.network, channame)
            if window:
                window.write(to_write)
Ejemplo n.º 13
0
def setupJoin(e):
    if e.source == e.network.me:
        window = windows.new(windows.ChannelWindow, e.network, e.target, core)

        if e.requested:
            window.activate()

    e.window = windows.get(windows.ChannelWindow, e.network, e.target,
                           core) or e.window
Ejemplo n.º 14
0
def onQuit(e):
    to_write = "%s%s leaves%s" % (prefix(e), format_info_source(e), text(e))

    for channame in chaninfo.channels(e.network):
        if chaninfo.ison(e.network, channame, e.source):
            window = windows.get(windows.ChannelWindow, e.network, channame,
                                 core)
            if window:
                window.write(to_write)
Ejemplo n.º 15
0
def nicklist_add(network, channel, nick):
    window = windows.get(windows.ChannelWindow, network, channel.name, core)
    #window = core.window
    if window:
        window.nicklist.append(
            nick, escape(
                prefix(
                    network, channel.name, nick)), sortkey(
                network, channel.name, nick))
Ejemplo n.º 16
0
def onQuit(e):
    to_write = "%s quit (%s)" % (e.source, e.text)
    
    for channame in chaninfo.channels(e.network):
        if chaninfo.ison(e.network, channame, e.source):
            window = windows.get(windows.ChannelWindow, e.network, channame)
            if window:
                f = log_file(e.network, window.id)
                
                f.write(to_write)
Ejemplo n.º 17
0
def setupJoin(e):
    if e.source == e.network.me:
        window = windows.new(windows.ChannelWindow, e.network, e.target, core)

        if e.requested:
            window.activate()

    e.window = windows.get(
        windows.ChannelWindow,
        e.network,
        e.target,
        core) or e.window
Ejemplo n.º 18
0
def onNotice(e):
    check_hilight(e,e.text)
    reps = {
        'nick':e.source,
        'text':e.text,
        'timestamp':time.strftime(theme.get('TimeStamp',default.get('TimeStamp'))),
        'pre':theme.get('Prefix',default.get('Prefix'))
    }
    if chaninfo.ischan(e.network,e.target):
        reps['chan'] = e.target
        reps['pnick'] = pnick(e.network,e.target,e.source)
        window = windows.get(windows.ChannelWindow, e.network, e.msg[3]) or e.window
        output('ChanNotice',e.hilight,window,reps,widgets.TEXT)
    else:
        output('Notice',e.hilight,e.window,reps,widgets.TEXT)
Ejemplo n.º 19
0
def setdownPart(e):
    if e.source == e.network.me:
        window = windows.get(windows.ChannelWindow, e.network, e.target)        
        
        if window:
            cwindows = list(windows.get_with(
                                network=window.network,
                                wclass=windows.ChannelWindow
                                ))
                            
            if len(cwindows) == 1 and not list(windows.get_with(network=window.network, wclass=windows.StatusWindow)):
                window.mutate(windows.StatusWindow, e.network, 'status')
                if e.requested:
                    window.activate()
            elif e.requested:
                window.close()
Ejemplo n.º 20
0
def onNick(e):
    color = getsourcecolor(e)
    if e.source == e.network.me:
        to_write = "%s%sYou are now known as %s" % (prefix(e), color, e.target)
    else:
        to_write = "%s%s%s is now known as %s" % (prefix(e), color, e.source, e.target)
    
    if e.source == e.network.me:
        for window in windows.get_with(network=e.network):
            window.write(to_write)
    else:
        for channame in chaninfo.channels(e.network):
            if chaninfo.ison(e.network,channame,e.source):
                window = windows.get(windows.ChannelWindow, e.network, channame)
                if window:
                    window.write(to_write)
Ejemplo n.º 21
0
def setdownPart(e):
    if e.source == e.network.me:
        window = windows.get(windows.ChannelWindow, e.network, e.target, core)

        if window:
            cwindows = list(
                windows.get_with(network=window.network,
                                 wclass=windows.ChannelWindow))

            if len(cwindows) == 1 and not list(
                    windows.get_with(network=window.network,
                                     wclass=windows.StatusWindow)):
                window.mutate(windows.StatusWindow, e.network, 'status')
                if e.requested:
                    window.activate()
            elif e.requested:
                window.close()
Ejemplo n.º 22
0
def onNick(e):
    if e.source == e.network.me:
        to_write = 'You are now known as %s' % e.target
    
        for window in windows.get_with(network=e.network):
            f = log_file(e.network, window.id)
            
            f.write(to_write)
    else:
        to_write = '%s is now known as %s' % (e.source, e.target)
    
        for channame in chaninfo.channels(e.network):
            if chaninfo.ison(e.network,channame,e.source):
                window = windows.get(windows.ChannelWindow, e.network, channame)
                if window:
                    f = log_file(e.network, window.id)
                    
                    f.write(to_write)
Ejemplo n.º 23
0
def onNick(e):
    color = getsourcecolor(e)
    if e.source == e.network.me:
        to_write = "%s%sYou are now known as %s" % (prefix(e), color, e.target)
    else:
        to_write = "%s%s%s is now known as %s" % (prefix(e), color, e.source,
                                                  e.target)

    if e.source == e.network.me:
        for window in windows.get_with(core.manager, network=e.network):
            window.write(to_write)
    else:
        for channame in chaninfo.channels(e.network):
            if chaninfo.ison(e.network, channame, e.source):
                window = windows.get(windows.ChannelWindow, e.network,
                                     channame)
                if window:
                    window.write(to_write)
Ejemplo n.º 24
0
def onClick(e):
    set_target(e)

    if is_nick(e):
        events.run('query %s' % e._target, e.window, e.window.network)
    
    # url of the form http://xxx.xxx or www.xxx.xxx       
    elif is_url(e):
        if e._target.startswith('www'):
            e._target = 'http://%s' % e._target
        ui.open_file(e._target)
    
    # click on a #channel
    elif is_chan(e):
        if not chaninfo.ischan(e.window.network, e._target):
            e.window.network.join(e._target)
        window = windows.get(windows.ChannelWindow, e.window.network, e._target)
        if window:
            window.activate()
Ejemplo n.º 25
0
def onClick(e):
    set_target(e)

    if is_nick(e):
        core.events.run('query %s' % e._target, e.window, e.window.network)

    # url of the form http://xxx.xxx or www.xxx.xxx
    elif is_url(e):
        if e._target.startswith('www'):
            e._target = 'http://%s' % e._target
        ui.open_file(e._target)

    # click on a #channel
    elif is_chan(e):
        if not chaninfo.ischan(e.window.network, e._target):
            e.window.network.join(e._target)
        window = windows.get(windows.ChannelWindow, e.window.network,
                             e._target)
        if window:
            window.activate()
Ejemplo n.º 26
0
def setupJoin(e):
    print e
    if e.source == e.network.me:
        e.network.channels[e.network.norm_case(e.target)] = Channel(e.target)
        e.network.raw('MODE ' + e.target)

    # if we wanted to be paranoid, we'd account for not being on the channel
    channel = getchan(e.network, e.target)
    channel.nicks[e.source] = ''
    channel.normal_nicks[e.network.norm_case(e.source)] = e.source

    if e.source == e.network.me:
        # If the channel window already existed, and we're joining, then we
        # didn't clear out the nicklist when we left. That means we have to clear
        # it out now.
        window = windows.get(windows.ChannelWindow, e.network, e.target, core)
        #window = core.window
        # print core
        if window:
            window.nicklist.clear()

    nicklist_add(e.network, channel, e.source)
Ejemplo n.º 27
0
def setupJoin(e):
    print e
    if e.source == e.network.me:
        e.network.channels[e.network.norm_case(e.target)] = Channel(e.target)
        e.network.raw('MODE ' + e.target)

    # if we wanted to be paranoid, we'd account for not being on the channel
    channel = getchan(e.network, e.target)
    channel.nicks[e.source] = ''
    channel.normal_nicks[e.network.norm_case(e.source)] = e.source

    if e.source == e.network.me:
        # If the channel window already existed, and we're joining, then we
        # didn't clear out the nicklist when we left. That means we have to clear
        # it out now.
        window = windows.get(windows.ChannelWindow, e.network, e.target, core)
        #window = core.window
        # print core
        if window:
            window.nicklist.clear()

    nicklist_add(e.network, channel, e.source)
Ejemplo n.º 28
0
def setupPart(e):
    e.window = windows.get(windows.ChannelWindow, e.network, e.target) or e.window
Ejemplo n.º 29
0
def setdownNick(e):
    if e.source != e.network.me:
        window = windows.get(windows.QueryWindow, e.network, e.source)
        if window:
            window.id = e.target
Ejemplo n.º 30
0
def onRaw(e):
    if not e.quiet:
        if e.msg[1].isdigit():
            if e.msg[1] == '311':
                reps = {
                    'nick':e.msg[3],
                    'timestamp':time.strftime(theme.get('TimeStamp',default.get('TimeStamp'))),
                    'pre':theme.get('Prefix',default.get('Prefix'))
                }
                output('WhoisStart',None,e.window,reps,widgets.EVENT)
                reps = {
                    'nick':e.msg[3],
                    'address':e.msg[4]+'@'+e.msg[5],
                    'text':e.msg[7],
                    'timestamp':time.strftime(theme.get('TimeStamp',default.get('TimeStamp'))),
                    'pre':theme.get('Prefix',default.get('Prefix'))
                }
                output('WhoisUser',None,e.window,reps,widgets.EVENT)

            elif e.msg[1] == '312':
                reps = {
                    'nick':e.msg[3],
                    'network':e.msg[4],
                    'text':e.msg[5],
                    'timestamp':time.strftime(theme.get('TimeStamp',default.get('TimeStamp'))),
                    'pre':theme.get('Prefix',default.get('Prefix'))
                }
                output('WhoisServer',None,e.window,reps,widgets.EVENT)

            elif e.msg[1] == '313':
                reps = {
                    'nick':e.msg[3],
                    'timestamp':time.strftime(theme.get('TimeStamp',default.get('TimeStamp'))),
                    'pre':theme.get('Prefix',default.get('Prefix'))
                }
                output('WhoisIrcop',None,e.window,reps,widgets.EVENT)

            elif e.msg[1] == '317':
                reps = {
                    'nick':e.msg[3],
                    'text':duration(int(e.msg[4])),
                    'timestamp':time.strftime(theme.get('TimeStamp',default.get('TimeStamp'))),
                    'pre':theme.get('Prefix',default.get('Prefix'))
                }
                output('WhoisIdle',None,e.window,reps,widgets.EVENT)
                if e.msg[5].isdigit():
                    reps['text'] = duration(int(e.msg[5]))
                    output('WhoisSignon',None,e.window,reps)

            elif e.msg[1] == '318':
                reps = {
                    'nick':e.msg[3],
                    'timestamp':time.strftime(theme.get('TimeStamp',default.get('TimeStamp'))),
                    'pre':theme.get('Prefix',default.get('Prefix'))
                }
                output('WhoisEnd',None,e.window,reps,widgets.EVENT)

            elif e.msg[1] == '319':
                reps = {
                    'nick':e.msg[3],
                    'text':e.msg[4],
                    'timestamp':time.strftime(theme.get('TimeStamp',default.get('TimeStamp'))),
                    'pre':theme.get('Prefix',default.get('Prefix'))
                }
                output('WhoisChannels',None,e.window,reps,widgets.EVENT)

            elif e.msg[1] == '329':
                reps = {
                    'chan':e.msg[3],
                    'text':time.ctime(int(e.msg[4])),
                    'timestamp':time.strftime(theme.get('TimeStamp',default.get('TimeStamp'))),
                    'pre':theme.get('Prefix',default.get('Prefix'))
                }
                window = windows.get(windows.ChannelWindow, e.network, e.msg[3]) or e.window
                output('CreationTime',None,window,reps,widgets.EVENT)

            elif e.msg[1] == '330':
                if len(e.msg) == 6 and not e.msg[4].isdigit() and not e.msg[5].isdigit():
                    reps = {
                        'nick':e.msg[3],
                        'text':e.msg[4],
                        'timestamp':time.strftime(theme.get('TimeStamp',default.get('TimeStamp'))),
                        'pre':theme.get('Prefix',default.get('Prefix'))
                    }
                    output('WhoisAccount',None,e.window,reps,widgets.EVENT)
                else:
                    e.window.write(theme.get('Prefix',default.get('Prefix'))+" %s" % ' '.join(e.msg[3:]))

            elif e.msg[1] == '332':
                reps = {
                    'chan':e.msg[3],
                    'text':e.text,
                    'timestamp':time.strftime(theme.get('TimeStamp',default.get('TimeStamp'))),
                    'pre':theme.get('Prefix',default.get('Prefix'))
                }
                window = windows.get(windows.ChannelWindow, e.network, e.msg[3]) or e.window
                output('Topic',None,e.window,reps,widgets.EVENT)

            elif e.msg[1] == '333':
                reps = {
                    'nick':e.msg[4],
                    'chan':e.msg[3],
                    'text':time.ctime(int(e.msg[5])),
                    'timestamp':time.strftime(theme.get('TimeStamp',default.get('TimeStamp'))),
                    'pre':theme.get('Prefix',default.get('Prefix'))
                }
                window = windows.get(windows.ChannelWindow, e.network, e.msg[3]) or e.window
                output('TopicSetBy',None,e.window,reps,widgets.EVENT)

            elif e.msg[1] == '338':
                reps = {
                    'nick':e.msg[3],
                    'address':e.msg[4],
                    'timestamp':time.strftime(theme.get('TimeStamp',default.get('TimeStamp'))),
                    'pre':theme.get('Prefix',default.get('Prefix'))
                }
                output('WhoisActually',None,e.window,reps,widgets.EVENT)

            else:
                e.window.write(theme.get('Prefix',default.get('Prefix'))+" %s" % ' '.join(e.msg[3:]))
    elif e.msg[1] == '366':
        color_nicklist(e.network,e.window)
    elif e.msg[1] == 'ERROR':
        reps = {
            'text':e.msg[4],
            'timestamp':time.strftime(theme.get('TimeStamp',default.get('TimeStamp'))),
            'pre':theme.get('Prefix',default.get('Prefix'))
        }
        output('Error',None,e.window,reps,widgets.EVENT)
Ejemplo n.º 31
0
def setupOwnText(e):
    e.window = \
        windows.get(windows.ChannelWindow, e.network, e.target, core) or \
        windows.get(windows.QueryWindow, e.network, e.target, core) or \
        e.window
Ejemplo n.º 32
0
def setupNotice(e):
    if e.target != e.network.me:
        e.window = \
            windows.get(windows.ChannelWindow, e.network, e.target, core) or e.window
Ejemplo n.º 33
0
def setupRaw(e):
    if e.msg[1] == '353':  # names reply
        channel = getchan(e.network, e.msg[4])
        if channel:
            if not channel.getting_names:
                channel.nicks.clear()
                channel.normal_nicks.clear()
                channel.getting_names = True
            if not channel.got_names:
                e.quiet = True
            for nickname in e.msg[5].split(' '):
                if nickname:
                    if not nickname[
                            0].isalpha() and nickname[0] in e.network.prefixes:
                        n = nickname[1:]
                        channel.nicks[n] = e.network.prefixes[nickname[0]]
                        channel.normal_nicks[e.network.norm_case(n)] = n
                    else:
                        channel.nicks[nickname] = ''
                        channel.normal_nicks[
                            e.network.norm_case(nickname)] = nickname

    elif e.msg[1] == '366':  # end of names reply
        channel = getchan(e.network, e.msg[3])
        if channel:
            if not channel.got_names:
                e.quiet = True
                channel.got_names = True
            channel.getting_names = False

            window = windows.get(
                windows.ChannelWindow,
                e.network,
                e.msg[3],
                core)
            if window:
                window.nicklist.replace(
                    (nick, escape(
                        prefix(
                            e.network, channel.name, nick)), sortkey(
                        e.network, channel.name, nick)) for nick in channel.nicks)

    elif e.msg[1] == '324':  # channel mode is
        channel = getchan(e.network, e.msg[3])
        if channel:
            if not channel.got_mode:
                e.quiet = True
                channel.got_mode = True
            mode = e.msg[4]
            params = e.msg[:4:-1]
            list_modes, always_parm_modes, set_parm_modes, normal_modes = \
                e.network.isupport['CHANMODES'].split(',')
            parm_modes = always_parm_modes + set_parm_modes
            channel.mode = e.msg[4]
            channel.special_mode.clear()
            for char in channel.mode:
                if char in parm_modes:
                    channel.special_mode[char] = params.pop()

    elif e.msg[1] == '331':  # no topic
        channel = getchan(e.network, e.msg[3])
        if channel:
            channel.topic = ''

    elif e.msg[1] == '332':  # channel topic is
        channel = getchan(e.network, e.msg[3])
        if channel:
            channel.topic = e.text
Ejemplo n.º 34
0
def setupKick(e):
    e.window = windows.get(windows.ChannelWindow, e.network, e.channel,
                           core) or e.window
Ejemplo n.º 35
0
def setupPart(e):
    e.window = windows.get(windows.ChannelWindow, e.network, e.target,
                           core) or e.window
Ejemplo n.º 36
0
def setupKick(e):
    e.window = windows.get(windows.ChannelWindow, e.network, e.channel) or e.window
Ejemplo n.º 37
0
def setupMode(e):
    if e.target != e.network.me:
        e.window = windows.get(windows.ChannelWindow, e.network, e.target) or e.window
Ejemplo n.º 38
0
def setupOwnText(e):
    e.window = \
        windows.get(windows.ChannelWindow, e.network, e.target) or \
        windows.get(windows.QueryWindow, e.network, e.target) or \
        e.window