diff options
author | Yohann Ferreira <bertram@cegetel.net> | 2006-01-24 22:10:29 +0000 |
---|---|---|
committer | Yohann Ferreira <bertram@cegetel.net> | 2006-01-24 22:10:29 +0000 |
commit | 47858bb48f2735d0a44e8c461951559fa94062d8 (patch) | |
tree | f63baae9ff9959f7c7795b44aa79be179b54a6ae /src/utils | |
parent | 5293e989f8ad43a1b02562be2bcba071803f24c3 (diff) | |
download | manaserv-47858bb48f2735d0a44e8c461951559fa94062d8.tar.gz manaserv-47858bb48f2735d0a44e8c461951559fa94062d8.tar.bz2 manaserv-47858bb48f2735d0a44e8c461951559fa94062d8.tar.xz manaserv-47858bb48f2735d0a44e8c461951559fa94062d8.zip |
Chat Channeling Commit part 4. Renamed the slang filter into StringFilter and moved some code to it. Added the missing protocol values, and implemented registering/registering of channels; More to come about it.
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/stringfilter.cpp (renamed from src/utils/slangsfilter.cpp) | 48 | ||||
-rw-r--r-- | src/utils/stringfilter.h (renamed from src/utils/slangsfilter.h) | 25 |
2 files changed, 59 insertions, 14 deletions
diff --git a/src/utils/slangsfilter.cpp b/src/utils/stringfilter.cpp index a729bb93..3e72a278 100644 --- a/src/utils/slangsfilter.cpp +++ b/src/utils/stringfilter.cpp @@ -20,7 +20,8 @@ * $Id$ */ -#include "slangsfilter.h" +#include "../defines.h" +#include "stringfilter.h" #include "logger.h" namespace tmwserv @@ -28,21 +29,21 @@ namespace tmwserv namespace utils { -SlangsFilter::SlangsFilter(Configuration *config) +StringFilter::StringFilter(Configuration *config) : mInitialized(false), mConfig(config) { mSlangs.clear(); - loadFilterList(); + loadSlangFilterList(); } -SlangsFilter::~SlangsFilter() +StringFilter::~StringFilter() { - writeFilterList(); + writeSlangFilterList(); mSlangs.clear(); } -bool SlangsFilter::loadFilterList() +bool StringFilter::loadSlangFilterList() { mInitialized = false; std::string slangsList = mConfig->getValue("SlangsList", ""); @@ -70,7 +71,7 @@ bool SlangsFilter::loadFilterList() return false; } -void SlangsFilter::writeFilterList() +void StringFilter::writeSlangFilterList() { // Write the list to config std::string slangsList = ""; @@ -83,7 +84,7 @@ void SlangsFilter::writeFilterList() //mConfig->setValue("SlangsList", slangsList); } -bool SlangsFilter::filterContent(const std::string& text) +bool StringFilter::filterContent(const std::string& text) { if (mInitialized) { @@ -119,5 +120,36 @@ bool SlangsFilter::filterContent(const std::string& text) } } +bool StringFilter::isEmailValid(const std::string& email) +{ + // Testing Email validity + if ( (email.length() < MIN_EMAIL_LENGTH) || (email.length() > MAX_EMAIL_LENGTH)) + { + LOG_INFO(email << ": Email too short or too long.", 1) + return false; + } + if ((email.find_first_of('@') != std::string::npos)) // Searching for an @. + { + int atpos = email.find_first_of('@'); + if (email.find_first_of('.', atpos) != std::string::npos) // Searching for a '.' after the @. + { + if (email.find_first_of(' ') == std::string::npos) // Searching if there's no spaces. + { + return true; + } + } + } + return false; +} + +bool StringFilter::findDoubleQuotes(const std::string& text) +{ + for (unsigned int i = 0; i < text.length(); i++) + { + if (text[i] == '\"') return true; + } + return false; +} + } // ::utils } // ::tmwserv diff --git a/src/utils/slangsfilter.h b/src/utils/stringfilter.h index f7ccc33f..009bbeb4 100644 --- a/src/utils/slangsfilter.h +++ b/src/utils/stringfilter.h @@ -35,15 +35,15 @@ namespace utils /** * Used to filter content containing bad words. Like username, character's names, chat, ... */ -class SlangsFilter +class StringFilter { public: /** * ctors. */ - SlangsFilter(Configuration *config); + StringFilter(Configuration *config); - ~SlangsFilter(); + ~StringFilter(); /** * Load slang list from the config file. @@ -52,7 +52,7 @@ class SlangsFilter * */ bool - loadFilterList(); + loadSlangFilterList(); /** * Write slang list to the config file. @@ -61,7 +61,7 @@ class SlangsFilter * */ void - writeFilterList(); + writeSlangFilterList(); /** * Useful to filter slangs automatically, by instance. @@ -70,6 +70,19 @@ class SlangsFilter bool filterContent(const std::string& text); + /** + * Tells if an email is valid + */ + bool + isEmailValid(const std::string& email); + + /** + * find double quotes (") in strings. + * Very useful not to make SQL Queries bqsed on names crash + * I placed it here cause where you've got " you can have slangs... + */ + bool + findDoubleQuotes(const std::string& text); private: std::list<std::string> mSlangs; /**< the formatted Slangs list */ @@ -80,6 +93,6 @@ class SlangsFilter } // ::utils } // ::tmwserv -extern tmwserv::utils::SlangsFilter *slangsFilter; +extern tmwserv::utils::StringFilter *stringFilter; #endif |