MemoServ List Komutu..
Bilindiği gibi uzun zamandır, nickserv ve chanserv üzerine kod çalışmaları oldu ve yayınlayabildiklerimizi yayınlamıştık... Akşam üstü canım sıkılıyordu memoserv üzerine ufak bir çalışma yapayım dedim umarım işinize yarar.
Gelen memoların /ms list komutunda ne kadar süre önce geldiğinin gösterimi:
Kod:
cd ircservices*
pico extern.h
extern.h dosyasının içine giriyoruz.
Kod:
E int lock_data(void);
satırının üstüne;
Kod:
E void emre_time(char *buf, time_t t, User *u);
satırlarını ekleyin kaydedip dosyadan çıkın.
dosyasının içine giriyoruz.
Kod:
if (outpos < outsize)
outp[outpos] = (i2&3)<<6 | i3;
outpos++;
}
return outpos;
}
satırlarının hemen altına;
Kod:
void emre_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 geldi.", days, hours, minutes, seconds);
}
satırlarını ekleyin, kaydedip dosyadan çıkın.
Kod:
pico modules/memoserv/main.c
komutu ile memoserv/main.c dosyamıza giriyoruz.
Kod:
static int list_memo(User *u, int index, MemoInfo *mi, int *sent_header,
int new, const char *chan)
{
Memo *m;
char timebuf[64];
satırlarının hemen altına;
Kod:
char emre[BUFSIZE];
time_t simdi = time(NULL);
satırlarını ekleyin, yine aynı dosyada;
Kod:
m = &mi->memos[index];
strftime_lang(timebuf, sizeof(timebuf), u->ngi,
STRFTIME_DATE_TIME_FORMAT, m->time);
timebuf[sizeof(timebuf)-1] = 0; /* just in case */
satırlarını görüceksiniz bu satırın hemen altına;
Kod:
emre_time(emre, simdi-m->time, u);
satırını ekleyin, yine aynı dosyada;
Kod:
notice_lang(s_MemoServ, u, MEMO_LIST_FORMAT,
(m->flags & MF_UNREAD) ? '*' : ' ',
(!M***pire || (m->flags & MF_EXPIREOK)) ? ' ' : '+',
m->number, m->sender, timebuf);
satırlarını;
Kod:
notice_lang(s_MemoServ, u, MEMO_LIST_FORMAT,
(m->flags & MF_UNREAD) ? '*' : ' ',
(!M***pire || (m->flags & MF_EXPIREOK)) ? ' ' : '+',
m->number, m->sender, timebuf, emre);
şeklinde değiştirin, kaydedip dosyadan çıkın..
Kod:
pico modules/memoserv/memoserv.h
dosyasının içine giriyoruz.
Kod:
typedef struct {
uint32 number; /* Index number -- not necessarily array position! */
int16 flags;
time_t time; /* When it was sent */
satırlarının altına;
satırını ekleyin, kaydedip dosyadan çıkın.
Kod:
MEMO_LIST_HEADER
Sira Gonderen Tarih/Saat
satırını;
Kod:
MEMO_LIST_HEADER
Sira Gonderen Tarih/Saat Ne kadar önce geldi?
şeklinde değiştirin, yine aynı dosyada;
Kod:
MEMO_LIST_FORMAT
%c%c%4d %-16s %s
satırını ise;
Kod:
MEMO_LIST_FORMAT
%c%c%4d %-16s %s %s
şeklinde değiştirin, kaydedip dosyadan çıkın.
Ardından servislerinize restart atın.
Kod yazarı : Soldy
|