Tekil Mesaj gösterimi
Alt 12 Nisan 2025, 18:51   #6
Çevrimdışı
Coderlab Doğrulanmış Üye
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: kanalın sadece giriş/çıkış loglarını tutmak istiyorum




Istersen modul olarak yapalim.

--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 18:51 -->-> Daha önceki mesaj 18:42 --

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include "config.h" #include "struct.h" #include "common.h" #include "sys.h" #include "msg.h" #include "proto.h" #include "numeric.h" #include "modules.h" #include <time.h> ModuleHeader MOD_HEADER(m_chanlog_joinpart) = { "m_chanlog_joinpart", "$Id$", "Sadece JOIN/PART loglar, günlük dosyaya yazar", "Coderlab", "3.2-b8-1", NULL }; // Dosya yolu oluşturur: logs/kanal/gun-ay-yil.log const char *log_dosyasi_yolu() { static char path[256]; time_t now = time(NULL); struct tm *tm_info = localtime(&now); snprintf(path, sizeof(path), "logs/kanal/%02d-%02d-%04d.log", tm_info->tm_mday, tm_info->tm_mon + 1, tm_info->tm_year + 1900); return path; } // Log yaz void log_yaz(const char *format, ...) { const char *filename = log_dosyasi_yolu(); FILE *fp = fopen(filename, "a"); if (!fp) { mkdir("logs/kanal", 0755); // klasör yoksa oluştur fp = fopen(filename, "a"); if (!fp) return; } va_list args; va_start(args, format); vfprintf(fp, format, args); va_end(args); fprintf(fp, "\n"); fclose(fp); } // JOIN log int log_join(aClient *cptr, aClient *sptr, aChannel *chptr) { if (MyClient(sptr)) { log_yaz("[JOIN] %s joined %s", sptr->name, chptr->chname); } return 0; } // PART log int log_part(aClient *cptr, aClient *sptr, aChannel *chptr, const char *comment) { if (MyClient(sptr)) { log_yaz("[PART] %s left %s (%s)", sptr->name, chptr->chname, comment ? comment : ""); } return 0; } MOD_INIT(m_chanlog_joinpart) { add_JoinHook(log_join); add_PartHook(log_part); return MOD_SUCCESS; }


 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet bizimmekan