yukardaki Heartbroken'ın verdiği kod artık çalışmıyor.
güncellenmiş - çalışan versionu aşağıdan alabilirsiniz.
eskisiyle yer değiştirin.rehash/restart yapın.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
###
#
# livescore.tcl livescore.com sitesinden canlı maç akışı sağlar.
#
###
#
# kurulum:
# 1. ls.tcl dosyasını botunuzun /scripts klasörüne kopyalayın
# 2. eggdrop.conf dosyasını açıp source scripts/ls.tcl şeklinde script listesine ekleyin
# 3. botunuzu .rehash komutuyla yeniden yükleyin.
# "bu script'in çalışabilmesi için http 2.7 ve üstü gereklidir ."
# " tcl8.5 ve üstü version makinanizda varsa çalisacaktir "
# "yoksa http.tcl ayri olarak bot/scripts icine atip .conf uzerinde gosterin "
###
namespace eval ls {
foreach p [array names ls *] { catch {unset ls($p)} }
# kodu kanalınıza partyline'dan (.chanset #kanaliniz +ls )komutuyla ayarlayın.
setudef flag ls
##################################
# buradan değişmek istediğiniz #
# ayarları yapabilirsiniz. #
##########################################################
# ONEMLI: -live canli gormek istediginiz ulke adlarini ##
# ingilizce karsiliginda bosluk birakarak ekleyin ##
# yada silin ##
##########################################################
variable ls
array set ls {
pref {!}
binds {ls}
msg 1
delay 10
live "Turkey England Italy Spain Germany France Russia Japan Brazil Argentina Portugal Belgium Holland Scotland Bolivia Chile Colombia Ecuador Paraguay Uruguay Venezuela Mexico USA Greece Denmark Sweden Switzerland Norway Bulgaria Serbia Ukraine"
color1 \00314
color2 \00303
color3 \00305
color4 \00308
color5 \00304
}
### ###
# Burdan itibaren kodlamalar başlıyor.tcl kodlaması bilmiyorsanız oynamamalısınız #
# bu tcl script çalışabilmesi için http 2.7 ve üstü gereklidir . . #
### ###
package require http 2.7
# bu kisimda ls icin kullanilacak komut ve mesajlari iletim sekli belirleniyor..
foreach bind [split $ls(binds) " "] {
bind pub -|- "$ls(pref)$bind" ::ls::ls_pub
if {$ls(msg) >= 1} {
bind msg -|- "$ls(pref)$bind" ::ls::ls_msg
}
}
# alinan komutu isleme proseduru.
proc ::ls::ls_msg {nick uhost hand text} {
variable ls
::ls::ls_proc $nick $uhost $hand $nick [lindex [split $text] 0]
}
# Prosedürü işleme aliniyor.
proc ::ls::ls_pub {nick uhost hand chan text} {
variable ls
# durumdaki değişikliklere bakılıyor.
if {![channel get $chan ls]} {
return 0
}
::ls::ls_proc $nick $uhost $hand $chan [lindex [split $text] 0]
}
# istek izleme prosedürü.
proc ::ls::ls_proc {nick uhost hand chan text} {
global lastbind
variable ls
if {[info exists ls(lasttime,$chan)] && [expr $ls(lasttime,$chan) + $ls(delay)] > [clock seconds]} {
putserv "NOTICE $nick :$ls(color1)Komutlari ayni anda bir kez kullanin $ls(color2)$ls(delay) $ls(color1)[lindex {. Saniye Saniye Saniye} [::ls::numgrp $ls(delay)]]. komutlar arasi bekleme suresi vardir."
putserv "NOTICE $nick :$ls(color1)Sabredin $ls(color3)[expr $ls(delay) - [expr [clock seconds] - $ls(lasttime,$chan)]] $ls(color1)[lindex {. tane tane tane } [::ls::numgrp [expr $ls(delay) - [expr [clock seconds] - $ls(lasttime,$chan)]]]] daha istek siraya alindi.Iletim tamamlandiktan sonra baska bir istek daha yapabilirsiniz."
return 0
}
if {$text == ""} {
putserv "PRIVMSG $chan :$ls(color1)Kullanim $ls(color3)!ls $ls(color2)\[-all\] $ls(color1) Tum oynanmis maclarin gosterimi icin kullanin, \003"
putserv "PRIVMSG $chan :$ls(color3)!ls $ls(color2)\[Ulke Adi÷\] $ls(color1) Bu ülkede oynanan maçlarin (Tum Alt Ligleriyle Birlikte) sonuclarini gosterir.\003"
putserv "PRIVMSG $chan :$ls(color1)Kullanim $ls(color3)!ls $ls(color2)\[-live\] $ls(color1) Su anda oynanan maclardaki durumu $ls(color3)canli $ls(color1)olarak gosterir.\003"
return 0
}
if {[string match "
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]*" $text]} {
::ls::ls_proc_2 $nick $uhost $hand $chan $text
return 0
}
if {[string range [lindex [split $text] 0] 0 0] == "-"} {
set country [string range [lindex [split $text] 0] 1 end]
set lsurl
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
} elseif {[string range [lindex [split $text] 0] 1 end] == "-live"} {
set lsurl
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
} else {
set country "Turkey"
set lsurl
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
}
# sitedeki kaynak kodlarindan veri cekilmesi icin gerekli kisim
::http::config -useragent "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 1.0.3705)"
set ls_tok [::http::geturl "$lsurl" -timeout 15000]
set data [::http::data $ls_tok]
::http::cleanup $ls_tok
putlog "\[ls\] $nick/$chan"
regsub -all {^.*?> } $data "" data
regsub -all {Home</a>.*?$} $data "" data
regsub -all {<td class="title".*?>} $data "|" data
foreach country_ [split $ls(live)] {
foreach line [split $data "|"] {
if {[regexp -nocase -- {<b>(.*?)</b> - (.*?)</td>} $line -> country liga]} {
if {$country == $country_} {
set line [string map {"&" "&" "<b>" "\002" "</b>" "\002" "<td>" "" "</td>" "" "<tr>" "" "</tr>" "" "</table>" "" "</a>" "" "</iframe>" ""} $line]
regsub -all {<td .*?>} $line "$ls(color1) " line
regsub -all {<tr .*?>} $line "" line
regsub -all {<table .*?>} $line "" line
regsub -all {<iframe .*?>} $line "" line
regsub -all {<img src="
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]".*?>} $line "\002$ls(color5)LIVE!\002" line
regsub -all {<img .*?>} $line "" line
putserv "PRIVMSG $chan :$ls(color3)$country $ls(color1)- $ls(color2)$liga"
regsub -all { } $line "|" line
foreach subline [split $line "|"] {
if {[string match "*href=\"\/default.dll\/game\?comp*" $subline]} {
set game ""
regexp {href="\/default.dll\/game\?(.*?)">} $subline "" game
regsub -all {<a .*?>} $subline "$ls(color2)" subline
if {$game != ""} {
append subline "$ls(color3)$lastbind \037\00312http://livescore.com/default.dll/game\?$game\037"
}
regsub -all { } $subline "" subline
putserv "PRIVMSG $chan :$ls(color4)$subline\003"
}
}
}
}
}
}
set ls(lasttime,$chan) [clock seconds]
return 0
}
# sitenin kaynak kodlari isleniyor elenip alinan veri komutla kanala veriliyor.
proc ::ls::ls_proc_2 {nick uhost hand chan text} {
variable ls
::http::config -useragent "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 1.0.3705)"
set ls_tok [::http::geturl "$text" -timeout 15000]
set data [::http::data $ls_tok]
::http::cleanup $ls_tok
regsub -all {^.*?<tr class=\"title\">} $data "" data
regsub -all {<table .*?$} $data "" data
foreach line [split $data "\n"] {
set line [string map {"<b>" "\002" </b> "\002" "<td>" "" "</td>" "" "<tr>" "" "</tr>" "" "</font>" "" "</a>" "\002"} $line]
regsub -all {<td .*?>} $line " " line
regsub -all {<tr .*?>} $line "" line
regsub -all {<font .*?>} $line "" line
regsub -all {<img .*?goal.gif.*?>} $line "\002$ls(color3)Goal!\003\002" line
regsub -all {<img .*?yellow.gif.*?>} $line "\002$ls(color4)Yellow Card!\003\002" line
regsub -all {<img .*?red.gif.*?>} $line "\002$ls(color5)Red Card!\003\002" line
regsub -all {<img .*?flash.gif.*?>} $line "" line
if {$line != " "} {
putserv "PRIVMSG $chan :$line"
}
}
set ls(lasttime,$chan) [clock seconds]
return 0
}
proc ::ls::numgrp {number} {
switch -glob -- "$number" {
*11 {return 3}
*12 {return 3}
*13 {return 3}
*14 {return 3}
*1 {return 1}
*2 {return 2}
*3 {return 2}
*4 {return 2}
default {return 3}
}
}
# kod başarıyla yüklenince alınacak mesaj..
putlog "\[ls\] yuklendi."
}