npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

kokturkdash

v0.0.5

Published

Discord.js Botları için Anlaşılır Dashboard modülü.

Readme

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