0.0.5 • Published 3 years ago

kokturkdash v0.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

qkokturkdash

header

GitHub package.json version npm bundle size (version) npm

Discord botlarınız için basit, güvenli ve anlaşılır dashboard modülüdür.

😎0.0.5 Tam Kararlı Sürümü Güncellemesi:

BUG FIXED: redirect_uri hatası

  • Methodlar, classlar, callbackler ve bazı kurallar değişti.
  • Dökümanlar eklendi
  • formTypes geçerliliğini yitirdi. formTipleri kullanın.
  • Dashboard classı geçerliliğini yitirdi. PanelIcerik kullanın.
  • Tema Eklendi(kokturkdash-cyber)
  • Tema Kullanımı için: Temalar EĞER BOTUNUZ 2 DİLLİ İSE TEMADA ikidil: true SEÇENEĞİNİ AÇMAYI UNUTMAYIN!

🤔Nasıl İndirilir

npm i kokturkdash

📑Tam Örnek

const kokturkdash = require('kokturkdash')
const Discord = require('discord.js');
const client = new Discord.Client();
client.login('Client Token');

let dil = {};

let hosgeldinmesaji = {};

let booster = {};

let logsys = {};

let sysactive = {};

const WebPanel = new kokturkdash.PanelIcerik({

    port: 80, // Glitch için 3000 önerilir.
    client: {
        id: 'Client ID',
        secret: 'Client Secret'
    },
    yonlendirmeUrl: 'http://domain.com/discord/callback',
    domain: 'http://domain.com',
    bot: client,
    websiteBaslik: "Köktürk Dash",
    iconURL: 'http://cdn.kokturkbot.ga/logos/kokturklogo.jpg',
    ayarlar: [
        {
            kategoriID: 'setup',//Kategori ID benzersiz(unique) olmalıdır!
            kategoriIsim: "Kurulum",// Kategori İsmi
            kategoriSecimListesi: [//Kategorinin içindeki elementler buraya yazılcak!
                {//Element Başlangıç
                    secimID: 'lang', //ID kısmı benzersiz(unique) olmalıdır!
                    secimIsim: "Dil", //Başlık Kısmı
                    secimAciklama: "Botun dilini seçin.", //Açıklama kısmı
                    secimTipi: kokturkdash.formTipleri.secenekler({"Türkçe": "tr", "İngilizce": "en"}, false),//Seçim obje tipi
                    //Var olan veriyi kontrol ediyoruz ve yazdırıyoruz
                    normalVeri: async ({guild}) => {//async kullanmaya özen gösterin! Veritabanları için gereklidir. (Normal veri başlangıcı)
                        return dil[guild.id] || null;//Veriyi veritabanından çekince ya veri görüntülenecek yada boş dönecek
                    },//Normal veri bitişi
                    //Yeni veriyi ayarlıyoruz
                    yeniVeri: async ({guild,newData}) => {//Yeni veri başlangıcı
                        dil[guild.id] = newData;//Veriyi veritabanına kaydet
                        //Quick.db için örnek: await db.set(`dil.${guild.id}`, newData)
                        //Mongoose için örnek: await ModelName.findOneAndUpdate({ key: guild.id }, {$set: { key2: newData}}, {new: true});
                        return;
                    }//Yeni veri bitişi
                },//Element Bitiş
                {
                    secimID: 'log_ch',
                    secimIsim: "Log Kanalı",
                    secimAciklama: "Logların nereye atılacağını seçin.",
                    secimTipi: kokturkdash.formTipleri.kanalSecici(false),
                    normalVeri: async ({guild}) => {
                        return logsys[guild.id] || null;
                    },
                    yeniVeri: async ({guild,newData}) => {
                        console.log();[guild.id] = newData;
                        return;
                    }
                },
                {
                    secimID: 'sys_aktif',
                    secimIsim: "Loglama Aç/Kapat",
                    secimAciklama: "Loglama açıp kapamaya yarar.",
                    secimTipi: kokturkdash.formTipleri.tik(false, false),
                    normalVeri: async ({guild}) => {
                        return sysactive[guild.id] || null;
                    },
                    yeniVeri: async ({guild,newData}) => {
                        sysactive[guild.id] = newData;
                        return;
                    }
                },
            ]
        },
        {
            kategoriID: 'other',
            kategoriIsim: "Diğer",
            kategoriSecimListesi: [
                {
                    secimID: 'booster_rol',
                    secimIsim: "Booster Rolü",
                    secimAciklama: "Booster Rolünü seçin.",
                    secimTipi: kokturkdash.formTipleri.rolSecici(false),
                    normalVeri: async ({guild}) => {
                        return booster[guild.id] || null;
                    },
                    yeniVeri: async ({guild,newData}) => {
                        booster[guild.id] = newData;
                        return;
                    }
                },
                {
                    secimID: 'hosgeldin_msj',
                    secimIsim: "Hoşgeldin Mesajı",
                    secimAciklama: "Hoşgeldin mesajı girin.",
                    secimTipi: kokturkdash.formTipleri.metingirisi("Lütfen metin girin...", 7, 30, false, false),
                    normalVeri: async ({guild}) => {
                        return hosgeldinmesaji[guild.id] || null;
                    },
                    yeniVeri: async ({guild,newData}) => {
                        hosgeldinmesaji[guild.id] = newData;
                        return;
                    }
                },
            ]
        },
    ]
})

WebPanel.calistir();

⏮En Baştan

⬇️Modülü İndirme

Modülü ilk olarak şu şekilde indirmelisin:

npm i kokturkdash

💾 Kurulum ve Tanımlama

İlk önce modülü tanımlaman ve panel içeriğini doldurman gerek. Aşağıda örnek bulunmakta: htu Bu kadar. Diğer işlemleri de yaptıktan sonra hazır olacaktır.

🤔Panel içeriği nedir?

Panel içeriği sayesinde tüm işlemleri tek tek kodlamak yerine belli veriler ile kodlarsın. Bu veriler sitenin içeriği, ayarları yani herşeyi içerir

🎬Sunucuyu Başlat

Herşeyi ayarladıktan sonra, herşeyi başlatmak için bunu kullan:

WebPanel.calistir();

⚙️Sunucu Ayarları

Panel içeriğiniz sunucu ayarları yapmaya müsaittir. Aşağıda örnekleri mevcuttur: cfg1

Port

Portu bulamadın mı? Express'ten almak için: portlog

⚙️Discord Ayarları

Kokturkdash web panel modülünün birkaç gereksinime ihtiyacı var.

📎Gereksinimler:

  • Redirect URI
  • Client ID
  • Client Secret
  • Discord.js v12 Client olarak sıralanır. Discord kısmında bunları daha detaylı olarak anlattık.

🌈Temalar

Cyber Tema Modülü: cyber

⚙️Ayarlar

🔢Kategori Methodları

Her kategori ayrıdır. Kategoriler bir arada düzende tutar. Çünkü her ayarın karışmasını istemeyiz, değil mi? Bunun için kategori sistemini aşağıdaki gibi yaptık: kategori Güzel gözüküyor değil mi?

Kategori giriş ve değerleri şu şekildedir:

  • kategoriID: Bu kategorinin ID'sidir. Buraya sadece alfanumerik şeyler girmelisin. Ayrıca sayfa URI'sinde ID gözükecek.
  • kategoriIsim: Kategorinin gözükecek ismi. Kısaca tıkladığınız kategori isimleri.
  • kategoriAciklama: Aslında bu bir yerde gözükmez. Sadece kategorinin açıklamasıdır.
  • kategoriSecimListesi: Asıl iş burda. Burda seçimleri dolduracaksınız. Kategorinin içidir. Dökümanın diğer sayfasında bunun hakkında konuştuk.

🔢Seçim Methodları

Her türlü seçenekler burdan yönetilir. Gerek seçim listesi, gerekse yazı alanları yani kısaca hepsi burdan yönetilir. Aşağıda değerler bulunmakta:

  • secimID: Seçim ID, seçeneklerin ID'sidir. Türkçe karakter içermeden alfenumerik benzersiz bir ID girmeye özen gösterin.
  • secimIsim: Seçim ismidir. Seçeneklerin başlığı diyebiliriz.
  • secimAciklama: Seçim başlığının altında yer alan açıklama kısmı.
  • secimTipi: Bu çok önemlidir. Çünkü bu obje hangi verinin döneceğini söyler. Seçenekler şunlar olabilir: metingirisi, secim, tik, kanalSecici v.b. Anlamadın mı? Aşağıda devamı bulunmakta.
  • normalVeri: Veritabanındaki şuanki veriyi çeker ve websitenize yansıtır. Mutlaka geri dönen veri tipi, seçim tipine uymalıdır.
  • yeniVeri: secimTipi'nden aldığınız veriyi veritabanına ekler. Callback fonksiyonları şunlardır: {guild,user,newData}, sunucu ve kullanıcının verileri şunlardır: {data: guild/newData}. guild.id, verileri değişen sunucunun ID'sini verir. newData ise az önce değiştirilen verinin kaydedilecek dönen verisidir.

🔢Ayarlanabilecek Seçim Tipleri

✔️Seçenekler

secenekler

✔️liste: (String) - Gerekli

Listeden veriler alınıp sitede seçenek formatına dönüştürülür. { "Liste Elemanı 1": "Dönen Veri", "Liste Elemanı 2": "Dönen Veri 2" }

✔️devredisi: (Boolean) - Opsiyonel

Geçici olarak devre dışı bırakmak içindir. true/false

↩️Response: (Dönen veri)

String

📝Giriş

girisHeader

✔️placeholder: (String) - Opsiyonel

Lütfen veri giriniz gibi gözüken kısım. ...giris("Lütfen veri giriniz...", )...

✔️min: (Number) - Opsiyonel

Minimum karakter sayısı. (En az girilebilecek karakter sayısı)

✔️max: (Number) - Opsiyonel

Maksimum karakter sayısı. (en fazla girilebilecek karakter)

✔️devredisi: (Boolean) - Opsiyonel

Geçici olarak devre dışı bırakmak içindir. true/false

✔️gerekli: (Boolean) - Opsiyonel

Veri illahki girilecek diyorsanız true yapmalısınız. true/false

↩️Response: (Dönen veri)

String

📝Metin Girişi

metingirisiHeader

✔️placeholder: (String) - Opsiyonel

Lütfen veri giriniz gibi gözüken kısım. ...metingirisi("Lütfen veri giriniz...", )...

✔️min: (Number) - Opsiyonel

Minimum karakter sayısı. (en az girilecek karakter)

✔️max: (Number) - Opsiyonel

Maksimum karakter sayısı. (en fazla girilecek karakter)

✔️devredisi: (Boolean) - Opsiyonel

Geçici olarak devre dışı bırakmak içindir. true/false

✔️gerekli: (Boolean) - Opsiyonel

Veri illahki girilecek diyorsanız true yapmalısınız. true/false

↩️Response: (Dönen veri)

String

✔️Tik(Switch)

tikHeader

✔️durusDurum: (Boolean) - Opsiyonel

Normalde kapalı mı açık mı diye belirler. true/false

✔️devredisi: (Boolean) - Opsiyonel

Geçici olarak devre dışı bırakmak içindir. true/false

↩️Response: (Dönen veri)

Boolean

🌈Renk Seçici(Collector)

renkHeader

✔️durusDurum: (HEX, String) - Opsiyonel

Kullanıcı eli ile rengi seçmezse olacak renktir (Ayarlamazsanız orijinal renk #ffffff olarak ayarlanır). #f1016c

✔️devredisi: (Boolean) - Opsiyonel

Geçici olarak devre dışı bırakmak içindir. true/false

✔️Response: (Dönen veri)

String (HEX rengi tipinde döndürür - # içerir. Örnek: #f1f1f1)

#Kanal Secici

kanalSecHeader

✔️devredisi: (Boolean) - Opsiyonel

Geçici olarak devre dışı bırakmak içindir. true/false

↩️Response: (Dönen veri)

String (Kanal ID)

🕴️Rol Seçici

rolHeader

✔️devredisi: (Boolean) - Opsiyonel

Geçici olarak devre dışı bırakmak içindir. true/false

↩️Response: (Dönen veri)

String (Rol ID)

discordDiscord

Size anlattığımız Discord verilerine ihtiyacımız bulunmakta. Başka birşeye ihtiyacımız yok.

🤖Bot oluşturma

createBot

🤫Client ID ve Client Secret

clientidscr

  • "OAuth2" sekmesine gidin
  • "Client ID"yi kopyalayın.
  • "Client Secret"i kopyalayın KİMSEYE SÖYLEMEYİN

🤫Discord Bot Token

token

  • "Bot" sekmesine gidin
  • Bot oluşturun veya var olan botunuza gidin
  • "TOKEN"i kopyalayın KİMSEYE SÖYLEMEYİN

↩️Yönlendirme Linki Ekleme

redirect

  • "OAuth2" sekmesine gidin.
  • REDIRECTS alanına gidin, domaininizi şu şekilde ekleyin: http://domain.com/discord/callback, http://domain.com/manage (ayrıca HTTPS domainleri ekleyebilirsin. Eğer PORT adresin 80, 442 veya 443 değilse, domaininizin sonuna portunuzu ekleyin. Çoğu durumda gerek yoktur. Örn: http://domain.com:892/discord/callback, 'domain.com' yerine domaininizi koyun veya 'localhost' koyarak kendi bilgisayarınızda çalıştırın.)
  • Save changes
  • Bu URL'ler artık kaydedildi. Bu URL'ler üzerinden çalıştırabilirsiniz.

İletişim

Instagram: @atailh4n Discord:Ata İlhan#2077