Skip to content

Purgatoria/meshtastic-bot-modules

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

Meshtastic Bot Modülleri

Bu depo, Meshtastic ağı üzerinde çalışan botumuz için eklentiler (modüller) içerir. İsteyen herkes bu depoyu çatallayarak (fork) yeni modüller geliştirebilir ve Pull Request (PR) gönderebilir.

Nasıl Yeni Bir Modül Eklenir?

Yeni bir özellik eklemek çok kolaydır. Bu klasörün içine modul_adi.js şeklinde yeni bir dosya oluşturmanız yeterlidir. Bot sistemi, bu klasördeki tüm .js dosyalarını otomatik olarak tanır ve yükler.

Modül Şablonu

Bir modül temel olarak şu yapıda olmalıdır:

module.exports = {
    name: 'modulun_adi', // Modülünüzün kısa adı
    description: 'Bu modülün ne işe yaradığı', // Kısa açıklama
    
    // (Opsiyonel) Bot bir mesaj/komut aldığında bu fonksiyon çalışır
    run: async (message, utils) => {
        // message: Gelen mesajın metni (örn: "/ornek")
        // utils: Bot fonksiyonlarını kullanabilmeniz için yardımcı araçlar
        
        // utils.PREFIX: Botun ön eki (genellikle "/")
        const args = message.substring(utils.PREFIX.length).split(" ");
        const command = args[0].toLowerCase();

        // Eğer gelen komut bizim komutumuzsa işlemleri yap
        if (command === 'ornek') {
            utils.publishMessage(4294967295, "Örnek komut çalıştı!");
            utils.sendDiscord("Örnek komut Discord'a iletildi.");
        }
    },

    // (Opsiyonel) Bot başlatıldığında YALNIZCA BİR KERE çalışır (Arka plan görevleri/zamanlayıcılar için)
    init: (utils) => {
        // Örn: Her 5 dakikada bir çalışacak bir arka plan görevi
        setInterval(() => {
            console.log("Arka plan görevi çalışıyor...");
        }, 300000);
    }
};

utils Objelesi Nedir?

Bot sistemi, modüllerinize işlerini kolaylaştırmak için bir utils objesi gönderir. Bu obje şunları içerir:

  • utils.PREFIX: Botun ayarlanmış ön eki (örn: /). Komutlarınızı kontrol ederken bunu kullanın.
  • utils.publishMessage(hedefId, mesajMetni): Meshtastic ağına (MQTT üzerinden) mesaj gönderir.
    • 4294967295 ID'si tüm ağa (broadcast) gönderim yapmak için kullanılır.
    • Not: Mesajların üst üste binmemesi için sistem otomatik olarak 1 saniye gecikme ekler.
  • utils.sendDiscord(mesajMetni, longName, shortName): Eğer sunucu sahibi .env dosyasında Discord Webhook ayarlamışsa, bu mesajı Discord kanalına iletir.
    • longName ve shortName opsiyoneldir; boş bırakılırsa .env içindeki varsayılan bot isimlerini kullanır.

Örnek Modüller

1. Hava Durumu Botu (weather.js)

/wx [plaka_no] komutu ile şehirlerin güncel hava durumunu Open-Meteo API'si üzerinden getirir.

2. Deprem Botu (deprem.js)

Hem otomatik hem de manuel çalışan gelişmiş bir modüldür:

  • Otomatik: AFAD verilerini 2 dakikada bir kontrol eder ve 4.0 üzeri depremleri anında bildirir.
  • Manuel: /deprem komutu yazıldığında, şiddetine bakılmaksızın son kaydedilen deprem bilgisini getirir.

Geliştirmeye Katkıda Bulunma (Pull Request)

  1. Bu repoyu kendi GitHub hesabınıza çatallayın (Fork).
  2. Kendi modülünüzü .js dosyası olarak ekleyin.
  3. Kendi reponuza commit edip pushlayın.
  4. Bu repoya bir Pull Request (PR) açın.

PR'ınız onaylandığında, ana sunucu güncellenecek ve modülünüz ağda aktif olacaktır!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors