Esempio n. 1
0
    void ProcessUrl(string nick, string url)
    {
        // If we haven't seen the URL recently.
        if (urlHistory.Add(url))
        {
            bool?inWhite = whitelist.IsInList(url, Channel, nick);
            // Check blacklist if whitelist isn't applicable.
            if (inWhite == null)
            {
                if (blacklist.IsInList(url, Channel, nick))
                {
                    log.Message("Blacklisted: {0}", url);
                }
                else
                {
                    OutputUrl(url);
                }
            }

            // If in whitelist, go directly to output and skip blacklist.
            else if (inWhite == true)
            {
                OutputUrl(url);
            }
            // If the whitelist was applicable, but the URL wasn't found in it.
            else
            {
                log.Message("Not whitelisted: {0}", url);
            }
        }
        // If we have seen the URL recently, don't output it.
        else
        {
            log.Message("Spam suppression: {0}", url);
        }
    }