'Pops lines from the line cache and passes them to be parsed
:param str nickname: Nickname of who sent the message
:param str channel: Channel where the message originated from
:return: None'

def process_message(self, nickname, channel):

    if (self.announcer_list and (nickname not in self.announcer_list)):
        log.debug(u'Ignoring    message:    from    non-announcer    %s', nickname)
        return
    lines = [MESSAGE_CLEAN.sub(u'', line) for line in self.line_cache[channel][nickname]]
    log.debug(u'Received    line(s):    %s', u'\n'.join(lines))
    if self.linepatterns:
        entries = self.entries_from_linepatterns(lines)
    elif self.multilinepatterns:
        (entries, lines) = self.entries_from_multilinepatterns(lines)
    else:
        entries = self.entries_from_lines(lines)
    for entry in entries:
        if ((self.tracker_config is not None) and entry):
            entry.update(self.process_tracker_config_rules(entry))
        elif (self.tracker_config is not None):
            log.error(u'Failed    to    parse    message(s).')
            return
        entry[u'title'] = entry.get(u'irc_torrentname')
        entry[u'url'] = entry.get(u'irc_torrenturl')
        log.debug(u'Entry    after    processing:    %s', dict(entry))
        if ((not entry[u'url']) or (not entry[u'title'])):
            log.error(u'Parsing    message    failed.    Title=%s,    url=%s.', entry[u'title'], entry[u'url'])
            continue
        log.verbose(u'IRC    message    in    %s    generated    an    entry:    %s', channel, entry)
        self.queue_entry(entry)
    if (self.multilinepatterns and lines):
        self.line_cache[channel][nickname] = lines
        log.debug(u'Left    over    lines:    %s', u'\n'.join(lines))
    else:
        self.line_cache[channel][nickname] = []
    self.processing_message = False
