implements #157 - chatbot whitelist

This commit is contained in:
doitux
2012-12-09 19:44:20 +01:00
parent a3fe2c330d
commit a6420642f3
4 changed files with 37 additions and 4 deletions
+18 -3
View File
@@ -9,11 +9,26 @@ BadWordCheck::BadWordCheck()
bool BadWordCheck::run(QString msg)
{
msg = msg.toLower();
bool badMessage(false);
QStringListIterator it(badWords);
while (it.hasNext()) {
if(msg.contains(it.next()))
return true;
QString bw=it.next();
if(msg.contains(bw)) {
badMessage=true;
//exception check
QStringListIterator it2(badWordsException);
while (it2.hasNext()) {
QString bwe=it2.hasNext();
if(bwe.contains(bw) && msg.contains(bwe)) {
badMessage=false;
}
}
}
}
return false;
if(badMessage) return true;
else return false;
}
+5
View File
@@ -13,11 +13,16 @@ public:
badWords = bw;
}
void setBadWordsException(QStringList bwe) {
badWordsException = bwe;
}
bool run(QString);
private:
QStringList badWords;
QStringList badWordsException;
};
#endif // BADWORDCHECK_H
+6 -1
View File
@@ -43,7 +43,7 @@ using namespace std;
CleanerConfig::CleanerConfig()
{
// !!!! Revisionsnummer der Configdefaults !!!!!
configRev = 8;
configRev = 9;
// Pfad und Dateinamen setzen
#ifdef _WIN32
@@ -158,6 +158,11 @@ CleanerConfig::CleanerConfig()
badWordsList.push_back("whore");
configList.push_back(ConfigInfo("BadWordsList", CONFIG_TYPE_STRING_LIST, "BadWords", badWordsList));
list<string> badWordsExceptionList;
badWordsExceptionList.push_back("idiots end");
configList.push_back(ConfigInfo("BadWordsException", CONFIG_TYPE_STRING_LIST, "BadWordsException", badWordsExceptionList));
list<string> urlStringsList;
urlStringsList.push_back("http://");
urlStringsList.push_back(".com");
+8
View File
@@ -185,6 +185,14 @@ void MessageFilter::refreshConfig()
}
myBadWordCheck->setBadWords(bwList);
std::list<std::string> badWordsExceptionList = config->readConfigStringList("BadWordsList");
std::list<std::string>::iterator it1;
QStringList bweList;
for(it1= badWordsExceptionList.begin(); it1 != badWordsExceptionList.end(); ++it1) {
bweList << QString::fromUtf8(it1->c_str());
}
myBadWordCheck->setBadWordsException(bweList);
std::list<std::string> urlStringsList = config->readConfigStringList("UrlStringsList");
std::list<std::string>::iterator it2;
QStringList urlList;