moderation.h

Go to the documentation of this file.
00001 /*
00002 #########################################################################
00003 #
00004 #  This file is part of trustyRC.
00005 #
00006 #  trustyRC, fully modular IRC robot 
00007 #  Copyright (C) 2006-2008 Nicoleau Fabien 
00008 #
00009 #  trustyRC is free software: you can redistribute it and/or modify
00010 #  it under the terms of the GNU General Public License as published by
00011 #  the Free Software Foundation, either version 3 of the License, or
00012 #  (at your option) any later version.
00013 #
00014 #  trustyRC is distributed in the hope that it will be useful,
00015 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
00016 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017 #  GNU General Public License for more details.
00018 #
00019 #  You should have received a copy of the GNU General Public License
00020 #  along with trustyRC.  If not, see <http://www.gnu.org/licenses/>.
00021 #
00022 #########################################################################
00023 */
00024 
00029 #ifndef MODULE_H
00030 #define MODULE_H
00031 #include "../plugin.h"
00032 #include "../botkernel.h"
00033 
00034 #ifndef HAVE_TINYXML
00035 #include "../tinyxml/tinyxml.h"
00036 #else 
00037 #include <tinyxml.h>
00038 #endif
00039 
00040 
00041 #include "admin.h"
00042 #include "usersinfos.h"
00043 #include <time.h>
00044 #include <map>
00045 using namespace std;
00046 
00053 class Moderation : public Plugin
00054 {
00055    private:
00057       TiXmlDocument * doc ;
00059       TiXmlNode* root;
00061       void initFile();
00063                 map<string,int> rejoinAttempts;
00064    public:
00066            Moderation(BotKernel*);
00068       bool addBan(string,string,unsigned int,string,string);
00070       string delBan(string,unsigned int);
00072       bool isBanned(string,string);
00074       vector<string> getBanList(string);
00076       vector<string> banInfos(string,unsigned int);
00078       vector<string> clearList(string);
00080       vector<string> clearOutBans(vector<string>);
00082       bool checkAccess(string,string,unsigned int,BotKernel*);
00084       bool hasOpPrivileges(string,string,string,BotKernel*);
00086       vector<string*> getChanUsersList(string,BotKernel*);
00088       bool checkMode(string,string,char,BotKernel*);
00090       unsigned int getRejoinAttempts(string);
00092       void bumpRejoinAttempts(string);
00094       void clearRejoinAttempts(string);
00095 };
00096 
00097 
00098 #endif
00099 

Generated on Sun Aug 16 15:28:28 2009 for trustyRC by  doxygen 1.5.8