IRCForumu.NET - Türkiye'nin IRC ve mIRC Kullanıcılarının Buluştuğu Forum muhabbet


ircforumu reklam ircforumu reklamdamlasu bizimkiler sihirlisohbet sohbetelit


Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 01 Temmuz 2016, 18:01   #1
Çevrimiçi
Gelme, burası çok derin.

immortaL - ait Kullanıcı Resmi (Avatar)
IRCServices ISTEK/ONERI/SIKAYET Hizmeti


Sadece sunucuyu daha sağlam yönetmeniz için basit bir çalişma koyuyorum. Sistematik bir işleyiş açisindan kullanici istek, öneri ve sorunlarini services komutlari ile bildirebilecek.
Kullanici;
/NS Sikayet komutu ile sikayetini;
/NS istek komutu ile isteğini;
/NS Oneri komutu ile önerilerini bildirebilecek.


Sistem içerisinde services root seviyesindeki kişiler ise bunlari direkt komut yardimi ile listeleyebileceklerdir.

Sikayetleri; /NS Sikayetler
Istekleri; /NS Istekler
Sorunlarini /NS Sorunlar

Komutlari ile listeleyebilecekler..

Kullanicilarin bu komutu kullanabilmesi icin öncelikli olarak nickini kaydetmelidir.



Kod:   Kodu kopyalamak için üzerine çift tıklayın!
cd ircs*-*

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
nano -w modules/nickserv/main.c

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
static void do_dropemail_confirm(User *u);


satirinin altina;


Kod:   Kodu kopyalamak için üzerine çift tıklayın!
static void do_oneri(User *u); static void do_oneriler(User *u); static void do_istek(User *u); static void do_istekler(User *u); static void do_sikayet(User *u); static void do_sikayetler(User *u);

Ekleyiniz.


Kod:   Kodu kopyalamak için üzerine çift tıklayın!
{ "DROP", do_drop, NULL, NICK_HELP_DROP, -1,-1 },


satiri altina;


Kod:   Kodu kopyalamak için üzerine çift tıklayın!
{ "ISTEK", do_istek, NULL, -1, -1,-1 }, { "SIKAYET", do_sikayet, NULL, -1, -1,-1 }, { "ONERI", do_oneri, NULL, -1, -1,-1 }, { "ISTEKLER", do_istekler, NULL, -1, -1,-1 }, { "ONERILER", do_oneriler, NULL, -1, -1,-1 }, { "SIKAYETLER", do_sikayetler, NULL, -1, -1,-1 },



Ekleyiniz.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
if (strcmp(mask,"-") == 0) mask = NULL; for (ngi = first_nickgroupinfo(); ngi; ngi = next_nickgroupinfo()) { if ((mask && ngi->email && match_wild_nocase(mask,ngi->email)) || (!mask && !ngi->email) ) { drop_nickgroup(ngi, u, mask ? mask : "-"); } } notice_lang(s_NickServ, u, NICK_DROPEMAIL_CONFIRM_DROPPED); }



Satiri altina;


Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/*************************************************************************/ static void do_istek(User *u) { char *reason; reason = strtok_remaining(); NickInfo *ni; ni = get_nickinfo(u->nick); if (!ni) { send_cmd(s_NickServ, "NOTICE %s Once Nickinizi kayit etmelisiniz.", u->nick); return; } if (!reason) { send_cmd(s_NickServ, "NOTICE %s Isteginizi girmediniz.", u->nick); return; } #define toxgun 1; static int tox = 60*60*24*toxgun; if (!is_services_admin(u) && ni->toplamzaman <= tox) { send_cmd(s_NickServ, "NOTICE %s Bu Komutu Kullanamazsiniz..", u->nick); send_cmd(s_NickServ, "NOTICE %s \2NEDEN\2 -> Nick Online puaniniz, \2 ( 2 ) \2 Olmalidir.", u->nick); return; } else { time_t zaman; struct tm * timeinfo; time ( &zaman ); timeinfo = localtime ( &zaman ); FILE *dosya_yaz; dosya_yaz = fopen("istek.txt","a"); if (dosya_yaz != NULL) { fprintf(dosya_yaz,"[%s] %s -> %s\n", asctime (timeinfo), u->nick, reason); fprintf(dosya_yaz,"-----------------------\n"); fclose(dosya_yaz); } send_cmd(s_NickServ, "NOTICE %s Isteginiz alinmistir.", u->nick); send_cmd(s_NickServ, "PRIVMSG #Kontrol %s Kullanici bir istekte bulundu.", u->nick); } } static void do_oneri(User *u) { char *reason; reason = strtok_remaining(); NickInfo *ni; ni = get_nickinfo(u->nick); if (!ni) { send_cmd(s_NickServ, "NOTICE %s Once Nickinizi kayit etmelisiniz.", u->nick); return; } if (!reason) { send_cmd(s_NickServ, "NOTICE %s Onerinizi girmediniz.", u->nick); return; } #define toxgun 1; static int tox = 60*60*24*toxgun; if (!is_services_admin(u) && ni->toplamzaman <= tox) { send_cmd(s_NickServ, "NOTICE %s Bu Komutu Kullanamazsiniz..", u->nick); send_cmd(s_NickServ, "NOTICE %s \2NEDEN\2 -> Nick Online puaniniz, \2 ( 2 ) \2 Olmalidir.", u->nick); return; } else { time_t zaman; struct tm * timeinfo; time ( &zaman ); timeinfo = localtime ( &zaman ); FILE *dosya_yaz; dosya_yaz = fopen("oneri.txt","a"); if (dosya_yaz != NULL) { fprintf(dosya_yaz,"[%s] %s -> %s\n", asctime (timeinfo), u->nick, reason); fprintf(dosya_yaz,"-----------------------\n"); fclose(dosya_yaz); } send_cmd(s_NickServ, "NOTICE %s Oneriniz alinmistir.", u->nick); send_cmd(s_NickServ, "PRIVMSG #Kontrol %s Kullanici bir oneride bulundu.", u->nick); } } /*************************************************************************/ static void do_sikayet(User *u) { char *reason; reason = strtok_remaining(); NickInfo *ni; ni = get_nickinfo(u->nick); if (!ni) { send_cmd(s_NickServ, "NOTICE %s Once Nickinizi kayit etmelisiniz.", u->nick); return; } if (!reason) { send_cmd(s_NickServ, "NOTICE %s sikayetnizi girmediniz.", u->nick); return; } #define toxgun 1; static int tox = 60*60*24*toxgun; if (!is_services_admin(u) && ni->toplamzaman <= tox) { send_cmd(s_NickServ, "NOTICE %s Bu Komutu Kullanamazsiniz..", u->nick); send_cmd(s_NickServ, "NOTICE %s \2NEDEN\2 -> Nick Online puaniniz, \2 ( 2 ) \2 Olmalidir.", u->nick); return; } else { time_t zaman; struct tm * timeinfo; time ( &zaman ); timeinfo = localtime ( &zaman ); FILE *dosya_yaz; dosya_yaz = fopen("sikayet.txt","a"); if (dosya_yaz != NULL) { fprintf(dosya_yaz,"[%s] %s -> %s\n", asctime (timeinfo), u->nick, reason); fprintf(dosya_yaz,"-----------------------\n"); fclose(dosya_yaz); } send_cmd(s_NickServ, "NOTICE %s sikayetniz alinmistir.", u->nick); send_cmd(s_NickServ, "PRIVMSG #OperLog %s Kullanici bir sikayette bulundu.", u->nick); } } /*************************************************************************/ static void do_sikayetler(User *u) { NickInfo *ni; ni = get_nickinfo(u->nick); if (!is_services_root(u)) { send_cmd(s_NickServ, "NOTICE %s Bu Komuta Yetkiniz yok..", u->nick); return; } #define ibokus "sikayet.txt" FILE *x; char buf[BUFSIZE]; x = fopen(ibokus, "r"); if (x) { while (fgets(buf, sizeof(buf), x)) { buf[strlen(buf)-1] = 0; send_cmd(s_NickServ, "NOTICE %s %s", u->nick, buf); } fclose(x); } else { send_cmd(s_NickServ, "NOTICE %s Henuz bir kayit yok.", u->nick); } } static void do_istekler(User *u) { NickInfo *ni; ni = get_nickinfo(u->nick); if (!is_services_root(u)) { send_cmd(s_NickServ, "NOTICE %s Bu Komuta Yetkiniz yok..", u->nick); return; } #define ibokui "istek.txt" FILE *x; char buf[BUFSIZE]; x = fopen(ibokui, "r"); if (x) { while (fgets(buf, sizeof(buf), x)) { buf[strlen(buf)-1] = 0; send_cmd(s_NickServ, "NOTICE %s %s", u->nick, buf); } fclose(x); } else { send_cmd(s_NickServ, "NOTICE %s Henuz bir kayit yok.", u->nick); } } /*************************************************************************/ static void do_oneriler(User *u) { NickInfo *ni; ni = get_nickinfo(u->nick); if (!is_services_root(u)) { send_cmd(s_NickServ, "NOTICE %s Bu Komuta Yetkiniz yok..", u->nick); return; } #define ibokuo "oneri.txt" FILE *x; char buf[BUFSIZE]; x = fopen(ibokuo, "r"); if (x) { while (fgets(buf, sizeof(buf), x)) { buf[strlen(buf)-1] = 0; send_cmd(s_NickServ, "NOTICE %s %s", u->nick, buf); } fclose(x); } else { send_cmd(s_NickServ, "NOTICE %s Henuz bir kayit yok.", u->nick); } }


Ekleyin.


PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
make&&make install 


Kullanip servislerinizi resetleyin.
Sadece sunucuyu daha sağlam yönetmeniz için basit bir çalişma koyuyorum. Sistematik bir işleyiş açisindan kullanici istek, öneri ve sorunlarini services komutlari ile bildirebilecek.
Kullanici;
/NS Sikayet komutu ile sikayetini;
/NS istek komutu ile isteğini;
/NS Oneri komutu ile önerilerini bildirebilecek.


Sistem içerisinde services root seviyesindeki kişiler ise bunlari direkt komut yardimi ile listeleyebileceklerdir.

Sikayetleri; /NS Sikayetler
Istekleri; /NS Istekler
Sorunlarini /NS Sorunlar

Komutlari ile listeleyebilecekler..

Kullanicilarin bu komutu kullanabilmesi icin öncelikli olarak nickini kaydetmelidir.



Kod:   Kodu kopyalamak için üzerine çift tıklayın!
cd ircs*-*

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
nano -w modules/nickserv/main.c

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
static void do_dropemail_confirm(User *u);


satirinin altina;


Kod:   Kodu kopyalamak için üzerine çift tıklayın!
static void do_oneri(User *u); static void do_oneriler(User *u); static void do_istek(User *u); static void do_istekler(User *u); static void do_sikayet(User *u); static void do_sikayetler(User *u);

Ekleyiniz.


Kod:   Kodu kopyalamak için üzerine çift tıklayın!
{ "DROP", do_drop, NULL, NICK_HELP_DROP, -1,-1 },


satiri altina;


Kod:   Kodu kopyalamak için üzerine çift tıklayın!
{ "ISTEK", do_istek, NULL, -1, -1,-1 }, { "SIKAYET", do_sikayet, NULL, -1, -1,-1 }, { "ONERI", do_oneri, NULL, -1, -1,-1 }, { "ISTEKLER", do_istekler, NULL, -1, -1,-1 }, { "ONERILER", do_oneriler, NULL, -1, -1,-1 }, { "SIKAYETLER", do_sikayetler, NULL, -1, -1,-1 },



Ekleyiniz.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
if (strcmp(mask,"-") == 0) mask = NULL; for (ngi = first_nickgroupinfo(); ngi; ngi = next_nickgroupinfo()) { if ((mask && ngi->email && match_wild_nocase(mask,ngi->email)) || (!mask && !ngi->email) ) { drop_nickgroup(ngi, u, mask ? mask : "-"); } } notice_lang(s_NickServ, u, NICK_DROPEMAIL_CONFIRM_DROPPED); }



Satiri altina;


Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/*************************************************************************/ static void do_istek(User *u) { char *reason; reason = strtok_remaining(); NickInfo *ni; ni = get_nickinfo(u->nick); if (!ni) { send_cmd(s_NickServ, "NOTICE %s Once Nickinizi kayit etmelisiniz.", u->nick); return; } if (!reason) { send_cmd(s_NickServ, "NOTICE %s Isteginizi girmediniz.", u->nick); return; } #define toxgun 1; static int tox = 60*60*24*toxgun; if (!is_services_admin(u) && ni->toplamzaman <= tox) { send_cmd(s_NickServ, "NOTICE %s Bu Komutu Kullanamazsiniz..", u->nick); send_cmd(s_NickServ, "NOTICE %s \2NEDEN\2 -> Nick Online puaniniz, \2 ( 2 ) \2 Olmalidir.", u->nick); return; } else { time_t zaman; struct tm * timeinfo; time ( &zaman ); timeinfo = localtime ( &zaman ); FILE *dosya_yaz; dosya_yaz = fopen("istek.txt","a"); if (dosya_yaz != NULL) { fprintf(dosya_yaz,"[%s] %s -> %s\n", asctime (timeinfo), u->nick, reason); fprintf(dosya_yaz,"-----------------------\n"); fclose(dosya_yaz); } send_cmd(s_NickServ, "NOTICE %s Isteginiz alinmistir.", u->nick); send_cmd(s_NickServ, "PRIVMSG #Kontrol %s Kullanici bir istekte bulundu.", u->nick); } } static void do_oneri(User *u) { char *reason; reason = strtok_remaining(); NickInfo *ni; ni = get_nickinfo(u->nick); if (!ni) { send_cmd(s_NickServ, "NOTICE %s Once Nickinizi kayit etmelisiniz.", u->nick); return; } if (!reason) { send_cmd(s_NickServ, "NOTICE %s Onerinizi girmediniz.", u->nick); return; } #define toxgun 1; static int tox = 60*60*24*toxgun; if (!is_services_admin(u) && ni->toplamzaman <= tox) { send_cmd(s_NickServ, "NOTICE %s Bu Komutu Kullanamazsiniz..", u->nick); send_cmd(s_NickServ, "NOTICE %s \2NEDEN\2 -> Nick Online puaniniz, \2 ( 2 ) \2 Olmalidir.", u->nick); return; } else { time_t zaman; struct tm * timeinfo; time ( &zaman ); timeinfo = localtime ( &zaman ); FILE *dosya_yaz; dosya_yaz = fopen("oneri.txt","a"); if (dosya_yaz != NULL) { fprintf(dosya_yaz,"[%s] %s -> %s\n", asctime (timeinfo), u->nick, reason); fprintf(dosya_yaz,"-----------------------\n"); fclose(dosya_yaz); } send_cmd(s_NickServ, "NOTICE %s Oneriniz alinmistir.", u->nick); send_cmd(s_NickServ, "PRIVMSG #Kontrol %s Kullanici bir oneride bulundu.", u->nick); } } /*************************************************************************/ static void do_sikayet(User *u) { char *reason; reason = strtok_remaining(); NickInfo *ni; ni = get_nickinfo(u->nick); if (!ni) { send_cmd(s_NickServ, "NOTICE %s Once Nickinizi kayit etmelisiniz.", u->nick); return; } if (!reason) { send_cmd(s_NickServ, "NOTICE %s sikayetnizi girmediniz.", u->nick); return; } #define toxgun 1; static int tox = 60*60*24*toxgun; if (!is_services_admin(u) && ni->toplamzaman <= tox) { send_cmd(s_NickServ, "NOTICE %s Bu Komutu Kullanamazsiniz..", u->nick); send_cmd(s_NickServ, "NOTICE %s \2NEDEN\2 -> Nick Online puaniniz, \2 ( 2 ) \2 Olmalidir.", u->nick); return; } else { time_t zaman; struct tm * timeinfo; time ( &zaman ); timeinfo = localtime ( &zaman ); FILE *dosya_yaz; dosya_yaz = fopen("sikayet.txt","a"); if (dosya_yaz != NULL) { fprintf(dosya_yaz,"[%s] %s -> %s\n", asctime (timeinfo), u->nick, reason); fprintf(dosya_yaz,"-----------------------\n"); fclose(dosya_yaz); } send_cmd(s_NickServ, "NOTICE %s sikayetniz alinmistir.", u->nick); send_cmd(s_NickServ, "PRIVMSG #OperLog %s Kullanici bir sikayette bulundu.", u->nick); } } /*************************************************************************/ static void do_sikayetler(User *u) { NickInfo *ni; ni = get_nickinfo(u->nick); if (!is_services_root(u)) { send_cmd(s_NickServ, "NOTICE %s Bu Komuta Yetkiniz yok..", u->nick); return; } #define ibokus "sikayet.txt" FILE *x; char buf[BUFSIZE]; x = fopen(ibokus, "r"); if (x) { while (fgets(buf, sizeof(buf), x)) { buf[strlen(buf)-1] = 0; send_cmd(s_NickServ, "NOTICE %s %s", u->nick, buf); } fclose(x); } else { send_cmd(s_NickServ, "NOTICE %s Henuz bir kayit yok.", u->nick); } } static void do_istekler(User *u) { NickInfo *ni; ni = get_nickinfo(u->nick); if (!is_services_root(u)) { send_cmd(s_NickServ, "NOTICE %s Bu Komuta Yetkiniz yok..", u->nick); return; } #define ibokui "istek.txt" FILE *x; char buf[BUFSIZE]; x = fopen(ibokui, "r"); if (x) { while (fgets(buf, sizeof(buf), x)) { buf[strlen(buf)-1] = 0; send_cmd(s_NickServ, "NOTICE %s %s", u->nick, buf); } fclose(x); } else { send_cmd(s_NickServ, "NOTICE %s Henuz bir kayit yok.", u->nick); } } /*************************************************************************/ static void do_oneriler(User *u) { NickInfo *ni; ni = get_nickinfo(u->nick); if (!is_services_root(u)) { send_cmd(s_NickServ, "NOTICE %s Bu Komuta Yetkiniz yok..", u->nick); return; } #define ibokuo "oneri.txt" FILE *x; char buf[BUFSIZE]; x = fopen(ibokuo, "r"); if (x) { while (fgets(buf, sizeof(buf), x)) { buf[strlen(buf)-1] = 0; send_cmd(s_NickServ, "NOTICE %s %s", u->nick, buf); } fclose(x); } else { send_cmd(s_NickServ, "NOTICE %s Henuz bir kayit yok.", u->nick); } }


Ekleyin.


PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
make&&make install 


Kullanip servislerinizi resetleyin.
  Alıntı ile Cevapla

IRCForumu.Net - Reklam Alanı

Cevapla

Etiketler
hizmeti, ircservices, istek or oneri or sikayet
IRCForumu.Net - Sponsor Bağlantılar



Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık