Seviyeli Sohbet | Avrupa Sohbet | Gurbet Sohbet

Sohbet Girişi


* Şifreniz yoksa boş bırakın.

IRCServices – İSTEK/ÖNERİ/ŞİKAYET Sistemi. - LiderSohbet.Net


IRCServices – İSTEK/ÖNERİ/ŞİKAYET Sistemi.

İşine esasına baktığınız da oldukça yararlı ve orta seviyeli sunucuların kullanıcılarına bu komutu empoze etmeleri takdirde oldukça hızlı sorun çözme yöntemi olarak da kullanılacaktır. Biraz daha konuyu açmak gerekirse; Kullanıcıların size Şikayet, öneri, isteklerini komut ile yapmasını mı istiyorsunuz? Ve daha sistematik bir işleyişin olması için bunun şart olduğunu düşünüyorsanız doğru konu içerisindesiniz.

Şikayet etme komutu : /NS Sikayet mesaj.
İstek Komutu: /Ns istek mesaj.
Öneri Komutu: /Ns oneri mesaj.

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

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

Komutları ile listemeleri mümkün olacaktır.

Kullanıcıların komutu kullanabilmesi için nickinin şifreli (registered) olması gerekmektedir.

Kod:
cd ircs*-*
Kod:
nano -w modules/nickserv/main.c
Kod:
 
 
static void do_dropemail_confirm(User *u);

satirinin altina;

Kod:
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:
{ "DROP", do_drop, NULL, NICK_HELP_DROP, -1,-1 },

satiri altina;

Kod:
    { "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:
    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:
 
 
/*************************************************************************/


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.

Kod:
make&&make install

Kullanip servislerinizi resetleyin. (Resetlemeden önce sunucu üzerinde /os update komutunu uygulamanız ve edit yapmadan önce ilgili dosyanızın yedeğini almanız tavsiyemizdir.



Bir cevap bırakın.