Beispiel #1
0
    '251': 'network count user',
    '252': 'network count op',
    '253': 'network count unknowns',
    '254': 'network count channels',
    '255': 'server count user',

    # Channel Topic Events
    '332': 'server topic',
    '333': 'server topic_by',
    
    # Names reply
    '353': 'server name reply',
    '366': 'server name complete',
    
    # MOTD
    '372': 'server motd content',
    '375': 'server motd start',
    '376': 'server motd end',


}

def _signal_rewrite(new):
    """ Returns a function that re-emits a signal under a different name as defined by new """
    return lambda *params: signals.emit(new, params)

# Add rewrite signal handlers
for mapping in signal_mappings.keys():
    signals.add_first(('event %s' % mapping), _signal_rewrite(signal_mappings[mapping]))

Beispiel #2
0
 def __init__(self, server, name):
     super(IrcChannel, self).__init__(server, name)
     self.nicks = {}
     signals.add_first('server name reply', self._namelist)
     signals.add_first('server name complete', self._synchronized)
     signals.add_first('server topic', self._topic)
     signals.add_first('server topic_by', self._topic_by)
     signals.add_first('event mode', self._mode)
     signals.add_first('event nick', self._nick_change)
     signals.add('command names', self._names)
Beispiel #3
0
    signals.emit('event %s' % command.lower(), (server, params, prefix))


def _process_params(params):
    if params.startswith(':'):
        return [ params[1:] ] # This is trailing
    next_space = params.find(' ')
    if next_space != -1:
        other_params = _process_params(params[next_space + 1:])
        other_params.insert(0, params[0:next_space])
        return other_params
    else:
        return [ params ]

def _process_prefix(prefix):
    if prefix == None:
        return None
    prefix_match = re.match(r':(?P<nick>[^@!]+)(!(?P<user>[^@]+))?(@(?P<host>.+))?', prefix)
    return { 'nick': prefix_match.group('nick'),
             'user': prefix_match.group('user'),
             'host': prefix_match.group('host') }


def _ping_handler(server, parameters, prefix):
    server.pong(parameters)

# Add signal handlers
signals.add_first('server incoming', server_incoming)
signals.add_first('server event', server_event)
signals.add_first('event ping', _ping_handler)
Beispiel #4
0
    message = parameters[-1]
    ctcp_cmd = _process_ctcp_cmd(message)
    target = parameters[-2]
    if target  == server.nickname:
        target = prefix["nick"]
    query = server._get_query(target)
    if ctcp_cmd != None:
        split = ctcp_cmd.find(' ')
        message = ''
        if split > -1:
            message = ctcp_cmd[split:]
            ctcp_cmd = ctcp_cmd[:split]
        signals.emit('ctcp cmd', (server, ctcp_cmd, message, query, prefix))
    else:
        if type(query) == IrcChannel: # If we're in a public channel
            signals.emit('message public', (server, message, query, prefix))
        else:
            signals.emit('message private', (server, message, query, prefix))

def _mode_handler(server, parameters, prefix):
    logger.info('%s - %s' % (prefix, parameters))



logger = logging.getLogger('irc.messaging')
# Add Signal Handlerss
signals.add_first('event privmsg', _privmsg_handler)
signals.add_first('event join', _join_handler)
signals.add_first('event part', _part_handler)
signals.add_first('event mode', _mode_handler)
Beispiel #5
0
def set(key, value):
    child_key, parent = _get_dict_for_path(key, settings, create_missing=True)
    parent[child_key] = value

def load_json(json):
    global settings
    settings = simplejson.loads(json)

def dump_json():
    global settings
    return simplejson.dumps(settings, indent=' ')

# Command handlers
def cmd_set(arguments):
    split = arguments.find(' ')
    key = arguments
    if split != -1:
        key = arguments[:split]
        arguments = arguments[split + 1:]
        set(key, arguments)
        logger.info('%s = %s' % (key, get(key)))
    else:
        logger.info('%s = %s' % (key, get(key)))

# Signals
signals.add_first("command set", cmd_set)

# Set the logger
logger = logging.getLogger('irc.settings')