![]() |
| mIRC Scripting Hazır Kodlar mIRC Scriptinglerinizde kullanabileceğiniz hazır kodlara bu başlık altından ulaşabilirsiniz. |
| | Seçenekler | Stil |
| |
| | #1 |
| 🚗 ARAÇ: !araba [marka] [model] [min-max] !araba bmw 3.20 300000-500000 🏠 SATILIK: !satilik [il] [ilce] [min-max] !satilik istanbul kadikoy 500000-1000000 🏠 KİRALIK: !kiralik [il] [ilce] [min-max] !kiralik istanbul besiktas 5000-15000 🏡 ARSA: !arsa [il] [ilce] [min-max] !arsa istanbul silivri 100000-500000 🏰 VİLLA: !villa [il] [ilce] [min-max] !villa istanbul sariyer 2000000-5000000 🏢 İŞ YERİ: !isyeri [il] [ilce] [min-max] !isyeri istanbul kadikoy 500000-2000000 📊 DURUM: !durum - Kullanım durumunuz !cooldown - Cooldown durumunuz !yardim - Yardım menüsü ------------- 🔹 mIRC Script 🔹 Socket (HTTPS) 🔹 Regex (Veri çekme) 🔹 Hash Tablo (Cache/Log) 🔹 SSL (Güvenli bağlantı) ------------------ HTML-Kodu; ============================================
; SAHIBINDEN ARAMA BOTU - TAM SÜRÜM
; Geliştirici: [SİZİN ADINIZ]
; Sürüm: 2.0
; Tarih: 2026
; ============================================
; ---- KONFIGÜRASYON ----
alias bot_config {
; Proxy ayarları
set %proxy.host 127.0.0.1
set %proxy.port 8080
; Cache süresi (saniye)
set %cache.timeout 300
; Max sonuç sayısı
set %max.results 10
; ---- LİMİT SİSTEMİ ----
set %limit.window 7200 ; 2 saat
set %limit.max_requests 10 ; Max 10 sorgu
set %limit.block_time 7200 ; 2 saat blok
; ---- COOLDOWN AYARLARI ----
set %cooldown.global 3
set %cooldown.max_attempts 5
set %cooldown.block_time 300
; ---- KOMUT COOLDOWN SÜRELERİ ----
set %cd.araba 30
set %cd.satilik 45
set %cd.kiralik 45
set %cd.ev 45
set %cd.arsa 60
set %cd.villa 60
set %cd.isyeri 60
; ---- YETKİLİLER ----
set %admin.hosts *!*@*.example.com,*!*@192.168.*
set %admin.nicks Admin,Root
set %oper.hosts *!*@*.oper.com
set %oper.nicks Oper,Helper
set %oper.limit 25
set %user.limit 10
; ---- KATEGORİ URL'LERİ ----
set %kategori.otomobil /vasita/otomobil
set %kategori.satilik_daire /konut/satilik-daire
set %kategori.kiralik_daire /konut/kiralik-daire
set %kategori.arsa /arsa
set %kategori.villa /konut/villa
set %kategori.isyeri /is-yeri
; ---- USER AGENT ----
set %ua.list Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36|Chrome/120.0.0.0|Safari/537.36
set %ua.list %ua.list $+ $chr(124) $+ Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15|KHTML|Gecko|Safari/605.1.15
set %ua.list %ua.list $+ $chr(124) $+ Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36|Chrome/119.0.0.0|Safari/537.36
}
; ---- BOT BAŞLAT ----
on *:START:{
bot_config
; Hash tabloları
hmake bot_cache 1000
hmake bot_cooldown 500
hmake bot_identify 100
hmake bot_log 2000
hmake bot_limits 500
echo -a ✅ Sahibinden.com Bot başlatıldı!
echo -a ⏱️ Limit: %limit.max_requests sorgu / %limit.window sn
echo -a 🛡️ Admin: %admin.nicks
echo -a 🔧 Oper: %oper.nicks (Limit: %oper.limit)
echo -a 👤 Kullanıcı limiti: %user.limit
echo -a 📢 Geliştirici: [SİZİN ADINIZ]
}
; ---- YETKİ KONTROLÜ ----
alias get_user_level {
var %nick = $1
var %host = $2
; Admin kontrolü
var %i = 1
while ($gettok(%admin.nicks, %i, 44) != $null) {
if ($v1 == %nick) return ADMIN
inc %i
}
%i = 1
while ($gettok(%admin.hosts, %i, 44) != $null) {
var %mask = $v1
if ($wildcard(%mask, %nick $+ ! $+ %host)) return ADMIN
inc %i
}
; Oper kontrolü
%i = 1
while ($gettok(%oper.nicks, %i, 44) != $null) {
if ($v1 == %nick) return OPER
inc %i
}
%i = 1
while ($gettok(%oper.hosts, %i, 44) != $null) {
var %mask = $v1
if ($wildcard(%mask, %nick $+ ! $+ %host)) return OPER
inc %i
}
return USER
}
; ---- LİMİT KONTROLÜ ----
alias check_limits {
var %nick = $1
var %level = $2
var %now = $ctime
if (%level == ADMIN) return OK
var %max_limit = $iif(%level == OPER, %oper.limit, %user.limit)
var %window = %limit.window
var %key = limits| $+ %nick
var %log = $hget(bot_limits, %key)
if (%log == $null) {
var %new_log = $+($now, $chr(1), 1)
hadd bot_limits %key %new_log
return OK
}
var %log_count = 0
var %clean_log = $null
var %i = 1
while ($gettok(%log, %i, $chr(1)) != $null) {
var %entry = $v1
var %time = $gettok(%entry, 1, 44)
var %count = $gettok(%entry, 2, 44)
if ($calc(%now - %time) < %window) {
%log_count = $calc(%log_count + %count)
if (%clean_log == $null) {
%clean_log = %entry
}
else {
%clean_log = %clean_log $+ $chr(1) $+ %entry
}
}
inc %i
}
if (%log_count >= %max_limit) {
var %block_key = block| $+ %nick
var %block_until = $calc(%now + %limit.block_time)
hadd bot_limits %block_key %block_until
hdel bot_limits %key
var %remain = $calc(%limit.block_time / 60)
return $+(BLOCKED:, %remain)
}
var %new_count = $calc(%log_count + 1)
var %new_entry = $+($now, 44, %new_count)
if (%clean_log == $null) {
%clean_log = %new_entry
}
else {
%clean_log = %clean_log $+ $chr(1) $+ %new_entry
}
hadd bot_limits %key %clean_log
var %remaining = $calc(%max_limit - %new_count)
return $+(REMAINING:, %remaining)
}
; ---- COOLDOWN KONTROLÜ ----
alias check_cooldown {
var %komut = $1
var %nick = $2
var %level = $3
var %now = $ctime
if (%level == ADMIN) return OK
var %cd_sure = $iif(%level == OPER, $calc($hget(bot_cooldown, cd. $+ %komut) / 2), $hget(bot_cooldown, cd. $+ %komut))
if (%cd_sure == $null) {
%cd_sure = $iif(%level == OPER, 15, 30)
}
var %key = %komut $+ | $+ %nick
var %last_use = $hget(bot_cooldown, %key)
var %attempts = $hget(bot_cooldown, %key $+ .attempts)
var %block_until = $hget(bot_cooldown, %key $+ .block)
if (%block_until != $null && %now < %block_until) {
var %remain = $calc(%block_until - %now)
return $+(BLOCKED:, %remain)
}
if (%last_use == $null) {
hadd bot_cooldown %key %now
hadd bot_cooldown %key $+ .attempts 1
return OK
}
if (%attempts >= %cooldown.max_attempts) {
var %block_time = $calc(%now + %cooldown.block_time)
hadd bot_cooldown %key $+ .block %block_time
hdel bot_cooldown %key
hdel bot_cooldown %key $+ .attempts
return $+(BLOCKED:, %cooldown.block_time)
}
var %diff = $calc(%now - %last_use)
if (%diff < %cd_sure) {
var %remain = $calc(%cd_sure - %diff)
inc %attempts
hadd bot_cooldown %key $+ .attempts %attempts
return $+(WAIT:, %remain)
}
hadd bot_cooldown %key %now
hadd bot_cooldown %key $+ .attempts 1
return OK
}
; ---- GLOBAL COOLDOWN ----
alias check_global_cooldown {
var %level = $1
var %now = $ctime
if (%level == ADMIN || %level == OPER) return OK
var %last_global = $hget(bot_cooldown, GLOBAL)
if (%last_global == $null) {
hadd bot_cooldown GLOBAL %now
return OK
}
var %diff = $calc(%now - %last_global)
if (%diff < %cooldown.global) {
var %remain = $calc(%cooldown.global - %diff)
return $+(WAIT:, %remain)
}
hadd bot_cooldown GLOBAL %now
return OK
}
; ---- LOG SİSTEMİ ----
alias log_search {
var %nick = $1
var %komut = $2
var %arama = $3
var %sonuc = $4
var %now = $ctime
var %log_key = log| $+ $date
var %log_entry = $+($now, |, %nick, |, %komut, |, %arama, |, %sonuc, |, $network, |, $chan)
var %existing = $hget(bot_log, %log_key)
if (%existing == $null) {
hadd bot_log %log_key %log_entry
}
else {
hadd bot_log %log_key %existing $+ $chr(10) $+ %log_entry
}
}
; ---- KOMUT YAKALAMA ----
on *:TEXT:!*:#:{
; Identify kontrolü
if (!$is_identified($nick, $host)) {
msg $chan 🔐 $nick $+ , lütfen önce identify olun! (/msg NickServ IDENTIFY şifre)
halt
}
var %komut = $1
if (%komut == !araba) {
komut_araba $nick $1-
halt
}
elseif (%komut == !ev) {
komut_ev $nick $1-
halt
}
elseif (%komut == !satilik) {
komut_satilik $nick $1-
halt
}
elseif (%komut == !kiralik) {
komut_kiralik $nick $1-
halt
}
elseif (%komut == !arsa) {
komut_arsa $nick $1-
halt
}
elseif (%komut == !villa) {
komut_villa $nick $1-
halt
}
elseif (%komut == !isyeri) {
komut_isyeri $nick $1-
halt
}
elseif (%komut == !durum) {
komut_durum $nick
halt
}
elseif (%komut == !cooldown) {
komut_cooldown $nick
halt
}
elseif (%komut == !yardim) {
komut_yardim $nick
halt
}
elseif (%komut == !admin) {
komut_admin $nick $host $1-
halt
}
elseif (%komut == !temizle) {
komut_temizle $nick $host
halt
}
}
; ---- ARABA KOMUTU ----
alias komut_araba {
var %nick = $1
var %text = $2-
var %level = $get_user_level(%nick, $host)
if (!$regex(%text, /^!araba\s+([^\d]+?)\s+([^\d]+?)(?:\s+(\d+)\s*-\s*(\d+))?$/i)) {
msg $chan ❌ Hatalı format! Örnek: !araba bmw 3.20 300000-500000
return
}
var %marka = $trim($regml(1))
var %model = $trim($regml(2))
var %fiyat_alt = $iif($regml(3) != $null, $regml(3), 0)
var %fiyat_ust = $iif($regml(4) != $null, $regml(4), 10000000)
; Limit kontrolü
var %limit_result = $check_limits(%nick, %level)
if ($left(%limit_result, 7) == BLOCKED) {
var %dakika = $right(%limit_result, -8)
msg $chan 🚫 $nick $+ , 2 saatlik limit doldu! %dakika dakika sonra tekrar deneyin.
return
}
; Global cooldown
var %global = $check_global_cooldown(%level)
if ($left(%global, 4) == WAIT) {
var %remain = $right(%global, -5)
msg $chan ⏳ Sistem yoğun, %remain saniye bekleyin!
return
}
; Kullanıcı cooldown
var %cd_result = $check_cooldown(araba, %nick, %level)
if ($left(%cd_result, 7) == BLOCKED) {
var %remain = $right(%cd_result, -8)
msg $chan 🚫 $nick $+ , çok fazla deneme! %remain saniye bloklandınız.
return
}
if ($left(%cd_result, 4) == WAIT) {
var %remain = $right(%cd_result, -5)
msg $chan ⏳ $nick $+ , araba komutu için %remain saniye bekleyin!
return
}
msg $chan 📡 $nick $+ , sahibinden.com'da * %marka %model * aranıyor...
; Cache kontrolü
var %cache_key = araba| $+ %marka $+ | $+ %model $+ | $+ %fiyat_alt $+ | $+ %fiyat_ust
var %cache_data = $hget(bot_cache, %cache_key)
var %cache_time = $hget(bot_cache, %cache_key $+ .time)
if (%cache_data != $null && $calc($ctime - %cache_time) < %cache.timeout) {
msg $chan 💾 Cache'den okunuyor...
msg $nick %cache_data
msg $chan ✅ $nick $+ , sonuçlar özel mesaj olarak gönderildi! (Cache)
log_search %nick "!araba" "%marka %model" "Cache"
return
}
; Sorgula
sahibinden_ara /vasita/otomobil %marka %model %fiyat_alt %fiyat_ust $nick %cache_key araba
}
; ---- EV KOMUTU ----
alias komut_ev {
var %nick = $1
var %text = $2-
var %level = $get_user_level(%nick, $host)
if (!$regex(%text, /^!ev\s+(satilik|kiralik)\s+([^\d]+?)\s+([^\d]+?)(?:\s+(\d+)\s*-\s*(\d+))?$/i)) {
msg $chan ❌ Hatalı format! Örnek: !ev satilik istanbul kadikoy 500000-1000000
return
}
var %tur = $regml(1)
var %il = $trim($regml(2))
var %ilce = $trim($regml(3))
var %fiyat_alt = $iif($regml(4) != $null, $regml(4), 0)
var %fiyat_ust = $iif($regml(5) != $null, $regml(5), 10000000)
; Limit kontrolü
var %limit_result = $check_limits(%nick, %level)
if ($left(%limit_result, 7) == BLOCKED) {
var %dakika = $right(%limit_result, -8)
msg $chan 🚫 $nick $+ , 2 saatlik limit doldu! %dakika dakika sonra tekrar deneyin.
return
}
; Global cooldown
var %global = $check_global_cooldown(%level)
if ($left(%global, 4) == WAIT) {
var %remain = $right(%global, -5)
msg $chan ⏳ Sistem yoğun, %remain saniye bekleyin!
return
}
; Kullanıcı cooldown
var %cd_result = $check_cooldown(ev, %nick, %level)
if ($left(%cd_result, 7) == BLOCKED) {
var %remain = $right(%cd_result, -8)
msg $chan 🚫 $nick $+ , çok fazla deneme! %remain saniye bloklandınız.
return
}
if ($left(%cd_result, 4) == WAIT) {
var %remain = $right(%cd_result, -5)
msg $chan ⏳ $nick $+ , ev komutu için %remain saniye bekleyin!
return
}
var %kategori = $iif(%tur == satilik, /konut/satilik-daire, /konut/kiralik-daire)
var %tur_text = $iif(%tur == satilik, SATILIK, KİRALIK)
msg $chan 📡 $nick $+ , sahibinden.com'da %tur_text daire * %il %ilce * aranıyor...
; Cache kontrolü
var %cache_key = ev| $+ %tur $+ | $+ %il $+ | $+ %ilce $+ | $+ %fiyat_alt $+ | $+ %fiyat_ust
var %cache_data = $hget(bot_cache, %cache_key)
var %cache_time = $hget(bot_cache, %cache_key $+ .time)
if (%cache_data != $null && $calc($ctime - %cache_time) < %cache.timeout) {
msg $chan 💾 Cache'den okunuyor...
msg $nick %cache_data
msg $chan ✅ $nick $+ , sonuçlar özel mesaj olarak gönderildi! (Cache)
log_search %nick "!ev" "%tur %il %ilce" "Cache"
return
}
; Sorgula
sahibinden_ara %kategori %il %ilce %fiyat_alt %fiyat_ust $nick %cache_key ev
}
; ---- SATILIK KOMUTU ----
alias komut_satilik {
var %nick = $1
var %text = $2-
var %level = $get_user_level(%nick, $host)
if (!$regex(%text, /^!satilik\s+([^\d]+?)\s+([^\d]+?)(?:\s+(\d+)\s*-\s*(\d+))?$/i)) {
msg $chan ❌ Hatalı format! Örnek: !satilik istanbul kadikoy 500000-1000000
return
}
var %il = $trim($regml(1))
var %ilce = $trim($regml(2))
var %fiyat_alt = $iif($regml(3) != $null, $regml(3), 0)
var %fiyat_ust = $iif($regml(4) != $null, $regml(4), 10000000)
; Limit kontrolü
var %limit_result = $check_limits(%nick, %level)
if ($left(%limit_result, 7) == BLOCKED) {
var %dakika = $right(%limit_result, -8)
msg $chan 🚫 $nick $+ , 2 saatlik limit doldu! %dakika dakika sonra tekrar deneyin.
return
}
; Global cooldown
var %global = $check_global_cooldown(%level)
if ($left(%global, 4) == WAIT) {
var %remain = $right(%global, -5)
msg $chan ⏳ Sistem yoğun, %remain saniye bekleyin!
return
}
; Kullanıcı cooldown
var %cd_result = $check_cooldown(satilik, %nick, %level)
if ($left(%cd_result, 7) == BLOCKED) {
var %remain = $right(%cd_result, -8)
msg $chan 🚫 $nick $+ , çok fazla deneme! %remain saniye bloklandınız.
return
}
if ($left(%cd_result, 4) == WAIT) {
var %remain = $right(%cd_result, -5)
msg $chan ⏳ $nick $+ , satilik komutu için %remain saniye bekleyin!
return
}
msg $chan 📡 $nick $+ , sahibinden.com'da * %il %ilce * satılık daire aranıyor...
; Cache kontrolü
var %cache_key = satilik| $+ %il $+ | $+ %ilce $+ | $+ %fiyat_alt $+ | $+ %fiyat_ust
var %cache_data = $hget(bot_cache, %cache_key)
var %cache_time = $hget(bot_cache, %cache_key $+ .time)
if (%cache_data != $null && $calc($ctime - %cache_time) < %cache.timeout) {
msg $chan 💾 Cache'den okunuyor...
msg $nick %cache_data
msg $chan ✅ $nick $+ , sonuçlar özel mesaj olarak gönderildi! (Cache)
log_search %nick "!satilik" "%il %ilce" "Cache"
return
}
; Sorgula
sahibinden_ara /konut/satilik-daire %il %ilce %fiyat_alt %fiyat_ust $nick %cache_key satilik
}
; ---- KİRALIK KOMUTU ----
alias komut_kiralik {
var %nick = $1
var %text = $2-
var %level = $get_user_level(%nick, $host)
if (!$regex(%text, /^!kiralik\s+([^\d]+?)\s+([^\d]+?)(?:\s+(\d+)\s*-\s*(\d+))?$/i)) {
msg $chan ❌ Hatalı format! Örnek: !kiralik istanbul besiktas 5000-15000
return
}
var %il = $trim($regml(1))
var %ilce = $trim($regml(2))
var %fiyat_alt = $iif($regml(3) != $null, $regml(3), 0)
var %fiyat_ust = $iif($regml(4) != $null, $regml(4), 10000000)
; Limit kontrolü
var %limit_result = $check_limits(%nick, %level)
if ($left(%limit_result, 7) == BLOCKED) {
var %dakika = $right(%limit_result, -8)
msg $chan 🚫 $nick $+ , 2 saatlik limit doldu! %dakika dakika sonra tekrar deneyin.
return
}
; Global cooldown
var %global = $check_global_cooldown(%level)
if ($left(%global, 4) == WAIT) {
var %remain = $right(%global, -5)
msg $chan ⏳ Sistem yoğun, %remain saniye bekleyin!
return
}
; Kullanıcı cooldown
var %cd_result = $check_cooldown(kiralik, %nick, %level)
if ($left(%cd_result, 7) == BLOCKED) {
var %remain = $right(%cd_result, -8)
msg $chan 🚫 $nick $+ , çok fazla deneme! %remain saniye bloklandınız.
return
}
if ($left(%cd_result, 4) == WAIT) {
var %remain = $right(%cd_result, -5)
msg $chan ⏳ $nick $+ , kiralik komutu için %remain saniye bekleyin!
return
}
msg $chan 📡 $nick $+ , sahibinden.com'da * %il %ilce * kiralık daire aranıyor...
; Cache kontrolü
var %cache_key = kiralik| $+ %il $+ | $+ %ilce $+ | $+ %fiyat_alt $+ | $+ %fiyat_ust
var %cache_data = $hget(bot_cache, %cache_key)
var %cache_time = $hget(bot_cache, %cache_key $+ .time)
if (%cache_data != $null && $calc($ctime - %cache_time) < %cache.timeout) {
msg $chan 💾 Cache'den okunuyor...
msg $nick %cache_data
msg $chan ✅ $nick $+ , sonuçlar özel mesaj olarak gönderildi! (Cache)
log_search %nick "!kiralik" "%il %ilce" "Cache"
return
}
; Sorgula
sahibinden_ara /konut/kiralik-daire %il %ilce %fiyat_alt %fiyat_ust $nick %cache_key kiralik
}
; ---- ARSA KOMUTU ----
alias komut_arsa {
var %nick = $1
var %text = $2-
var %level = $get_user_level(%nick, $host)
if (!$regex(%text, /^!arsa\s+([^\d]+?)\s+([^\d]+?)(?:\s+(\d+)\s*-\s*(\d+))?$/i)) {
msg $chan ❌ Hatalı format! Örnek: !arsa istanbul silivri 100000-500000
return
}
var %il = $trim($regml(1))
var %ilce = $trim($regml(2))
var %fiyat_alt = $iif($regml(3) != $null, $regml(3), 0)
var %fiyat_ust = $iif($regml(4) != $null, $regml(4), 10000000)
; Limit kontrolü
var %limit_result = $check_limits(%nick, %level)
if ($left(%limit_result, 7) == BLOCKED) {
var %dakika = $right(%limit_result, -8)
msg $chan 🚫 $nick $+ , 2 saatlik limit doldu! %dakika dakika sonra tekrar deneyin.
return
}
; Global cooldown
var %global = $check_global_cooldown(%level)
if ($left(%global, 4) == WAIT) {
var %remain = $right(%global, -5)
msg $chan ⏳ Sistem yoğun, %remain saniye bekleyin!
return
}
; Kullanıcı cooldown
var %cd_result = $check_cooldown(arsa, %nick, %level)
if ($left(%cd_result, 7) == BLOCKED) {
var %remain = $right(%cd_result, -8)
msg $chan 🚫 $nick $+ , çok fazla deneme! %remain saniye bloklandınız.
return
}
if ($left(%cd_result, 4) == WAIT) {
var %remain = $right(%cd_result, -5)
msg $chan ⏳ $nick $+ , arsa komutu için %remain saniye bekleyin!
return
}
msg $chan 📡 $nick $+ , sahibinden.com'da * %il %ilce * arsa aranıyor...
; Cache kontrolü
var %cache_key = arsa| $+ %il $+ | $+ %ilce $+ | $+ %fiyat_alt $+ | $+ %fiyat_ust
var %cache_data = $hget(bot_cache, %cache_key)
var %cache_time = $hget(bot_cache, %cache_key $+ .time)
if (%cache_data != $null && $calc($ctime - %cache_time) < %cache.timeout) {
msg $chan 💾 Cache'den okunuyor...
msg $nick %cache_data
msg $chan ✅ $nick $+ , sonuçlar özel mesaj olarak gönderildi! (Cache)
log_search %nick "!arsa" "%il %ilce" "Cache"
return
}
; Sorgula
sahibinden_ara /arsa %il %ilce %fiyat_alt %fiyat_ust $nick %cache_key arsa
}
; ---- VİLLA KOMUTU ----
alias komut_villa {
var %nick = $1
var %text = $2-
var %level = $get_user_level(%nick, $host)
if (!$regex(%text, /^!villa\s+([^\d]+?)\s+([^\d]+?)(?:\s+(\d+)\s*-\s*(\d+))?$/i)) {
msg $chan ❌ Hatalı format! Örnek: !villa istanbul sariyer 2000000-5000000
return
}
var %il = $trim($regml(1))
var %ilce = $trim($regml(2))
var %fiyat_alt = $iif($regml(3) != $null, $regml(3), 0)
var %fiyat_ust = $iif($regml(4) != $null, $regml(4), 10000000)
; Limit kontrolü
var %limit_result = $check_limits(%nick, %level)
if ($left(%limit_result, 7) == BLOCKED) {
var %dakika = $right(%limit_result, -8)
msg $chan 🚫 $nick $+ , 2 saatlik limit doldu! %dakika dakika sonra tekrar deneyin.
return
}
; Global cooldown
var %global = $check_global_cooldown(%level)
if ($left(%global, 4) == WAIT) {
var %remain = $right(%global, -5)
msg $chan ⏳ Sistem yoğun, %remain saniye bekleyin!
return
}
; Kullanıcı cooldown
var %cd_result = $check_cooldown(villa, %nick, %level)
if ($left(%cd_result, 7) == BLOCKED) {
var %remain = $right(%cd_result, -8)
msg $chan 🚫 $nick $+ , çok fazla deneme! %remain saniye bloklandınız.
return
}
if ($left(%cd_result, 4) == WAIT) {
var %remain = $right(%cd_result, -5)
msg $chan ⏳ $nick $+ , villa komutu için %remain saniye bekleyin!
return
}
msg $chan 📡 $nick $+ , sahibinden.com'da * %il %ilce * villa aranıyor...
; Cache kontrolü
var %cache_key = villa| $+ %il $+ | $+ %ilce $+ | $+ %fiyat_alt $+ | $+ %fiyat_ust
var %cache_data = $hget(bot_cache, %cache_key)
var %cache_time = $hget(bot_cache, %cache_key $+ .time)
if (%cache_data != $null && $calc($ctime - %cache_time) < %cache.timeout) {
msg $chan 💾 Cache'den okunuyor...
msg $nick %cache_data
msg $chan ✅ $nick $+ , sonuçlar özel mesaj olarak gönderildi! (Cache)
log_search %nick "!villa" "%il %ilce" "Cache"
return
}
; Sorgula
sahibinden_ara /konut/villa %il %ilce %fiyat_alt %fiyat_ust $nick %cache_key villa
}
; ---- İŞ YERİ KOMUTU ----
alias komut_isyeri {
var %nick = $1
var %text = $2-
var %level = $get_user_level(%nick, $host)
if (!$regex(%text, /^!isyeri\s+([^\d]+?)\s+([^\d]+?)(?:\s+(\d+)\s*-\s*(\d+))?$/i)) {
msg $chan ❌ Hatalı format! Örnek: !isyeri istanbul kadikoy 500000-2000000
return
}
var %il = $trim($regml(1))
var %ilce = $trim($regml(2))
var %fiyat_alt = $iif($regml(3) != $null, $regml(3), 0)
var %fiyat_ust = $iif($regml(4) != $null, $regml(4), 10000000)
; Limit kontrolü
var %limit_result = $check_limits(%nick, %level)
if ($left(%limit_result, 7) == BLOCKED) {
var %dakika = $right(%limit_result, -8)
msg $chan 🚫 $nick $+ , 2 saatlik limit doldu! %dakika dakika sonra tekrar deneyin.
return
}
; Global cooldown
var %global = $check_global_cooldown(%level)
if ($left(%global, 4) == WAIT) {
var %remain = $right(%global, -5)
msg $chan ⏳ Sistem yoğun, %remain saniye bekleyin!
return
}
; Kullanıcı cooldown
var %cd_result = $check_cooldown(isyeri, %nick, %level)
if ($left(%cd_result, 7) == BLOCKED) {
var %remain = $right(%cd_result, -8)
msg $chan 🚫 $nick $+ , çok fazla deneme! %remain saniye bloklandınız.
return
}
if ($left(%cd_result, 4) == WAIT) {
var %remain = $right(%cd_result, -5)
msg $chan ⏳ $nick $+ , isyeri komutu için %remain saniye bekleyin!
return
}
msg $chan 📡 $nick $+ , sahibinden.com'da * %il %ilce * iş yeri aranıyor...
; Cache kontrolü
var %cache_key = isyeri| $+ %il $+ | $+ %ilce $+ | $+ %fiyat_alt $+ | $+ %fiyat_ust
var %cache_data = $hget(bot_cache, %cache_key)
var %cache_time = $hget(bot_cache, %cache_key $+ .time)
if (%cache_data != $null && $calc($ctime - %cache_time) < %cache.timeout) {
msg $chan 💾 Cache'den okunuyor...
msg $nick %cache_data
msg $chan ✅ $nick $+ , sonuçlar özel mesaj olarak gönderildi! (Cache)
log_search %nick "!isyeri" "%il %ilce" "Cache"
return
}
; Sorgula
sahibinden_ara /is-yeri %il %ilce %fiyat_alt %fiyat_ust $nick %cache_key isyeri
}
; ---- DURUM KOMUTU ----
alias komut_durum {
var %nick = $1
var %level = $get_user_level(%nick, $host)
var %mesaj = 📊 $nick $+ , KULLANIM DURUMUNUZ:
%mesaj = %mesaj $+ $chr(10) $+ ─────────────────────────
%mesaj = %mesaj $+ $chr(10) $+ 🔰 Yetki: %level
if (%level == ADMIN) {
%mesaj = %mesaj $+ $chr(10) $+ ✅ Sınırsız kullanım!
}
else {
var %max_limit = $iif(%level == OPER, %oper.limit, %user.limit)
var %key = limits| $+ %nick
var %log = $hget(bot_limits, %key)
var %now = $ctime
var %count = 0
if (%log != $null) {
var %i = 1
while ($gettok(%log, %i, $chr(1)) != $null) {
var %entry = $v1
var %time = $gettok(%entry, 1, 44)
if ($calc(%now - %time) < %limit.window) {
var %cnt = $gettok(%entry, 2, 44)
%count = $calc(%count + %cnt)
}
inc %i
}
}
var %remaining = $calc(%max_limit - %count)
%mesaj = %mesaj $+ $chr(10) $+ 📊 Son 2 saat: %count / %max_limit sorgu
%mesaj = %mesaj $+ $chr(10) $+ 💫 Kalan: %remaining sorgu
var %block_key = block| $+ %nick
var %block_until = $hget(bot_limits, %block_key)
if (%block_until != $null && %now < %block_until) {
var %remain = $calc(($block_until - %now) / 60)
%mesaj = %mesaj $+ $chr(10) $+ 🚫 Bloklu: %remain dakika kaldı
}
}
; Son 5 arama
%mesaj = %mesaj $+ $chr(10) $+ ─────────────────────────
%mesaj = %mesaj $+ $chr(10) $+ 📜 Son 5 aramanız:
var %log_key = log| $+ $date
var %log_data = $hget(bot_log, %log_key)
var %found = 0
var %i = $numtok(%log_data, 10)
while (%i > 0 && %found < 5) {
var %line = $gettok(%log_data, %i, 10)
if ($gettok(%line, 2, 124) == %nick) {
var %time = $asctime($gettok(%line, 1, 124), HH:NN)
var %komut = $gettok(%line, 3, 124)
var %arama = $gettok(%line, 4, 124)
%mesaj = %mesaj $+ $chr(10) $+ %time $+ - $+ %komut $+ %arama
inc %found
}
dec %i
}
if (%found == 0) {
%mesaj = %mesaj $+ $chr(10) $+ ⚠️ Henüz arama yapmamışsınız.
}
msg %nick %mesaj
}
; ---- COOLDOWN KOMUTU ----
alias komut_cooldown {
var %nick = $1
var %level = $get_user_level(%nick, $host)
var %mesaj = 📊 COOLDOWN DURUMUNUZ:
%mesaj = %mesaj $+ $chr(10) $+ ─────────────────────────
var %komutlar = araba,satilik,kiralik,arsa,villa,isyeri
var %i = 1
while ($gettok(%komutlar, %i, 44) != $null) {
var %komut = $v1
var %durum = $get_cooldown_status(%komut, %nick, %level)
var %cd_sure = $hget(bot_cooldown, cd. $+ %komut)
if (%cd_sure == $null) %cd_sure = 30
; Günlük limit
var %day_key = %komut $+ | $+ %nick $+ | $+ $date
var %today_count = $hget(bot_limits, %day_key)
if (%today_count == $null) %today_count = 0
var %limit = $iif(%level == ADMIN, Sınırsız, $iif(%level == OPER, %oper.limit, %user.limit))
var %icon = $iif(%komut == araba, 🚗, $iif(%komut == satilik, 🏠, $iif(%komut == kiralik, 🏠, $iif(%komut == arsa, 🏡, $iif(%komut == villa, 🏰, 🏢)))))
%mesaj = %mesaj $+ $chr(10) $+ %icon %komut $+ : %durum
inc %i
}
%mesaj = %mesaj $+ $chr(10) $+ ─────────────────────────
%mesaj = %mesaj $+ $chr(10) $+ ⏱️ Global cooldown: $iif($hget(bot_cooldown, GLOBAL) == $null, ✅ Hazır, ⏳ Bekle: $calc(%cooldown.global - ($ctime - $hget(bot_cooldown, GLOBAL))) sn)
msg %nick %mesaj
}
; ---- COOLDOWN DURUMU AL ----
alias get_cooldown_status {
var %komut = $1
var %nick = $2
var %level = $3
var %key = %komut $+ | $+ %nick
var %last_use = $hget(bot_cooldown, %key)
var %block_until = $hget(bot_cooldown, %key $+ .block)
var %now = $ctime
if (%level == ADMIN) return ✅ Sınırsız
if (%block_until != $null && %now < %block_until) {
var %remain = $calc(%block_until - %now)
return 🚫 Blok: %remain sn
}
if (%last_use == $null) return ✅ Hazır
var %cd_sure = $iif(%level == OPER, $calc($hget(bot_cooldown, cd. $+ %komut) / 2), $hget(bot_cooldown, cd. $+ %komut))
if (%cd_sure == $null) %cd_sure = $iif(%level == OPER, 15, 30)
var %diff = $calc(%now - %last_use)
if (%diff < %cd_sure) {
var %remain = $calc(%cd_sure - %diff)
return ⏳ Bekle: %remain sn
}
return ✅ Hazır
}
; ---- YARDIM KOMUTU ----
alias komut_yardim {
var %nick = $1
var %level = $get_user_level(%nick, $host)
msg %nick 📖 SAHIBINDEN BOT KULLANIMI:
msg %nick ──────────────────────────────────────
msg %nick 🔰 Yetki Seviyeniz: %level
if (%level == ADMIN) {
msg %nick ✅ Sınırsız kullanım hakkınız var!
msg %nick 👑 Admin komutları: !admin
}
elseif (%level == OPER) {
msg %nick ✅ %oper.limit sorgu / 2 saat (Yarı cooldown)
}
else {
msg %nick ✅ %user.limit sorgu / 2 saat
}
msg %nick ──────────────────────────────────────
msg %nick 🚗 ARABA:
msg %nick !araba [marka] [model] [min-max]
msg %nick Örnek: !araba bmw 3.20 300000-500000
msg %nick ⏱️ Cooldown: %cd.araba sn
msg %nick ──────────────────────────────────────
msg %nick 🏠 SATILIK DAİRE:
msg %nick !satilik [il] [ilce] [min-max]
msg %nick !ev satilik [il] [ilce] [min-max]
msg %nick Örnek: !satilik istanbul kadikoy 500000-1000000
msg %nick ⏱️ Cooldown: %cd.satilik sn
msg %nick ──────────────────────────────────────
msg %nick 🏠 KİRALIK DAİRE:
msg %nick !kiralik [il] [ilce] [min-max]
msg %nick !ev kiralik [il] [ilce] [min-max]
msg %nick Örnek: !kiralik istanbul besiktas 5000-15000
msg %nick ⏱️ Cooldown: %cd.kiralik sn
msg %nick ──────────────────────────────────────
msg %nick 🏡 ARSA:
msg %nick !arsa [il] [ilce] [min-max]
msg %nick Örnek: !arsa istanbul silivri 100000-500000
msg %nick ⏱️ Cooldown: %cd.arsa sn
msg %nick ──────────────────────────────────────
msg %nick 🏰 VİLLA:
msg %nick !villa [il] [ilce] [min-max]
msg %nick Örnek: !villa istanbul sariyer 2000000-5000000
msg %nick ⏱️ Cooldown: %cd.villa sn
msg %nick ──────────────────────────────────────
msg %nick 🏢 İŞ YERİ:
msg %nick !isyeri [il] [ilce] [min-max]
msg %nick Örnek: !isyeri istanbul kadikoy 500000-2000000
msg %nick ⏱️ Cooldown: %cd.isyeri sn
msg %nick ──────────────────────────────────────
msg %nick 📊 DURUM:
msg %nick !durum - Kullanım durumunuzu gösterir
msg %nick !cooldown - Cooldown durumunuzu gösterir
msg %nick ──────────────────────────────────────
msg %nick 🔐 Identify zorunlu!
msg %nick ⏱️ Global cooldown: %cooldown.global sn
msg %nick 🚫 Max deneme: %cooldown.max_attempts | Blok: %cooldown.block_time sn
msg %nick ──────────────────────────────────────
msg %nick 📌 Bot sahibi: [SİZİN ADINIZ]
msg %nick 📧 İletişim: [MAİL ADRESİNİZ]
msg %nick 🌐 Web: [SİTENİZ]
}
; ---- ADMIN KOMUTLARI ----
alias komut_admin {
var %nick = $1
var %host = $2
var %text = $3-
var %level = $get_user_level(%nick, %host)
if (%level != ADMIN) {
msg %nick 🚫 Bu komut sadece adminler içindir!
return
}
var %komut = $3
if (%komut == limit) {
var %hedef = $4
var %key = limits| $+ %hedef
var %log = $hget(bot_limits, %key)
var %now = $ctime
var %count = 0
if (%log != $null) {
var %i = 1
while ($gettok(%log, %i, $chr(1)) != $null) {
var %entry = $v1
var %time = $gettok(%entry, 1, 44)
if ($calc(%now - %time) < %limit.window) {
var %cnt = $gettok(%entry, 2, 44)
%count = $calc(%count + %cnt)
}
inc %i
}
}
var %level_hedef = $get_user_level(%hedef, $host)
var %max_limit = $iif(%level_hedef == ADMIN, Sınırsız, $iif(%level_hedef == OPER, %oper.limit, %user.limit))
msg %nick 📊 %hedef $+ , kullanım durumu:
msg %nick 🔰 Yetki: %level_hedef
msg %nick 📊 Son 2 saat: %count / %max_limit
}
elseif (%komut == unblock) {
var %hedef = $4
var %block_key = block| $+ %hedef
hdel bot_limits %block_key
msg %nick ✅ %hedef $+ , blok kaldırıldı!
}
elseif (%komut == reset) {
var %hedef = $4
var %key = limits| $+ %hedef
hdel bot_limits %key
msg %nick ✅ %hedef $+ , limiti sıfırlandı!
}
elseif (%komut == cooldown) {
var %komut_adi = $4
var %new_time = $5
if (%new_time isdigit) {
hadd bot_cooldown cd. $+ %komut_adi %new_time
msg %nick ✅ %komut_adi cooldown süresi %new_time saniye olarak ayarlandı!
}
else {
msg %nick ❌ Örnek: !admin cooldown araba 60
}
}
elseif (%komut == log) {
var %log_key = log| $+ $date
var %log_data = $hget(bot_log, %log_key)
if (%log_data == $null) {
msg %nick ⚠️ Bugün için log kaydı yok.
return
}
var %i = $numtok(%log_data, 10)
var %count = 0
var %mesaj = 📋 SON ARAMALAR: $+ $chr(10)
%mesaj = %mesaj $+ ───────────────────────── $+ $chr(10)
while (%i > 0 && %count < 20) {
var %line = $gettok(%log_data, %i, 10)
var %time = $asctime($gettok(%line, 1, 124), HH:NN)
var %who = $gettok(%line, 2, 124)
var %komut_log = $gettok(%line, 3, 124)
var %arama = $gettok(%line, 4, 124)
%mesaj = %mesaj $+ %time $+ | $+ %who $+ | $+ %komut_log $+ %arama $+ $chr(10)
dec %i
inc %count
}
msg %nick %mesaj
}
else {
msg %nick 📋 Admin: limit, unblock, reset, cooldown, log
}
}
; ---- TEMİZLE KOMUTU ----
alias komut_temizle {
var %nick = $1
var %host = $2
var %level = $get_user_level(%nick, %host)
if (%level != ADMIN) {
msg %nick 🚫 Bu komut sadece adminler içindir!
return
}
hfree bot_cache
hmake bot_cache 1000
msg %nick 🧹 Cache temizlendi!
}
; ---- SAHIBINDEN ANA ARAMA (SOCKET) ----
alias sahibinden_ara {
var %kategori = $1
var %anahtar1 = $2
var %anahtar2 = $3
var %fiyat_alt = $4
var %fiyat_ust = $5
var %nick = $6
var %cache_key = $7
var %tip = $8
var %sockname = sah. $+ $ticks
; Arama sorgusu
var %arama = %anahtar1 $+ %anahtar2
var %encoded = $urlEncode(%arama)
var %query = %kategori $+ ?q= $+ %encoded
if (%fiyat_alt > 0 || %fiyat_ust < 10000000) {
if (%fiyat_alt > 0) %query = %query $+ &min_price= $+ %fiyat_alt
if (%fiyat_ust < 10000000) %query = %query $+ &max_price= $+ %fiyat_ust
}
; Socket aç
if (%proxy.host != $null && %proxy.host != 127.0.0.1) {
sockopen -e %sockname %proxy.host %proxy.port
hadd -m %sockname proxy 1
}
else {
sockopen %sockname www.sahibinden.com 443
hadd -m %sockname proxy 0
}
; Verileri sakla
hadd -m %sockname kategori %kategori
hadd -m %sockname anahtar1 %anahtar1
hadd -m %sockname anahtar2 %anahtar2
hadd -m %sockname nick %nick
hadd -m %sockname fiyat_alt %fiyat_alt
hadd -m %sockname fiyat_ust %fiyat_ust
hadd -m %sockname path %query
hadd -m %sockname cache_key %cache_key
hadd -m %sockname tip %tip
hadd -m %sockname isSSL 1
hadd -m %sockname page 1
hadd -m %sockname results $null
}
; ---- SOCKET AÇILINCA ----
on *:sockopen:sah.*:{
if ($sockerr) {
var %nick = $hget($sockname,nick)
msg %nick ❌ Bağlantı hatası! Proxy veya site ulaşılmaz.
msg # ⚠️ %nick $+ , bağlantı hatası oluştu.
sockclose $sockname
return
}
; SSL için
if ($hget($sockname,isSSL) == 1 && $hget($sockname,proxy) == 0) {
sockmark $sockname ssl
}
; HTTP isteği
var %path = $hget($sockname,path)
var %host = $iif($hget($sockname,proxy) == 1, www.sahibinden.com, %path)
var %ua = $gettok(%ua.list, $rand(1, $numtok(%ua.list, |)), |)
sockwrite -n $sockname GET %host HTTP/1.1
sockwrite -n $sockname Host: www.sahibinden.com
sockwrite -n $sockname User-Agent: %ua
sockwrite -n $sockname Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
sockwrite -n $sockname Accept-Language: tr-TR,tr;q=0.9,en;q=0.8
sockwrite -n $sockname Connection: close
sockwrite -n $sockname Upgrade-Insecure-Requests: 1
sockwrite -n $sockname $crlf
}
; ---- SOCKET VERİ OKU ----
on *:sockread:sah.*:{
if ($sockerr) {
sockclose $sockname
return
}
var %data
sockread %data
if ($hget($sockname,buffer) == $null) {
hadd -m $sockname buffer %data
}
else {
var %buffer = $hget($sockname,buffer) $+ %data
hadd -m $sockname buffer %buffer
}
}
; ---- SOCKET KAPANINCA ----
on *:sockclose:sah.*:{
var %buffer = $hget($sockname,buffer)
var %kategori = $hget($sockname,kategori)
var %anahtar1 = $hget($sockname,anahtar1)
var %anahtar2 = $hget($sockname,anahtar2)
var %nick = $hget($sockname,nick)
var %fiyat_alt = $hget($sockname,fiyat_alt)
var %fiyat_ust = $hget($sockname,fiyat_ust)
var %cache_key = $hget($sockname,cache_key)
var %tip = $hget($sockname,tip)
var %page = $hget($sockname,page)
if (%buffer == $null) {
msg %nick ❌ Veri alınamadı. Sayfa boş veya engellenmiş.
msg # ⚠️ %nick $+ , veri alınamadı.
sockclose $sockname
hfree $sockname
return
}
; Parse et
var %results = $parse_sahibinden(%buffer, %anahtar1, %anahtar2, %tip)
if (%results == $null && %page == 1) {
msg %nick ❌ * %anahtar1 %anahtar2 * için ilan bulunamadı.
msg # ⚠️ %nick $+ , arama sonucu boş.
log_search %nick "!arama" "%anahtar1 %anahtar2" "Boş"
sockclose $sockname
hfree $sockname
return
}
; Önceki sonuçları birleştir
var %onceki = $hget($sockname,results)
if (%onceki != $null) {
%results = %onceki $+ $chr(10) $+ %results
}
; Max sonuç kontrolü
var %result_count = $numtok(%results, 10)
if (%result_count >= %max.results) {
sonuc_gonder %results %anahtar1 %anahtar2 %nick %fiyat_alt %fiyat_ust %cache_key %tip
sockclose $sockname
hfree $sockname
return
}
; Sonraki sayfa kontrolü
if ($regex(%buffer, /<a[^>]*href="([^"]*page=(\d+))[^"]*"[^>]*>(\d+)<\/a>/)) {
var %next_page = $regml(2)
if (%next_page > %page) {
inc %page
hadd -m $sockname page %page
hadd -m $sockname results %results
var %path = $hget($sockname,path)
if (!$regex(%path, /page=/)) {
%path = %path $+ &page= $+ %next_page
}
else {
%path = $regsubex(%path, /page=\d+/, page= $+ %next_page)
}
hadd -m $sockname path %path
sockopen $sockname www.sahibinden.com 443
return
}
}
; Sonuçları gönder
if (%results == $null) {
msg %nick ❌ * %anahtar1 %anahtar2 * için ilan bulunamadı.
msg # ⚠️ %nick $+ , arama sonucu boş.
}
else {
sonuc_gonder %results %anahtar1 %anahtar2 %nick %fiyat_alt %fiyat_ust %cache_key %tip
}
sockclose $sockname
hfree $sockname
}
; ---- SONUÇ GÖNDER ----
alias sonuc_gonder {
var %results = $1
var %anahtar1 = $2
var %anahtar2 = $3
var %nick = $4
var %fiyat_alt = $5
var %fiyat_ust = $6
var %cache_key = $7
var %tip = $8
var %baslik = $iif(%tip == araba, 🚗 ARABA,
$iif(%tip == ev, 🏠 DAİRE,
$iif(%tip == satilik, 🏠 SATILIK DAİRE,
$iif(%tip == kiralik, 🏠 KİRALIK DAİRE,
$iif(%tip == arsa, 🏡 ARSA,
$iif(%tip == villa, 🏰 VİLLA,
$iif(%tip == isyeri, 🏢 İŞ YERİ, 🔍 SONUÇ)))))))
var %mesaj = ✅ SAHIBINDEN.COM %baslik $+ $chr(10)
%mesaj = %mesaj $+ ───────────────────────── $+ $chr(10)
%mesaj = %mesaj $+ 🔍 Arama: %anahtar1 %anahtar2 $+ $chr(10)
if (%fiyat_alt > 0 || %fiyat_ust < 10000000) {
%mesaj = %mesaj $+ 💰 Fiyat: %fiyat_alt - %fiyat_ust TL $+ $chr(10)
}
%mesaj = %mesaj $+ 📊 Toplam: $numtok(%results, 10) ilan bulundu. $+ $chr(10)
%mesaj = %mesaj $+ ───────────────────────── $+ $chr(10)
%mesaj = %mesaj $+ %results
; Cache'e kaydet
if (%cache_key != $null) {
hadd bot_cache %cache_key %mesaj
hadd bot_cache %cache_key $+ .time $ctime
}
; Log'a kaydet
log_search %nick "!arama" "%anahtar1 %anahtar2" "Başarılı"
msg %nick %mesaj
msg # ✅ %nick $+ , arama sonuçları özel mesaj olarak gönderildi!
}
; ---- PARSE FONKSİYONU ----
alias parse_sahibinden {
var %html = $1
var %anahtar1 = $2
var %anahtar2 = $3
var %tip = $4
var %results = $null
var %i = 1
while (%i <= 20) {
var %title_pattern = /<a[^>]*class="[^"]*classifiedTitle[^"]*"[^>]*>([^<]*)<\/a>/gi
var %price_pattern = /<span[^>]*class="[^"]*price[^"]*"[^>]*>([^<]*)<\/span>/gi
var %detail_pattern = /<span[^>]*class="[^"]*detailInfo[^"]*"[^>]*>([^<]*)<\/span>/gi
var %title = $regml($regex(%html, %title_pattern, 1))
var %price = $regml($regex(%html, %price_pattern, 1))
var %detail = $regml($regex(%html, %detail_pattern, 1))
if (%title != $null && %price != $null) {
if ($istok(%title, %anahtar1, 32) && $istok(%title, %anahtar2, 32)) {
var %year = $regex(%detail, /\b(\d{4})\b/)
var %km = $regex(%detail, /(\d+[\.,]\d+|\d+)\s*km/i)
var %m2 = $regex(%detail, /(\d+[\.,]\d+|\d+)\s*m2/i)
var %oda = $regex(%detail, /(\d+)\s*oda/i)
var %ozellikler = $null
if (%tip == araba) {
%ozellikler = 📅 Yıl: $iif(%year != $null, %year, -) $+ , KM: $iif(%km != $null, %km, -)
}
elseif (%tip == ev || %tip == satilik || %tip == kiralik) {
%ozellikler = 📐 m2: $iif(%m2 != $null, %m2, -) $+ , Oda: $iif(%oda != $null, %oda, -)
if (%year != $null) %ozellikler = %ozellikler $+ , Yıl: %year
}
elseif (%tip == arsa) {
%ozellikler = 📐 m2: $iif(%m2 != $null, %m2, -)
}
elseif (%tip == villa) {
%ozellikler = 📐 m2: $iif(%m2 != $null, %m2, -) $+ , Oda: $iif(%oda != $null, %oda, -)
if (%year != $null) %ozellikler = %ozellikler $+ , Yıl: %year
}
elseif (%tip == isyeri) {
%ozellikler = 📐 m2: $iif(%m2 != $null, %m2, -)
}
var %ilan = 🏷️ %title $+ $chr(10)
if (%ozellikler != $null) {
%ilan = %ilan $+ %ozellikler $+ $chr(10)
}
%ilan = %ilan $+ 💰 Fiyat: %price TL $+ $chr(10)
%ilan = %ilan $+ ─────────────────────────
if (%results == $null) {
%results = %ilan
}
else {
%results = %results $+ $chr(10) $+ %ilan
}
}
}
inc %i
}
return %results
}
; ---- URL ENCODE ----
alias urlEncode {
var %x = $1
var %y
while (%x != $null) {
var %c = $left(%x, 1)
if (%c isalnum || %c = - || %c = . || %c = _ || %c = ~) {
%y = %y $+ %c
}
else {
%y = %y $+ % $+ $base($asc(%c), 10, 16, 2)
}
%x = $mid(%x, 2)
}
return %y
}
; ---- IDENTIFY KONTROLÜ ----
alias is_identified {
var %nick = $1
var %host = $2
var %level = $get_user_level(%nick, %host)
if (%level == ADMIN) return 1
if ($nick($chan, %nick) != $null) {
var %mode = $nick($chan, %nick).mode
if (r isin %mode || d isin %mode) {
return 1
}
}
.whois %nick
return 0
}
; ---- TEMİZLİK ----
.timer 0 3600 bot_cleanup
alias bot_cleanup {
; Eski cache'leri temizle
var %i = 1
while ($hget(bot_cache, %i)) {
var %key = $hget(bot_cache, %i).item
var %time = $hget(bot_cache, %key $+ .time)
if ($calc($ctime - %time) > %cache.timeout * 2) {
hdel bot_cache %key
hdel bot_cache %key $+ .time
}
inc %i
}
; Eski cooldown'ları temizle
%i = 1
while ($hget(bot_cooldown, %i)) {
var %key = $hget(bot_cooldown, %i).item
if (%key != GLOBAL && $left(%key, 3) != cd. && $hget(bot_cooldown, %key) < $calc($ctime - 3600)) {
hdel bot_cooldown %key
hdel bot_cooldown %key $+ .attempts
hdel bot_cooldown %key $+ .block
}
inc %i
}
; Eski limitleri temizle
%i = 1
while ($hget(bot_limits, %i)) {
var %key = $hget(bot_limits, %i).item
if ($left(%key, 5) == limits) {
var %log = $hget(bot_limits, %key)
var %now = $ctime
var %clean_log = $null
var %j = 1
while ($gettok(%log, %j, $chr(1)) != $null) {
var %entry = $v1
var %time = $gettok(%entry, 1, 44)
if ($calc(%now - %time) < %limit.window) {
if (%clean_log == $null) {
%clean_log = %entry
}
else {
%clean_log = %clean_log $+ $chr(1) $+ %entry
}
}
inc %j
}
if (%clean_log == $null) {
hdel bot_limits %key
}
else {
hadd bot_limits %key %clean_log
}
}
inc %i
}
; Eski log'ları temizle (7 gün)
%i = 1
while ($hget(bot_log, %i)) {
var %key = $hget(bot_log, %i).item
if ($left(%key, 4) == log|) {
var %date = $right(%key, -4)
if ($calc($ctime - $ctime(%date)) > 604800) {
hdel bot_log %key
}
}
inc %i
}
echo -a 🧹 Bot temizlendi.
}
; ---- WHOIS YANITI ----
on *:WHOIS:{
if ($1 == $me) return
if ($hget(bot_identify, $1) != $null) {
if ($regex($6-, /identified/i)) {
hadd bot_identify $1 1
}
else {
hadd bot_identify $1 0
}
}
}
; ---- KULLANICI GİRİŞİ ----
on *:JOIN:#:{
if ($nick != $me) {
.whois $nick
}
}
________________ "Sevilmenin kıymeti bilinmiyorsa, Uzaklaşmak En güzeli ki üzülen sen olmayasın" | |
| |
| | #2 |
|
Bu ne abi ben bulurum onları daha kolay
________________ | |
| |
| | #3 |
| İstek üzerine yapıyorum sunucularda yaşayanlar icin (:
________________ "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) | |
| |