- void OnChannelDelete(chanrec* chan)
- {
- StatsIter a = sh->find(chan->name);
- if (a != sh->end())
- {
- sh->erase(a);
- }
- this->changed = true;
- }
-
- void OnUserJoin(userrec* user, chanrec* channel, bool &silent)
- {
- StatsIter a = sh->find(channel->name);
- if (a != sh->end())
- {
- a->second++;
- }
- else
- {
- irc::string name = channel->name;
- sh->insert(std::pair<irc::string,int>(name,1));
- }
- this->changed = true;
- }
-
- void OnUserPart(userrec* user, chanrec* channel, const std::string &partmessage, bool &silent)
- {
- StatsIter a = sh->find(channel->name);
- if (a != sh->end())
- {
- a->second--;
- }
- this->changed = true;
- }
-
- void OnUserQuit(userrec* user, const std::string &message, const std::string &oper_message)
- {
- for (UCListIter v = user->chans.begin(); v != user->chans.end(); v++)
- {
- chanrec* c = v->first;
- StatsIter a = sh->find(c->name);
- if (a != sh->end())
- {
- a->second--;
- }
- }
- this->changed = true;
- }
-
- char* OnRequest(Request* request)
- {
- return NULL;
- }
-
- void Implements(char* List)
- {
- List[I_OnEvent] = List[I_OnRequest] = List[I_OnChannelDelete] = List[I_OnUserJoin] = List[I_OnUserPart] = List[I_OnUserQuit] = 1;
- }
-
- virtual ~ModuleHttpStats()
- {
- delete sh;
- delete so;
- }
-