Çevrimiçi | 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.
|