Veritabanına kaydedilen URL'leri uyanık tutan bir Discord Bot Altyapısı.
Öncelikle bazı temel şeylere ihtiyacımız var.
const { APPLICATION_ID, TOKEN } = require("Discord");
const { MONGODB_TOKEN } = require("MongoDB");
require("Replit")
-
Öncelikle Discord Developer Portal üzerinden bir uygulama oluşturmamız gerekiyor.
-
Uygulamamız oluştu. Şimdi açılan sayfada birkaç şeyi tamamlamamız lazım.
-
Öncelikle üstteki ilk görseldeki APP ICON kısmından botunuzun profil fotoğrafını belirleyin. Sonrasında APPLICATION IDyi not edin, daha sonra ikinci görseldeki token kısmından RESET TOKEN tuşuna basıp bot için anahtarınızı alın ve onu da not edin. Son olarak ikinci görselde sağ alttaki üç butonu açık hale getirip ayarları kaydetiğinizde bu sitedeki işiniz bitecek. Botun profil fotoğrafını ayarlamayı unutmayın!
-
Şimdi sırada botumuzu sunucumuza eklemek var. Bu linke sağ tık yapıp kopyalayın. Daha sonra tarayıcınıza yapıştırıp BURAYA_APPLICATION_ID_GELECEK yazan kısmı anlaşıldığı üzere botunuzdan aldığınız numara ile değiştirin ve siteye girin. Açılan pencereden botu eklemek istediğiniz sunucuyu seçerek işlemi tamamlayın. İşte bu kadar.
-
İlk işimiz bir MongoDB hesabı oluşturmak. Google veya GitHub ile kolayca giriş yapabilirsiniz. Daha sonra açılan sayfada aşağıdaki adımları izleyin.
-
İlk görseldeki Create tuşuna basıp ikinci görsele geçiyoruz. Açılan sayfadan M0 FREE olanı seçip alt taraftan servis sağlayıcımızı ve sunucu konumunu belirliyoruz. Replit sunucu konumum Kuzey Amerika olduğu için AWS us-east-1 olanı seçtim. Replit sunucu konumunuzu öğrenmek veya değiştirmek için şu başlığa göz atabilirsiniz, daha sonra lazım olacaktır. Son olarak diziniz için bir isim ayarlayabilirsiniz. Artık sıradaki aşama için Create tuşuna basmaya hazırsınız.
-
Servisi kullanabilmemiz için bir kullanıcıya ihtiyacımız var. Kullanıcı adımızı ve şifremizi belirleyelim. Ben şifreyi otomatik oluşlturmayı tercih ediyorum, siz isterseniz kendiniz de belirleyebilirsiniz. Şifrenizi not ettikten sonra Create User butonuna basıp sayfayı aşağıya kaydırıyoruz.
-
Erişim sağlamak için bir IP erişim listesi oluşturmalıyız. Kişisel kullanım için kendi IPlerinizi girebilirisiniz ama biz şu an Replit üzerinden bağlanacağız o nedenle herhangi bir IP'den erişilebilir yapmak için "0.0.0.0/0" olarak belirleyeceğiz. 1 nolu okun gösterdiği kutucuğu doldurduktan sonra Add Entry butonuna basıp aktif hale gelen Finish and Close butonuna basıyoruz. Önümüze gelen kutucuktaki Go to Overview butonuna basıp sıradaki aşamaya geçiyoruz.
-
İlk görseldeki CONNECT butonuna basıyoruz. Daha sonra açılan pencereden Drivers seçeneğini seçiyoruz. 3. görselde gözüktüğü gibi ilk kısmı olduğu gibi bırakıyoruz. İkinci kısımdaki anahtarı kopyalıyoruz.
mongodb+srv://Mete:<password>@cluster0.afcp5ld.mongodb.net/?retryWrites=true&w=majority
artık elimizde böyle bir anahtar var ancak bu haliyle kullanıma hazır değil. Anahtarda görmüş olduğunuz <password> kısmını, kullanıcı belirleme kısmında belirlediğimiz şifreyle ve son kısmı ise "uptimeDatabase?retryWrites=true&w=majority" ile değiştiriyoruz. Son haliyle elinizde şuna benzer bir şey olmalı:
mongodb+srv://Mete:[email protected]/uptimeDatabase?retryWrites=true&w=majority
Anahtarınızı not edin, lazım olacak.
-
Tekrar aynı başlangıcı yapacağız. Botu çalıştırmak için bir Replit hesabına ihtiyacınız var. Hesabı açarken karşınıza bir takım sorular çıkacaktır, onları kendinize uygun şekilde doldurunuz. Daha sonra aşağıdaki adımları izleyiniz.
-
İlk 2 görseldeki aşamaları takip ettiğinizde son görsele ulaşacaksınız. Son görseldeki GitHub URL kısmını doldurmalıyız. Bu URL'ye sağ tık yapıp kopyalın ve ilgili kısma yapıştırın. Daha sonra Import from GitHub butonuna basıp devam edin.
-
npm run start olan kutucuğun içini silip yerine "node index.js" yazın ve Done butonuna basın.
-
Bu noktada direkt Run butonuna basarsanız sağ altta göreceğiniz hatayla karşılaşacaksınız. Hataya göz atıp bir şeylerin eksik olduğunu anlayabilirsiniz, hadi bu sorunu çözelim.
-
Son fotoğrafta okla gösterilen yeri, aşağıda verdiğim JSON kodundaki ilgili yerleri önceki aşamalarda not ettiğiniz verilerle değiştirip doldurunuz.
{ "PROJECT_NAME": "REPLIT_PROJE_İSMİNİZ", "APP_ID": "DİSCORD_BOT_APPLICATION_ID", "TOKEN": "DİSCORD_BOT_ANAHTARI", "MONGODB_TOKEN": "MONG0DB_ANAHTARI", "OWNER": "YOUR_DISCORD_ID", "SUPPORT_SERVER": "DISCORD_SERVER_ID", "SUPPORT_INVITE": "DISCORD_SERVER_DAVETİ", "UPTİME_CHANNEL": "DISCORD_SERVER_CHANNEL_ID", "DEVELOPMENT": "true", "THEME_COLOR": "4ca74c" }
Örnek:
{ "PROJECT_NAME": "Discord-Uptime-Bot", "APP_ID": "01234567890", "TOKEN": "ABCDEFGHIJKLMNOPRSTUVYZWX", "MONGODB_TOKEN": "ABCDEFGHIJKLMNOPRSTUVYZWX", "OWNER": "0123456789", "SUPPORT_SERVER": "01234567890", "SUPPORT_INVITE": "https://discord.gg/abcde", "UPTİME_CHANNEL": "01234567890", "DEVELOPMENT": "true", "THEME_COLOR": "4ca74c" }
-
Son olarak Save butonuna basıp bu işlemi bitirin. Artık kodumuz kullanıma hazır.
- Üç dilek hakkınızdan birini feda etmelisiniz.
Anlayacağınız üzere bu bot diğer botları ayakta tutuyor. Peki bunu kim tutacak? İnternette birçok uptime sitesi bulabilirsiniz lakin çoğu artık Glitch, Replit vb. yerlerde işlevsiz durumda. Şu anlık Better Stack platformunu değerlendiriyorum. Diğer alternatiflere göz atabilirsiniz.
Komut | Tip | Açıklama |
---|---|---|
/uptime listele |
Yan Çizgi Komutu |
Veritabanına eklediğiniz tüm "URL"leri listeler. |
/uptime ekle |
Yan Çizgi Komutu |
Uyanık tutmak için bir URL eklemenizi sağlar. |
/uptime kaldır |
Yan Çizgi Komutu |
Veritabanından bir URL silmenizi sağlar. |
/uptime temizle |
Yan Çizgi Komutu |
Veritabanına eklediğiniz tüm "URL"leri silmenizi sağlar. |