コード例 #1
0
ファイル: capab.py プロジェクト: NuclearW/weechat-scripts
def script_unload():
    for b, n in nicklist.keys():
        weechat.nicklist_remove_nick(*nicklist[b, n])

    for server in capab_hooks.keys():
        disable_capab(server)
    return WEECHAT_RC_OK
コード例 #2
0
def script_unload():
    for b, n in nicklist.keys():
        weechat.nicklist_remove_nick(*nicklist[b, n])

    for server in capab_hooks.keys():
        disable_capab(server)
    return WEECHAT_RC_OK
コード例 #3
0
 def updateNicklist(self, user, remove = False) :
     group = weechat.nicklist_search_group(self.buffer, '', user.login)
     if group is not None and user.login in self.contacts :
         if user.fd in self.contacts[user.login] :
             weechat.nicklist_remove_nick(self.buffer, self.contacts[user.login][user.fd].nick)
             del self.contacts[user.login][user.fd]
         if remove is False :
             user.nick = weechat.nicklist_add_nick(self.buffer, group, ' :%s%s@%s%s' % (user.fd, weechat.color('separator'), weechat.color('default'), user.location), '', '', '', 1)
             self.contacts[user.login][user.fd] = user
コード例 #4
0
ファイル: capab.py プロジェクト: NuclearW/weechat-scripts
def quit_signal_cb(server_name, signal, signal_data):
    #debug('signal: %s' %signal)
    #debug('signal data: %s' %signal_data)
    nick = signal_data[1:signal_data.find('!')]
    if nick in ident_nick:
        del ident_nick[nick]
    for b, n in nicklist.keys():
        if n == nick:
            weechat.nicklist_remove_nick(*nicklist[b, n])
            del nicklist[b, n]
    return WEECHAT_RC_OK
コード例 #5
0
def quit_signal_cb(server_name, signal, signal_data):
    #debug('signal: %s' %signal)
    #debug('signal data: %s' %signal_data)
    nick = signal_data[1:signal_data.find('!')]
    if nick in ident_nick:
        del ident_nick[nick]
    for b, n in nicklist.keys():
        if n == nick:
            weechat.nicklist_remove_nick(*nicklist[b, n])
            del nicklist[b, n]
    return WEECHAT_RC_OK
コード例 #6
0
ファイル: capab.py プロジェクト: NuclearW/weechat-scripts
def part_signal_cb(server_name, signal, signal_data):
    #debug('signal: %s' %signal)
    #debug('signal data: %s' %signal_data)
    signal_data = signal_data.split()
    host = signal_data[0]
    channel = signal_data[2]
    nick = host[1:host.find('!')]
    buffer = '%s.%s' %(server_name, channel)
    key = (buffer, nick)
    if key in nicklist:
        weechat.nicklist_remove_nick(*nicklist[key])
        del nicklist[key]
    elif nick == weechat.info_get('irc_nick', server_name):
        for b, n in nicklist.keys():
            if b == buffer:
                weechat.nicklist_remove_nick(*nicklist[b, n])
                del nicklist[b, n]
    return WEECHAT_RC_OK
コード例 #7
0
def part_signal_cb(server_name, signal, signal_data):
    #debug('signal: %s' %signal)
    #debug('signal data: %s' %signal_data)
    signal_data = signal_data.split()
    host = signal_data[0]
    channel = signal_data[2]
    nick = host[1:host.find('!')]
    buffer = '%s.%s' % (server_name, channel)
    key = (buffer, nick)
    if key in nicklist:
        weechat.nicklist_remove_nick(*nicklist[key])
        del nicklist[key]
    elif nick == weechat.info_get('irc_nick', server_name):
        for b, n in nicklist.keys():
            if b == buffer:
                weechat.nicklist_remove_nick(*nicklist[b, n])
                del nicklist[b, n]
    return WEECHAT_RC_OK
コード例 #8
0
ファイル: capab.py プロジェクト: NuclearW/weechat-scripts
def update_nicklist(buffer_name):
    buffer_pointer = weechat.buffer_search('irc', buffer_name)
    if not buffer_pointer:
        return

    group_pointers = {}

    infolist = weechat.infolist_get('nicklist', buffer_pointer, '')
    infolist_string = weechat.infolist_string
    infolist_next = weechat.infolist_next
    while infolist_next(infolist):
        if not infolist_string(infolist, 'type') == 'nick':
            continue

        nick = infolist_string(infolist, 'name')
        if nick not in ident_nick:
            continue
        
        group = infolist_string(infolist, 'group_name')
        color = infolist_string(infolist, 'color')
        prefix = infolist_string(infolist, 'prefix')
        prefix_color = infolist_string(infolist, 'prefix_color')

        if ident_nick[nick]:
            prefix_new = ' '
            group_new = '080|ident'
            color_new = 'green'
        else:
            prefix_new = '~'
            group_new = '081|unident'
            color_new = 'brown'
            prefix_color = 'cyan'

        if prefix[0] != prefix_new[0]:
            if prefix == ' ':
                prefix = prefix_new
                prefix_new = ''
            elif prefix_new != ' ':
                prefix = prefix_new + prefix
                prefix_new = ''

        if color == 'bar_fg':
            color = color_new
            color_new = ''

        if group[:2] == '08':
            group = group_new
            group_new = ''
            try:
                group_pointer = group_pointers[group]
            except KeyError:
                group_pointer = weechat.nicklist_search_group(buffer_pointer, '', group)
                if not group_pointer:
                    group_pointer = weechat.nicklist_add_group(buffer_pointer, '', group,
                            'weechat.color.nicklist_group', 1)
                group_pointers[group] = group_pointer
        else:
            group_pointer = weechat.nicklist_search_group(buffer_pointer, '', group)

        if prefix_new and group_new and color_new:
            # nothing to change
            continue

        #debug('adding nick: %s%s to %s' %(prefix, nick, group))
        nick_pointer = weechat.nicklist_search_nick(buffer_pointer, '', nick)
        if nick_pointer:
            weechat.nicklist_remove_nick(buffer_pointer, nick_pointer)
        nick_pointer = weechat.nicklist_add_nick(buffer_pointer, group_pointer, nick, color,
                prefix, prefix_color, 1)
        nicklist[buffer_name, nick] = (buffer_pointer, nick_pointer)
    weechat.infolist_free(infolist)
コード例 #9
0
ファイル: weetweet.py プロジェクト: Arlefreak/dotfiles
def remove_from_nicklist(buf, nick, group=""):
    """Remove nick from the nicklist."""
    if group == "":
        group = friends_nicks_group[buf]
    nick_ptr = weechat.nicklist_search_nick(buf, group, nick)
    weechat.nicklist_remove_nick(buf, nick_ptr)
コード例 #10
0
def remove_from_nicklist(buf, nick):
    """Remove nick from the nicklist."""
    nick_ptr = wc.nicklist_search_nick(buf, "", nick)
    wc.nicklist_remove_nick(buf, nick_ptr)
コード例 #11
0
ファイル: weetwit.py プロジェクト: ainmosni/weetwit
def remove_from_nicklist(buf, nick):
    """Remove nick from the nicklist."""
    nick_ptr = wc.nicklist_search_nick(buf, "", nick)
    wc.nicklist_remove_nick(buf, nick_ptr)
コード例 #12
0
ファイル: rb_online.py プロジェクト: dregin/Weechat-Scripts
def set_colors( users_logged_in ):
	global rbon_messages								# Variable to hold contents of rbon bar item
	global first_run									# Script needs one run to populate online and offline dictionaries

	global online_dict
	global offline_dict
	global outgoing_list
	global incoming_list

	nicks = weechat.infolist_get( 'irc_nick', '', 'redbrick,#lobby' )
	buff_ptr = weechat.buffer_search( "irc","redbrick.#lobby" )
	if( nicks == "" and buff_ptr == "" ):
		nicks = weechat.infolist_get( 'irc_nick', '', 'irc.redbrick.dcu.ie,#lobby' )
		buff_ptr = weechat.buffer_search( "irc","irc.redbrick.dcu.ie.#lobby" )

	group_normal_ptr = weechat.nicklist_search_group( buff_ptr, "", "..." )
	group_op_ptr = weechat.nicklist_search_group( buff_ptr, "", "o" )
	color_nick_online = weechat.config_get_plugin( "color_nick_online" )
	if( nicks != None ):
		if( nicks == {} ):
			weechat.prnt( "No nicks" )
		else:
			while weechat.infolist_next( nicks ):										# Stepping through each nick in #lobby
				name = weechat.infolist_string(nicks, 'name')
				host = weechat.infolist_string(nicks, 'host')
				flag = weechat.infolist_integer(nicks, 'flags')
				timeout = int(weechat.config_get_plugin("interim_period"))
				if( "@Redbrick.dcu.ie" in host ):
					rnick = re.sub('@Redbrick.dcu.ie', '', host)						# Strip real nick from host
					nick_ptr = weechat.nicklist_search_nick(buff_ptr, "", name)         # Find nick pointer

					#
					# - Incoming/Outgoing lists won't be populated if at least one iteration of the list hasn't happened.
					#		first_run set false at the end of first iteration
					# - Set outgoing if - user is offline, user WAS online on the last iteration, user is not currently outgoing
					# - Set incoming if - user is online, user was NOT online on the last iteration, user is not currently incoming 
					#

					#
					# - Script uses stacks
					#		When user moves into a state they are pushed onto the stack
					#		After a set time hook_timer's callback pops the user off the stack and they are moved into either offline or online dictionary
					#

					# If NOT already logged in NOT first run WAS online on last loop NOT in outgoing list 

					if( not rnick in users_logged_in and not first_run and rnick in online_dict and rnick not in outgoing_list ):
						# weechat.prnt("", "OUTgoing user - %s" % rnick)
						outgoing_list.insert(0, rnick)
						weechat.hook_timer(timeout * 1000, 0, 1, "pop_outgoing", "")				# TODO - This hook executes pop_outgoing immediately instead of waiting 10 seconds
						color = weechat.config_get_plugin( "outgoing_color" )
						# TODO - Add OUTGOING nick to rbon_messages here to be displayed in the rbon bar item
						rbon_nick_color = weechat.color( color )
						string = "%s%s" % ( rbon_nick_color,name )

						rbon_messages.append( string )
						weechat.bar_item_update( "rbon" )

						if( rnick in online_dict ):
							del online_dict[ rnick ]

					# If IS logged in NOT first run IN nicklist WAS offline on last loop NOT in incoming list

					elif( rnick in users_logged_in and not first_run and rnick in offline_dict and rnick not in incoming_list ):
						# weechat.prnt("", "INcoming user - %s" % rnick)
						incoming_list.insert(0, rnick)
						weechat.hook_timer(timeout * 1000, 0, 1, "pop_incoming", "")				# TODO - This hook executes pop_incoming immediately instead of waiting 10 seconds
						color = weechat.config_get_plugin("incoming_color")												# Color incoming users red
						# TODO - Add INCOMING nick to rbon_messages here to be displayed in the rbon bar item
						rb_nick_color = weechat.color( color )	
						string = "%s%s" % ( rb_nick_color, name )
						
						rbon_messages.append( string )
						weechat.bar_item_update( "rbon" )

						if( rnick in offline_dict ):
							del offline_dict[rnick]

					elif( rnick in incoming_list ): color = weechat.config_get_plugin( "incoming_color" )

					elif( rnick in outgoing_list ): color = weechat.config_get_plugin( "outgoing_color" )

					# Check to see if that user is logged
					elif( rnick in users_logged_in ):
						if( rnick in offline_dict ):
							del offline_dict[rnick]
						online_dict[rnick] = ""
						color = weechat.config_get_plugin( "online_color" )												# Color online user user nicks

					else:
						offline_dict[rnick] = ""
						if( rnick in online_dict ):
							del online_dict[rnick]
						color = weechat.config_get_plugin( "offline_color" )											# Colour offline user nicks

					# Adding nicks with relevant colours back into the nicklist

					if( buff_ptr and nick_ptr ):
						# TODO - Decide whether or not this REMOVE should be moved...
						weechat.nicklist_remove_nick(buff_ptr, nick_ptr)
					if( buff_ptr ):															# The nick may already have been removed from the buffer....
						if( flag == 0 ):													# Check if normal user
							weechat.nicklist_add_nick(buff_ptr, group_normal_ptr, name, weechat.color(color), " ", color, 1)
						elif( flag == 8 ):													# Check if ops (include @ prefix) 
							weechat.nicklist_add_nick(buff_ptr, group_op_ptr, name, weechat.color(color), "@", color, 1)
	first_run = 0
	users_rb_dict.clear()
	weechat.infolist_free( nicks )
	return weechat.WEECHAT_RC_OK
コード例 #13
0
def remove_nick(name, buffer, group):
    pointer = weechat.nicklist_search_nick(buffer, "", name)
    if pointer:
        weechat.nicklist_remove_nick(buffer, pointer)
    return weechat.WEECHAT_RC_OK
コード例 #14
0
def remove_nick(name, buffer, group):
    pointer = weechat.nicklist_search_nick(buffer, "", name)
    if pointer:
        weechat.nicklist_remove_nick(buffer, pointer)
    return weechat.WEECHAT_RC_OK
コード例 #15
0
def update_nicklist(buffer_name):
    buffer_pointer = weechat.buffer_search('irc', buffer_name)
    if not buffer_pointer:
        return

    group_pointers = {}

    infolist = weechat.infolist_get('nicklist', buffer_pointer, '')
    infolist_string = weechat.infolist_string
    infolist_next = weechat.infolist_next
    while infolist_next(infolist):
        if not infolist_string(infolist, 'type') == 'nick':
            continue

        nick = infolist_string(infolist, 'name')
        if nick not in ident_nick:
            continue

        group = infolist_string(infolist, 'group_name')
        color = infolist_string(infolist, 'color')
        prefix = infolist_string(infolist, 'prefix')
        prefix_color = infolist_string(infolist, 'prefix_color')

        if ident_nick[nick]:
            prefix_new = ' '
            group_new = '080|ident'
            color_new = 'green'
        else:
            prefix_new = '~'
            group_new = '081|unident'
            color_new = 'brown'
            prefix_color = 'cyan'

        if prefix[0] != prefix_new[0]:
            if prefix == ' ':
                prefix = prefix_new
                prefix_new = ''
            elif prefix_new != ' ':
                prefix = prefix_new + prefix
                prefix_new = ''

        if color == 'bar_fg':
            color = color_new
            color_new = ''

        if group[:2] == '08':
            group = group_new
            group_new = ''
            try:
                group_pointer = group_pointers[group]
            except KeyError:
                group_pointer = weechat.nicklist_search_group(
                    buffer_pointer, '', group)
                if not group_pointer:
                    group_pointer = weechat.nicklist_add_group(
                        buffer_pointer, '', group,
                        'weechat.color.nicklist_group', 1)
                group_pointers[group] = group_pointer
        else:
            group_pointer = weechat.nicklist_search_group(
                buffer_pointer, '', group)

        if prefix_new and group_new and color_new:
            # nothing to change
            continue

        #debug('adding nick: %s%s to %s' %(prefix, nick, group))
        nick_pointer = weechat.nicklist_search_nick(buffer_pointer, '', nick)
        if nick_pointer:
            weechat.nicklist_remove_nick(buffer_pointer, nick_pointer)
        nick_pointer = weechat.nicklist_add_nick(buffer_pointer, group_pointer,
                                                 nick, color, prefix,
                                                 prefix_color, 1)
        nicklist[buffer_name, nick] = (buffer_pointer, nick_pointer)
    weechat.infolist_free(infolist)