IFGT Hazır kod Total Online Time

IFGENTR Konu Bilgileri

Konu Hakkında Merhaba, tarihinde Services Hazır Kodlar kategorisinde KraL tarafından oluşturulan Total Online Time başlıklı konuyu okuyorsunuz. Bu konu şimdiye dek 14 kez görüntülenmiş, 0 yorum ve 0 tepki puanı almıştır...
Kategori Adı Services Hazır Kodlar
Konu Başlığı Total Online Time
Konbuyu başlatan KraL
Başlangıç tarihi
Cevaplar
Görüntüleme
İlk mesaj tepki puanı
Son Mesaj Yazan KraL

KraL

IFGT Süper Moderatör
Katılım
27 Kas 2025
Mesajlar
1,421
Tepkime puanı
19
IFGT Puan
38


Oncelikle kod sadece ircservices-5.0.59 ve ircservices-5.0.61 surumlerinde test edilmistir ve hicbir sorun ile karsilasilmamistir, bunu belirteyim.

Kod:
cd ircservices-x.x.xx
Kod:
pico modules/nickserv/main.c
yazarak main.c icerisine giriyoruz.

Kod:
 strftime_lang(buf, sizeof(buf), u->ngi, STRFTIME_DATE_TIME_FORMAT,
        ni->time_registered);
bu satirin hemen uzerine
Kod:
send_cmd(s_NickServ,
"NOTICE %s :Toplam Online Süresi: %d Gun %d Saat %d Dakika ve %d Saniye.",
u->nick,  (ni->toplamzaman / 86400), ((ni->toplamzaman % 86400) / 3600),
  (((ni->toplamzaman % 86400) % 3600) / 60),
  ((((ni->toplamzaman % 86400) % 3600) % 60) % 60));
bu satirlari ekleyiniz ve kaydedip cikiniz.

Simdi yine ayni klasorde bulunan nickserv.h dosyasinda degisiklik yapiyoruz.

Kod:
pico modules/nickserv/nickserv.h
yazarak nickserv.h dosyasina giris yapiyoruz.

Kod:
char nick[NICKMAX];
yazan satirin altina

Kod:
    int giriszamani;
    int toplamzaman;
satirlarini ekleyip kaydedip cikin.

Kod:
pico modules/nickserv/util.c
yazarak yine ayni klasorde bulunan util.c dosyasina giris yapin.

Kod:
if (nick_id_or_rec(ni)) {
satirinin hemen altina,

Kod:
  if (ni->giriszamani != 0) {
   ni->toplamzaman=ni->toplamzaman + (time(NULL) - ni->giriszamani);
   ni->giriszamani=0;
  }
satirlarini ekleyiniz.

yine aynı dosyada (util.c dosyası içinde) şu satırları bulun:

Kod:
    if (!nick_recognized(ni)) {
 update_userinfo(u);
 ni->authstat |= NA_RECOGNIZED;
    }
bunlarin hemen altina
Kod:
ni->giriszamani=time(NULL);
satirini ekleyin ve kaydedip cikin.

Simdi,
Kod:
pico modules/database/version4.c
yazarak version4.c dosyasina giris yapiyoruz. Dikkat edin, nickserv ile ayni klasorde degil gordugunuz gibi. database klasoru icerisinde.

Kod:
SAFE(write_string(ni->last_quit, f));
bu satirin hemen altina

Kod:
SAFE(write_int32(ni->toplamzaman, f));
satirini ekleyin.

şimdi yapmanız gereken işlem:
Kod:
make
Kod:
make install
çekeceksiniz. (ircservices-x.x.xx icerisinde)

sonrasında
servislerinizi kapatıp tekrar çalıştıracaksınız.
/os update komutunu kullanacaksınız.

şimdi servislerinizi kapatın (ps x listesinden kill -9 pid ile.)

servisler kapalı halde;

Kod:
pico modules/database/version4.c
yazarak tekrar version4.c dosyasina giris yapin.

Kod:
SAFE(read_string(&ni->last_quit, f));
bu satırı bulunuz.

Bir alt satıra şu 3 kodu ekleyiniz:

Kod:
SAFE(read_int32(&tmp32, f));
    ni->toplamzaman = tmp32;
    ni->giriszamani = 0;
kaydedip kapatın.

tekrar
Kod:
make
ve
Kod:
make install
komutlarını uygulayıp, servislerinizi getiriniz.

ve işlem bitti demektir.

aradaki servisin kapalı kalmasını istediğim yer şunun için:
servisler orada kapalı iken eski dblerinizin gitmemesi için.

Kod yazarı : Sky-Dancer