Bu kod eklentisinde, kanalınıza örneğin /cs info #kanal diye info çekildi, burada topic yazım tarihinizi Gün, saat, dakika, saniye olarak tıpkı nick infosundaki toplam online ve son görülme zamanı gibi veriyor.
cd ircservices-5.0.5* cd modules/chanserv pico main.c
main.c dosyası içerisinde aşağıdaki satırlarını buluyoruz ;
static void do_info(User *u) { char *chan = strtok(NULL, " "); char *param = strtok(NULL, " "); ChannelInfo *ci; NickGroupInfo *ngi, *ngi2 = NULL; char buf[BUFSIZE], *end, *s; int is_servadmin = is_services_admin(u); int can_show_all = 0, show_all = 0, used_all = 0;
Hemen altına ;
char buf3[BUFSIZE]; time_t simdi = time(NULL);
Satırlarını ekliyoruz yine aynı dosya içerisinde ;
notice_lang(s_ChanServ, u, CHAN_INFO_LAST_TOPIC, ci->last_topic); notice_lang(s_ChanServ, u, CHAN_INFO_TOPIC_SET_BY, ci->last_topic_setter);
Yukarıdaki satırları bulup hemen altına ;
if (ci && ci->last_topic) { free_time(buf3,(time(NULL))-(ci->last_topic_time),u); send_cmd(s_ChanServ, "NOTICE %s : Yazilim tarihi: %s [%s]", u->nick, buf, buf3); }
Ekliyoruz dosyadan kayıt edip çıkıyoruz .
cd ../.. pico extern.h
exren.h doyası içerisinde aşağıdaki satırı buluyoruz ;
E int lock_data(void);
Bu satırların hemen üstüne aşağıdaki kodu ekleyiyoruz ;
E void free_time(char *buf, time_t t, User *u);
Dosyadan kayıt edip çıkıyoruz.Aşağıdaki komutla devam ediyoruz ;
pico misc.c
misc.c dosyası içerisinde aşağıdaki satırları buluyoruz ;
if (outpos < outsize) outp[outpos] = (i2&3)<<6 | i3; outpos++; } return outpos; }
Bu kodların hemen altına aşağıdaki kodu ekliyoruz ;
void free_time(char *buf, time_t t, User *u) { int days, hours, minutes, seconds; days = t / (24 * 3600); t %= 24 * 3600; hours = t / 3600; t %= 3600; minutes = t / 60; t %= 60; seconds = t; sprintf (buf, "\2%d\2 gün, \2%d\2 saat, \2%d\2 dakika ve \2%d\2 saniye önce", days, hours, minutes, seconds); }
Dosyayı kayıt edip çıkıyoruz ;
make make install
Servisleri restartlıyoruz.