summaryrefslogblamecommitdiff
path: root/src/utils/slangsfilter.h
blob: f7ccc33f595a30ba6ba3aa8251e043faa88f3d5f (plain) (tree)


























                                                                               
                             





                 











































                                                                                           



              

                                                  
      
/*
 *  The Mana World Server
 *  Copyright 2004 The Mana World Development Team
 *
 *  This file is part of The Mana World.
 *
 *  The Mana World  is free software; you can redistribute  it and/or modify it
 *  under the terms of the GNU General  Public License as published by the Free
 *  Software Foundation; either version 2 of the License, or any later version.
 *
 *  The Mana  World is  distributed in  the hope  that it  will be  useful, but
 *  WITHOUT ANY WARRANTY; without even  the implied warranty of MERCHANTABILITY
 *  or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
 *  more details.
 *
 *  You should  have received a  copy of the  GNU General Public  License along
 *  with The Mana  World; if not, write to the  Free Software Foundation, Inc.,
 *  59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 *
 *  $Id$
 */


#ifndef _TMWSERV_SLANGSFILTER_H_
#define _TMWSERV_SLANGSFILTER_H_

#include <string>
#include "../configuration.h"

namespace tmwserv
{
namespace utils
{

/**
 * Used to filter content containing bad words. Like username, character's names, chat, ...
 */
class SlangsFilter
{
    public:
        /**
         * ctors.
         */
        SlangsFilter(Configuration *config);

        ~SlangsFilter();

        /**
         * Load slang list from the config file.
         *
         * @return true is the config is loaded succesfully
         *
         */
        bool
        loadFilterList();

        /**
         * Write slang list to the config file.
         *
         * @return true is the config is loaded succesfully
         *
         */
        void
        writeFilterList();

        /**
        * Useful to filter slangs automatically, by instance.
        * @return true if the sentence is slangs clear.
        */
        bool
        filterContent(const std::string& text);


    private:
        std::list<std::string> mSlangs;    /**< the formatted Slangs list */
        bool mInitialized;                 /**< Set if the list is loaded */
        Configuration *mConfig;            /**< The config instance */
};

} // ::utils
} // ::tmwserv

extern tmwserv::utils::SlangsFilter *slangsFilter;

#endif