implements #157 - chatbot whitelist
This commit is contained in:
@@ -9,11 +9,26 @@ BadWordCheck::BadWordCheck()
|
|||||||
bool BadWordCheck::run(QString msg)
|
bool BadWordCheck::run(QString msg)
|
||||||
{
|
{
|
||||||
msg = msg.toLower();
|
msg = msg.toLower();
|
||||||
|
bool badMessage(false);
|
||||||
|
|
||||||
QStringListIterator it(badWords);
|
QStringListIterator it(badWords);
|
||||||
while (it.hasNext()) {
|
while (it.hasNext()) {
|
||||||
if(msg.contains(it.next()))
|
QString bw=it.next();
|
||||||
return true;
|
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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,11 +13,16 @@ public:
|
|||||||
badWords = bw;
|
badWords = bw;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setBadWordsException(QStringList bwe) {
|
||||||
|
badWordsException = bwe;
|
||||||
|
}
|
||||||
|
|
||||||
bool run(QString);
|
bool run(QString);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
QStringList badWords;
|
QStringList badWords;
|
||||||
|
QStringList badWordsException;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // BADWORDCHECK_H
|
#endif // BADWORDCHECK_H
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ using namespace std;
|
|||||||
CleanerConfig::CleanerConfig()
|
CleanerConfig::CleanerConfig()
|
||||||
{
|
{
|
||||||
// !!!! Revisionsnummer der Configdefaults !!!!!
|
// !!!! Revisionsnummer der Configdefaults !!!!!
|
||||||
configRev = 8;
|
configRev = 9;
|
||||||
|
|
||||||
// Pfad und Dateinamen setzen
|
// Pfad und Dateinamen setzen
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
@@ -158,6 +158,11 @@ CleanerConfig::CleanerConfig()
|
|||||||
badWordsList.push_back("whore");
|
badWordsList.push_back("whore");
|
||||||
configList.push_back(ConfigInfo("BadWordsList", CONFIG_TYPE_STRING_LIST, "BadWords", badWordsList));
|
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;
|
list<string> urlStringsList;
|
||||||
urlStringsList.push_back("http://");
|
urlStringsList.push_back("http://");
|
||||||
urlStringsList.push_back(".com");
|
urlStringsList.push_back(".com");
|
||||||
|
|||||||
@@ -185,6 +185,14 @@ void MessageFilter::refreshConfig()
|
|||||||
}
|
}
|
||||||
myBadWordCheck->setBadWords(bwList);
|
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> urlStringsList = config->readConfigStringList("UrlStringsList");
|
||||||
std::list<std::string>::iterator it2;
|
std::list<std::string>::iterator it2;
|
||||||
QStringList urlList;
|
QStringList urlList;
|
||||||
|
|||||||
Reference in New Issue
Block a user