IRCRehberi.Net- Türkiyenin En iyi IRC ve Genel Forum Sitesi  
 sohbet
seviyeli sohbet


Eggdrop, NeoStats, BNC Sunucu botları, kurulumları ve ayalarına bu başlık altından ulaşabilirsiniz.

🎙️ LAFZONA Sesli ve görüntülü konuşma • İnteraktif yayıncılık • Müzik ve sohbet bir arada Katıl →
2Beğeni(ler)
  • 1 Gönderen KivanC
  • 1 Gönderen CaNeRR


 
Seçenekler Stil
Alt 16 Ağustos 2026, 23:39   #1
W r i t e r
KivanC - ait Kullanıcı Resmi (Avatar)

Standart Deprem Socket Botu (2026)

Temel Özellikler
Otomatik Bağlanma
Script açıldığı anda irc.deneme.com sunucusuna bağlanır, NickServ + Oper girişi yapar ve #sohbet kanalına girer.
Anlık Deprem Bildirimi
Kandilli + AFAD verilerini kullanarak Türkiye’deki depremleri takip eder.
Belirlediğiniz minimum büyüklüğün üzerindeki depremleri kanala otomatik yazar.

Komut Sistemi

Kanalda kullanılabilen komutlar mevcuttur.
Tekrar (Flood) Koruması
Aynı kişi 10 saniye içinde tekrar komut yazarsa bot cevap vermez. Spam engellenir.

Kalıcı Ayarlar

Minimum büyüklük ve açık/kapalı durumu bot kapanıp açılsa bile hatırlanır.

Hash Table Kullanımı
Görülen depremler hash table’da tutulduğu için aynı deprem birden fazla kez bildirilmez (çok hızlı kontrol).

Teknik Detaylar

Bağlantı: Saf sockopen (IRC + API)
Veri Kaynağı: api.orhanaydogdu.com.tr (Kandilli + AFAD birleşik)
Tekrar Engelleme: Hash table (deprem.seen)
Komut Koruması: Kullanıcı bazlı 10 saniyelik bekleme

Renk Sistemi:

3.0–3.9 → Yeşil
4.0–4.9 → Turuncu
5.0+ → Kırmızı + özel uyarı yazısı
Flood Koruması: Hem komutlarda hem otomatik bildirimlerde mevcut

Nasıl Çalıştırılır?

Kodu mIRC’e yükle.
Scripti kaydet ve mIRC’i yeniden başlat (veya /load -rs deprem.mrc yaz).

Bot otomatik olarak bağlanır ve #sohbet kanalına girer.
İstersen bir sonraki adımda şunları da ekleyebilirim:
Derinlik ve koordinat bilgisi
Şehir filtresi (!deprem on 3 izmir)

Log tutma
Daha detaylı !deprem yardim komutu

HTML-Kodu

;=====================================================
;  DEPREM SOCKET BOT v4.1
;  Saf Socket + Hash Table + Komut Flood Koruması
;=====================================================

on *:start:{
  hmake deprem.seen 5000
  hmake deprem.ayar 30
  hmake deprem.flood 100

  if ($isfile(deprem.seen.db)) hload deprem.seen deprem.seen.db
  if ($isfile(deprem.ayar.db))  hload deprem.ayar deprem.ayar.db

  if (!$hget(deprem.ayar,minmag)) hadd deprem.ayar minmag 3.0
  if (!$hget(deprem.ayar,aktif))  hadd deprem.ayar aktif 1

  deprem baglan
}

on *:exit:{
  hsave -i deprem.seen deprem.seen.db
  hsave -i deprem.ayar deprem.ayar.db
}

alias deprem {
  if ($1 == baglan) {
    sockclose deprem
    sockopen deprem irc.deneme.com 6667
    echo -s [Deprem] Bağlanılıyor...
  }
  if ($1 == kapat) {
    sockclose deprem
    sockclose afad*
    .timer depremcheck off
    echo -s [Deprem] Kapatıldı.
  }
}

on *:sockopen:deprem:{
  if ($sockerr) {
    echo -s Bağlantı hatası, 15 saniye sonra tekrar...
    .timer 1 15 deprem baglan
    return
  }
  sockwrite -n deprem NICK Deprem
  sockwrite -n deprem USER Deprem 0 * :Türkiye Anlık Deprem Botu
}

on *:sockread:deprem:{
  if ($sockerr) { deprem baglan | return }

  var %data
  sockread %data
  tokenize 32 %data

  if ($1 == PING) {
    sockwrite -n deprem PONG $2
    return
  }

  if ($2 == 001) {
    sockwrite -n deprem PRIVMSG NickServ :IDENTIFY deneme123
    .timer 1 1 sockwrite -n deprem OPER Deprem deneme123
    .timer 1 2 sockwrite -n deprem OPER deneme123
    .timer 1 3 sockwrite -n deprem JOIN #sohbet
    echo -s [Deprem] #sohbet kanalına girildi.
    .timer depremcheck 0 40 deprem.otomatik
  }

  if ($2 == 433) {
    sockwrite -n deprem NICK Deprem $+ $rand(10,99)
  }

  ; ==================== KOMUTLAR + TEKRAR KORUMASI ====================
  if ($2 == PRIVMSG) && ($3 == #sohbet) {
    var %nick = $remove($1,$chr(58))
    var %text = $remove($4-,$chr(1))
    var %cmd  = $gettok(%text,1,32)
    var %p1   = $gettok(%text,2,32)
    var %p2   = $gettok(%text,3,32)

    ; Sadece !deprem ile başlayan komutlarda koruma uygula
    if (%cmd != !deprem) return

    ; === TEKRAR KORUMASI ===
    var %son = $hget(deprem.flood,%nick)
    if (%son) && ($calc($ctime - %son) < 10) {
      ; 10 saniye dolmadan tekrar yazılmış → yok say
      return
    }
    ; Korumayı güncelle
    hadd -m deprem.flood %nick $ctime
    ; 30 saniye sonra temizle
    .timer 1 30 hdel deprem.flood %nick

    ; ---------------- Komutlar ----------------
    if (%text == !deprem) {
      deprem.api komut 1
      return
    }

    if (%cmd == !deprem) && (%p1 == son) {
      var %adet = $iif(%p2 isnum && %p2 >= 1 && %p2 <= 8,%p2,5)
      deprem.api liste %adet
      return
    }

    if (%cmd == !deprem) && (%p1 == on) {
      if (%p2 isnum) && (%p2 >= 1.5) && (%p2 <= 8.0) {
        hadd deprem.ayar minmag %p2
        hadd deprem.ayar aktif 1
        sockwrite -n deprem PRIVMSG #sohbet :Bildirimler açıldı. Minimum şiddet:  $+ %p2 $+ 
      }
      else {
        sockwrite -n deprem PRIVMSG #sohbet :Kullanım: !deprem on 3
      }
      return
    }

    if (%text == !deprem off) {
      hadd deprem.ayar aktif 0
      sockwrite -n deprem PRIVMSG #sohbet :Otomatik bildirimler kapatıldı.
      return
    }

    if (%text == !deprem durum) {
      var %durum = $iif($hget(deprem.ayar,aktif) == 1,Açık,Kapalı)
      sockwrite -n deprem PRIVMSG #sohbet :Durum:  $+ %durum $+  | Minimum:  $+ $hget(deprem.ayar,minmag) $+ 
      return
    }
  }
}

;=====================================================
;  OTOMATİK KONTROL
;=====================================================
alias deprem.otomatik {
  if (!$sock(deprem)) return
  if ($hget(deprem.ayar,aktif) != 1) return
  deprem.api otomatik 1
}

;=====================================================
;  API
;=====================================================
alias deprem.api {
  var %tip = $1
  var %adet = $iif($2,$2,1)
  var %sid = $ticks $+ $rand(100,999)
  sockclose afad $+ %sid
  sockopen afad $+ %sid api.orhanaydogdu.com.tr 443
  sockmark afad $+ %sid %tip %adet 0
}

on *:sockopen:afad*:{
  if ($sockerr) return
  sockwrite -n $sockname GET /deprem HTTP/1.1
  sockwrite -n $sockname Host: api.orhanaydogdu.com.tr
  sockwrite -n $sockname User-Agent: DepremBot/4.1
  sockwrite -n $sockname Connection: close
  sockwrite -n $sockname $crlf
}

on *:sockread:afad*:{
  if ($sockerr) return

  var %line
  sockread %line

  if (*"earthquake_id"* iswm %line) && (*"mag"* iswm %line) {

    var %id = $gettok($gettok(%line,2,34),1,34)
    if ($hget(deprem.seen,%id)) return
    hadd -m deprem.seen %id 1

    var %mag = $gettok($remove($gettok(%line,2,58),$chr(44)),1,32)
    if (%mag !isnum) return

    var %title = $gettok($gettok(%line,4,34),1,34)
    if (!$title) %title = Bilinmeyen Yer

    var %saat = $gettok($gettok(%line,6,34),1,34)

    var %tip  = $gettok($sock($sockname).mark,1,32)
    var %adet = $gettok($sock($sockname).mark,2,32)
    var %say  = $gettok($sock($sockname).mark,3,32)
    var %min  = $hget(deprem.ayar,minmag)

    var %renk = 03
    if (%mag >= 5.0) %renk = 04
    elseif (%mag >= 4.0) %renk = 07
    elseif (%mag >= 3.0) %renk = 08

    var %mesaj = $chr(3) $+ %renk $+ ⚠️ DEPREM $chr(15) $chr(3) $+ %renk $+ $round(%mag,1) $+ $chr(15) | %title | %saat

    if (%mag >= 5.0) {
      %mesaj = $chr(3) $+ 04 $+ !!! YÜKSEK ŞİDDETLİ DEPREM !!! $chr(15) %mesaj
    }

    if (%tip == otomatik) {
      if (%mag >= %min) {
        sockwrite -n deprem PRIVMSG #sohbet :%mesaj
      }
    }
    elseif (%tip == komut) {
      sockwrite -n deprem PRIVMSG #sohbet :%mesaj
      sockclose $sockname
    }
    elseif (%tip == liste) {
      inc %say
      sockmark $sockname %tip %adet %say
      sockwrite -n deprem PRIVMSG #sohbet : $+ %say $+ . %mesaj
      if (%say >= %adet) sockclose $sockname
    }
  }
}
👍 1
________________

"Sevilmenin kıymeti bilinmiyorsa, Uzaklaşmak En güzeli ki üzülen sen olmayasın"
 
 


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı





Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 09:57.