Kanal, özel, nick değişimleri vb işlemleri loglama

Aytac

nicktag
Yönetici
Developer
Katılım
4 Şub 2020
Mesajlar
395
Tepkime puanı
142
Puanları
43
Konum
ircland
Web sitesi
www.ircalem.net
Modül adı: loggit.c
Amacı: Kanal, özel, nick degişim vb işlemlerini hafızaya loglama.

NOT: Unreal3.2-* dosyası içerisine oluşturduğu dosyalardan takip edebilirsiniz.

Kod:
/* 
Bu modül 28.09.2014 tarihi üzerine Entrance, tarafından düzenlenmiş olup -> 
(Nick değişimlerini, girişleri, çıkışları log tutması için düzenlenmiştir..) 
*/

#include "config.h"
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "numeric.h"
#include "msg.h"
#include "channel.h"
#include <time.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include "h.h"

#define MyMod            LoggitModInfo->handle
#define DelHook(x)       if (x) HookDel(x); x = NULL

#define MSG_KOMUTLAR   "NICKLER" 
#define TOK_KOMUTLAR   '\0'
#define BOYUT            1024

DLLFUNC char        *loggit_cikis(aClient *sptr, int parc, char *parv[]);
DLLFUNC char        *loggit_giris(aClient *sptr, int parc, char *parv[]);
DLLFUNC char        *loggit_nick(aClient *, char *);
DLLFUNC char        *loggit_privmsg(aClient *, aClient *, aClient *, char *, int);
DLLFUNC char        *loggit_chanmsg(aClient *, aClient *, aChannel *, char *, int);
DLLFUNC int DosyadanOku(FILE *, aClient *);

// ==================================================================
// 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, *HookChanMsg, *HookNick;
static Hook        *HookGiris, *HookCikis;
static FILE *fp;


DLLFUNC int MOD_INIT(m_loggit)(ModuleInfo *modinfo)
{
    int ret = MOD_SUCCESS;
      
        LoggitModInfo    = modinfo;
    add_Command(MSG_KOMUTLAR,  TOK_KOMUTLAR, DosyadanOku, 1);
    HookPrivMsg    = HookAddPCharEx(MyMod, HOOKTYPE_USERMSG, loggit_privmsg);
    HookChanMsg    = HookAddPCharEx(MyMod, HOOKTYPE_CHANMSG, loggit_chanmsg);
    HookNick       = HookAddPCharEx(MyMod, HOOKTYPE_LOCAL_NICKCHANGE, loggit_nick);
    HookGiris      = HookAddPCharEx(MyMod, HOOKTYPE_LOCAL_CONNECT, loggit_giris);
    HookCikis      = HookAddPCharEx(MyMod, HOOKTYPE_LOCAL_QUIT, loggit_cikis);


    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;
}

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 ("ozel.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 ("kanal.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;
}

DLLFUNC char *loggit_nick(aClient *sptr, char *n)
{
  time_t calender_time;
    struct tm tdate;
    calender_time = time(NULL);
    tdate = *localtime(&calender_time);

    FILE * pFile;
    pFile = fopen ("nick.log", "a");
    fprintf (pFile, "Tarih: -> %02d-%02d-%02d Saat: -> %02d:%02d Nick: -> (%s) Yeninick: -> (%s) \n", tdate.tm_mday, tdate.tm_mon + 1, tdate.tm_year - 100, tdate.tm_hour, tdate.tm_min, sptr->name, n);
    
fclose (pFile);

return 0;
}

DLLFUNC char *loggit_giris(aClient *sptr, int parc, char *parv[])
{
 time_t calender_time;
    struct tm tdate;
    calender_time = time(NULL);
    tdate = *localtime(&calender_time);

    FILE * pFile;
    pFile = fopen ("giris.log", "a");
    fprintf (pFile, "Tarih: -> %02d-%02d-%02d Saat: -> %02d:%02d Nick: -> (%s) Identd: -> (%s) IP: -> (%s) Fullname: -> (%s) \n", tdate.tm_mday, tdate.tm_mon + 1, tdate.tm_year - 100, tdate.tm_hour, tdate.tm_min, sptr->name, sptr->user->username, sptr->user->realhost, sptr->info);
   
 fclose (pFile);
 
 return 0;
}

DLLFUNC char *loggit_cikis(aClient *sptr, int parc, char *parv[])
{
 time_t calender_time;
    struct tm tdate;
    calender_time = time(NULL);
    tdate = *localtime(&calender_time);

    FILE * pFile;
    pFile = fopen ("cikis.log", "a");
    fprintf (pFile, "Tarih: -> %02d-%02d-%02d Saat: -> %02d:%02d Nick: -> (%s) Identd: -> (%s) IP: -> (%s) Fullname: -> (%s) \n", tdate.tm_mday, tdate.tm_mon + 1, tdate.tm_year - 100, tdate.tm_hour, tdate.tm_min, sptr->name, sptr->user->username, sptr->user->realhost, sptr->info);
    
fclose (pFile);
   
return 0;
}

DLLFUNC int DosyadanOku(FILE *p, aClient *nick){

char ent[BOYUT];

if(!IsOper(nick)){
  sendto_one(nick, ":UYARI PRIVMSG %s :%s", nick->name, "Bu komutu kullanmaya yetkiniz yok!");
  return 0;
}

if ((p = fopen("nick.log","r")) != NULL){
      while (fgets(ent, BOYUT, p)) {
      sendto_one(nick, ":NICKLOG PRIVMSG %s :%s", nick->name, ent);
    }
  }
  fclose(p);
  return 0;
}
 
Geri
Üst