saywhat | 30 Temmuz 2014 15:03 | Cevap: Gitti Gidiyor Tcl yenilendi. (eskiside hala çalışıyordu gerçi ya , bu sürümde eskisinde olmayan birkaç yeni özellik eklendi. ister kanalda ister bot özelinde sorgu yapılabilmesi vs gibi ..) [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] Kod:
################################################################################################
################AYARLAR#########################################################################
################################################################################################
## tcllib http paketi gerektirir.
package require http
## kanalda aktif etmek için: .chanset #kanal +gitti
setudef flag gitti
## komutu kullanma erişimi:
set gitflag "-|-"
## komut başına gelecek sembol/işaret/trigger ne olacak:
set gitsemb "."
## gösterilecek arama sonuç sayısı ne olmalı :
set gitsay "4"
## komut ne olmalı
set gitkmt "gitti"
## bot özelinde de çalışması isteniyor mu ? : 1 = evet , 0 = hayır
set gitmsg 1
## aynı kişinin sorgular arası en az beklemesi gereken süre (saniye)
set gitkontr "10"
#################################################################################################
######################AYARLARIN SONU#############################################################
#################################################################################################
foreach bind [split $gitkmt " "] {
bind pub $gitflag $gitsemb$bind gettiii:gidiyo_pub
if {$gitmsg >= 1} {
bind msg $gitflag $gitsemb$bind gettiii:gidiyo_msg
}
}
proc gettiii:gidiyo_pub {nick uhost hand chan text} {
if {![channel get $chan gitti]} { return 0 }
gettiii:gidiyo_main $nick $uhost $hand $chan $text
}
proc gettiii:gidiyo_msg {nick uhost hand text} {
gettiii:gidiyo_main $nick $uhost $hand $nick $text
}
proc gettiii:gidiyo_main {nick uhost hand chan text} {
set q [join [lrange [split [string tolower $text]] 0 end]]
set q [string map -nocase {
\u0131 i \u00fc u \u011f g \u015f s \u00e7 c \u00f6 o
\u015e S \u00c7 C \u011e G \u00d6 O \u00dc U \u0130 I} $q]
set host [lindex [split $uhost @] 1]
if {[throttled $host,$chan $::gitkontr]} {
puthelp "notice $nick :\002Flood yapmayın !!!\002 - \
\00314[expr {[clock seconds] - $::throttled($host,$chan)}] saniye sonra yeniden deneyebilirsiniz...\003"
return 0
}
if {[llength $q] eq "0"} {
puthelp "notice $nick :\00304Kullanım şekli:\003 \002$::lastbind <aradığınız ürün>\002"
return 0
}
::http::config -useragent "Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320)"
set url [::http::geturl " Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. 12000]
set data [split [::http::data $url] "\n"]
::http::cleanup $url
putserv "privmsg $chan :\026[filter $q] aranıyor.Lütfen bekleyin...\026"
# if {[encoding system] ne "utf-8"} {
# set data [encoding convertto utf-8 $data]
# } else {
# set data [encoding convertfrom utf-8 $data]
# }
set arat ""; set sonuc ""
regexp {<h1>(.*?)<.+<span>(.*?)<} $data "" arat sonuc
if {![info exists arat] || [llength $arat] eq 0} {
puthelp "privmsg $chan :\026[filter $q] aramanizla eşleşen sonuç bulunamadı...\026"
return
}
putserv "privmsg $chan :\00304,1$arat\003 \026aramanızla eşleşen \002$sonuc\002 adet ürün bulundu...\026"
#regsub -all -- {\n|\t} $data "" data
regsub -all -- {price-text">(.*?)</span>} $data "|" data
set i 0
foreach gitti [split $data "|"] {
regexp {itemprop="name" title=".*?">(.*?)</a>} $data "" urun
regexp {itemprop="price">(.*?)</span>} $data a bedel
regexp {product-title"><a href="(.*?)"} $data s gurl
regexp {product-subtitle">(.*?)</p>} $data d subt
regsub {itemprop="name" title=".*?">(.*?)</a>} $data "" data
regsub {itemprop="price">(.*?)</span>} $data "" data
regsub {product-title"><a href="(.*?)"} $data "" data
regsub {product-subtitle">(.*?)</p>} $data "" data
if {$i == $::gitsay} break
set cikti "\00306$urun\003 \00312$subt\003 \00304\002$bedel\002\003 \00302\037$gurl\037\003\n\r"
set cikti [string map -nocase {\" "" \& "" \ ""} $cikti]
regsub -all -- {<.*?>} $cikti "" cikti
putserv "privmsg $chan :$cikti"
incr i
}
}
proc filter {text} {
set text [string map {
"Ğ" "\u011e" "Ş" "\u015e" "İ" "\u0130" "o" "\u00d6" "c" "\u00c7" "u" "\u00dc" "ş" "\u015f"
"ğ" "\u011f" "ı" "\u0131" "o" "\u00f6" "c" "\u00e7" "u" "\u00fc"} $text]
return [subst $text]
}
## http://is.gd/SVU9r1
proc throttled {id time} {
global throttled
if {[info exists throttled($id)]} {
return 1
} {
set throttled($id) [clock seconds]
utimer $time [list unset throttled($id)]
return 0
}
}
putlog "\00304Tcl Surumu\003 :\00311 $tcl_patchLevel \003- \00304Tcl Dizin\003 :\00311 $tcl_library \003- \00304Eggdrop Surumu\003 :\00311 [lindex $version 0] \003"
putlog "\00304Http Paket Surumu\003 :\00311 [package present http] \003- \00304Sistem Encoding\003 :\00311 [encoding system] \003"
putlog "\00304Host\003 :\00311 [info hostname] \003- \00304OS\003 :\00311 $::tcl_platform(os) $::tcl_platform(osVersion)/$::tcl_platform(machine) \003"
putlog "\00304Sunucuya Bagli Oldugu Sure\003 :\00311 [duration [expr {[clock seconds] - ${server-online}}]] \003"
putlog "\00304Bot Uptime\003 :\00311 [duration [expr {[clock seconds] - $::uptime}]] \003- \00304Tarih\003 :\00311 [ctime [unixtime]] $::timezone \003"
putlog "\00304Irc Gorunumu\003 :\00311 $::botname $::realname \003- \00304Bagli Oldugu Sunucu\003 :\00311 $::serveraddress \003- \00304.Conf Dosyasi\003 :\00311 $::config \003" |