summaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorYohann Ferreira <bertram@cegetel.net>2006-01-24 22:10:29 +0000
committerYohann Ferreira <bertram@cegetel.net>2006-01-24 22:10:29 +0000
commit47858bb48f2735d0a44e8c461951559fa94062d8 (patch)
treef63baae9ff9959f7c7795b44aa79be179b54a6ae /src/utils
parent5293e989f8ad43a1b02562be2bcba071803f24c3 (diff)
downloadmanaserv-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