Neler yeni

Kanal ve Özel Loglama Modülü m_loggit.c

Disket

Moderatör
Katılım
24 Nis 2019
Mesajlar
1,000
Tepkime puanı
3
Konum
Ankara
/*
  • ==================================================================
  • Filename: m_loggit.c
  • Description: Real-time Logging
  • Written by: MartinCo
  • ==================================================================
*/
#include "config.h"
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "numeric.h"
#include "msg.h"
#include "channel.h"
#include
#include
#include
#include
#include
#include
#include "h.h"
// ==================================================================
// Definitions & macros
// ================================
#define MyMod LoggitModInfo->handle
#define DelHook(x) if (x) HookDel(x); x = NULL
DLLFUNC char *loggit_privmsg(aClient *, aClient *, aClient *, char *, int);
DLLFUNC char *loggit_chanmsg(aClient *, aClient *, aChannel *, char *, int);
// ==================================================================
// Module header
// ==================================================================
ModuleHeader MOD_HEADER(m_loggit)
= {
"Loggit",
"$Id: m_loggit.c,v 3.6 2007 MartinCo Exp $",
"Loggit",
"3.2-b8-1",
NULL
};
ModuleInfo *LoggitModInfo;
static Hook *HookPrivMsg;
static Hook *HookChanMsg;
static FILE *fp;
DLLFUNC int MOD_INIT(m_loggit)(ModuleInfo *modinfo)
{
int ret = MOD_SUCCESS;
LoggitModInfo = modinfo;
HookPrivMsg = HookAddPCharEx(MyMod, HOOKTYPE_USERMSG, loggit_privmsg);
HookChanMsg = HookAddPCharEx(MyMod, HOOKTYPE_CHANMSG, loggit_chanmsg);
return ret;
}
DLLFUNC int MOD_LOAD(m_loggit)(int module_load)
{
return MOD_SUCCESS;
}
DLLFUNC int MOD_UNLOAD(m_loggit)(int module_unload)
{
DelHook(HookChanMsg);
DelHook(HookPrivMsg);
return MOD_SUCCESS;
}
// ==================================================================
// Functions for nicknames, channel names and prefixes
// ==================================================================
DLLFUNC char *loggit_privmsg(aClient *cptr, aClient *sptr, aClient *acptr, char *text, int notice)
{
time_t calender_time;
struct tm tdate;
calender_time = time(NULL);
tdate = *localtime(&calender_time);
FILE * pFile;
pFile = fopen ("privmsg.log", "a");
fprintf (pFile, "%02d-%02d-%02d %02d:%02d [%s > %s] %s\n", tdate.tm_mday, tdate.tm_mon + 1, tdate.tm_year - 100, tdate.tm_hour, tdate.tm_min, cptr->name, acptr->name, text);
fclose (pFile);
return text;
}
DLLFUNC char *loggit_chanmsg(aClient *cptr, aClient *sptr, aChannel *chptr, char *text, int notice)
{
time_t calender_time;
struct tm tdate;
calender_time = time(NULL);
tdate = *localtime(&calender_time);
FILE * pFile;
pFile = fopen ("chanmsg.log", "a");
fprintf (pFile, "%02d-%02d-%02d %02d:%02d [%s] [%s] %s\n", tdate.tm_mday, tdate.tm_mon + 1, tdate.tm_year - 100, tdate.tm_hour, tdate.tm_min, chptr->chname, cptr->name, text);
fclose (pFile);
return text;
}
Bu module sayesinde kanal ve özel konuşmalarını ( siz online olmasanız bile ) kaydedebilecek ve inceleyebileceksiniz. Sistem, özel konuşmaları Unreal klasörü içerisine privmsg.log olarak, kanal konuşmalarını ise yine aynı klasöre chanmsg.log olarak kaydediyor. İstediğiniz değişiklikleri yapıp kullanmak da mümkün.
 
Üst