• 20-04-2014, 21:29:20
    #1
    clear
    echo "------- radyo botu olusturma scripti: ------------"
    echo ""
    
    echo ""
    echo "Eggdrop oper sifresi"
    echo $n "[$DOMAIN] -> $c"
    read cc
    if [ ! -z $cc ]; then
            DOMAIN="$cc"
    fi
    
    echo ""
    echo "Ip Adresiniz?"
    echo $n "[$IP] -> $c"
    read cc
    if [ ! -z $cc ]; then
            IP="$cc"
    fi
    
    echo ""
    echo "Kucuk Harflerle Domain Adi?"
    echo $n "[$DKUCUK] -> $c"
    read cc
    if [ ! -z $cc ]; then
            DKUCUK="$cc"
    fi
    
    echo ""
    echo "Sunucu İsmi?"
    echo $n "[$SUNUCU] -> $c"
    read cc
    if [ ! -z $cc ]; then
            SUNUCU="$cc"
    fi
    
    echo ""
    echo "Eggdrop Bot Nicki?"
    echo $n "[$EGGDROP] -> $c"
    read cc
    if [ ! -z $cc ]; then
            EGGDROP="$cc"
    fi
    
    echo ""
    echo "Yayın Şifresi?"
    echo $n "[$EGGDROPS] -> $c"
    read cc
    if [ ! -z $cc ]; then
            EGGDROPS="$cc"
    fi
    
    echo ""
    echo "Eggdrop Bot Realname?"
    echo $n "[$EGGDOMAIN] -> $c"
    read cc
    if [ ! -z $cc ]; then
            EGGDOMAIN="$cc"
    fi
    
    echo ""
    echo "Radyo Ip?"
    echo $n "[$RADYOIP] -> $c"
    read cc
    if [ ! -z $cc ]; then
            RADYOIP="$cc"
    fi
    
    echo ""
    echo "Botun Yayın Portu?"
    echo $n "[$PORT] -> $c"
    read cc
    if [ ! -z $cc ]; then
            PORT="$cc"
    fi
    
    cd
    cd eggdrop
    echo "Radyo Botu kuruluyor"
    #Basla-radyo.Conf
    cat > radyo.conf << __EOF__
    #
    #            Eggdrop Bot                  
    #                                         
    #       International Service      
    #
    ###########################################
    loadmodule channels
    loadmodule server
    loadmodule ctcp
    loadmodule irc
    loadmodule notes
    loadmodule console
    loadmodule blowfish
    set username "Radyocuk"
    set nick "Radyo"
    set altnick "bott"
    set my-ip "$IP"
    set my-hostname "Radyo Botu"
    set realname "$EGGDOMAIN"
    set init-server { 
    putserv "identify $EGGDROPS" 
    putserv "oper Eggdrop $DOMAIN"
    putserv "MODE Radyo +D"
    }
    set servers {
       $IP:6667
    }
    channel add #Radyo {
      need-op { putserv "MODE #Radyo +v Radyo " }
      } 
    channel add #DJ {
      need-op { putserv "MODE #DJ +v Radyo " }
      }
    set net-type 5
    set owner "Olcay"
    set userfile "Komik.user"
    set chanfile "Komik.chan"
    logfile jpk #opers "logs/Selvi.log"
    set shortnick "Korkuu"
    set home "#radyo"
    set mod-path "modules/"
    set help-path "help/"
    set text-path "text/"
    listen 3334 all
    logfile msbxco * "logs/selvi.log"
    set console "mkcobxs"
    loadmodule uptime
    source scripts/alltools.tcl
    source scripts/action.fix.tcl
    source scripts/userinfo.tcl
    source scripts/radyo.tcl
    __EOF__
    tgtimeanswer=tgtimeanswer
    allt_version=allt_version
    tghtmlrefreshtimer=tghtmlrefreshtimer
    tghtmlrefresh=tghtmlrefresh
    tgqdb=tgqdb
    tgchan=tgchan
    tgflagsstart=tgflagsstart
    tgcmdstart=tgcmdstart
    tgflagsstop=tgflagsstop
    tgcmdstop=tgcmdstop
    tgflagshint=tgflagshint
    tgcmdhint=tgcmdhint
    tgflagsskip=tgflagsskip
    tgcmdskip=tgcmdskip
    tgflagstop10=tgflagstop10
    tgcmdtop10=tgcmdtop10
    tgcmdhelp=tgcmdhelp
    tgcmdlookup=tgcmdlookup
    tgcmdtarget=tgcmdtarget
    tgcmderror=tgcmderror
    tgcmdrules=tgcmdrules
    tgflagsreset=tgflagsreset
    tgcmdreset=tgcmdreset
    botnick=botnick
    chan=chan
    tgplaying=tgplaying
    nick=nick
    tgerrremindtime=tgerrremindtime
    tgstreakmin=tgstreakmin
    tgstreak=tgstreak
    tghinttimer=tghinttimer
    tgnextqtimer=tgnextqtimer
    tgerrremindtimer=tgerrremindtimer
    tgrebindhinttimer=tgrebindhinttimer
    tghintnum=tghintnum
    tgmaxhintcurrent=tgmaxhintcurrent
    tgtempnohint=tgtempnohint
    tgstreak=tgstreak
    tgstreakmin=tgstreakmin
    tgstreak=tgstreak
    tghinttimer=tghinttimer
    tgrebindhinttimer=tgrebindhinttimer
    tgtimenext=tgtimenext
    botnick=botnick
    tgcmderror=tgcmderror
    tgerrremindtime=tgerrremindtime
    tgplaying=tgplaying
    tghinttimer=tghinttimer
    tgnextqtimer=tgnextqtimer
    tgerrremindtimer=tgerrremindtimer
    tgrebindhinttimer=tgrebindhinttimer
    tgqdb=tgqdb
    qfile=qfile
    tgquestionslist=tgquestionslist
    tgcurrentquestion=tgcurrentquestion
    tgquestionslist=tgquestionslist
    tgquestionnumber=tgquestionnumber
    tgquestionselected=tgquestionselected
    tgqdbsep=tgqdbsep
    tgqdbquestionfirst=tgqdbquestionfirst
    tgcapsquestio=tgcapsquestio
    tgcurrentquestion=tgcurrentquestion
    tgquestionselected=tgquestionselected
    tgqdbsep=tgqdbsep
    tgqdbquestionfirst=tgqdbquestionfirst
    tgcapsanswer=tgcapsanswer
    tgcurrentanswer=tgcurrentanswer
    _hintchars=_hintchars
    tgmaxhint=tgmaxhint
    tgmaxhint=tgmaxhint
    tgtempnohint=tgtempnohint
    tghintnum=tghintnum
    tgmaxhintcurrent=tgmaxhintcurrent
    tgnobodygotit=tgnobodygotit
    tgshowanswer=tgshowanswer
    tgcurrentanswer=tgcurrentanswer
    tgmaxmissed=tgmaxmissed
    tgmissed=tgmissed
    tgcmdstart=tgcmdstart
    tgtrythenextone=tgtrythenextone
    _msg=_msg
    tgstreakmin=tgstreakmin
    tgstreak=tgstreak
    tgtimenext=tgtimenext
    tghintnum=tghintnum
    tgcurrentanswer=tgcurrentanswer
    word=word
    tghintchar=tghintchar
    _current=_current
    i=i
    _word=_word
    _newword=_newword
    _wordalnum=_wordalnum
    tghintcharsused=tghintcharsused
    _selected=_selected
    tghintcharsused=tghintcharsused
    tgcapshint=tgcapshint
    _hint=_hint
    tgquestionstotal=tgquestionstotal
    tgalwaysshowq=tgalwaysshowq
    tgtimehint=tgtimehint
    tgscorestotal=tgscorestotal
    _max=_max
    tgscores=tgscores
    _item=_item
    _nick=_nick
    _score=_score
    _scores=_scores
    text=text
    tgranksbyname=tgranksbyname
    tgtimestart=tgtimestart
    tgcongrats=tgcongrats
    _timetoanswer=_timetoanswer
    _newrank=_newrank
    _oldrank=_oldrank
    tgshowallscores=tgshowallscores
    tgranksbyname=tgranksbyname
    tgscorestotal=tgscorestotal
    tgrealnames=tgrealnames
    tgranksbynum=tgranksbynum
    tgscoresbyrank=tgscoresbyrank
    tgscf=tgscf
    _sfile=_sfile
    tgscores=tgscores
    _lwrnick=_lwrnick
    tgscorestotal=tgscorestotal
    tgcapsquestion=tgcapsquestion
    j=j
    who=who
    tgpointsperanswer=tgpointsperanswer
    _time=_time
    _newscores=_newscores
    tgscoresbyname=tgscoresbyname
    _tgt=_tgt
    tgresetreqpw=tgresetreqpw
    hand=hand
    _who=_who
    _qnum=_qnum
    _desc=_desc
    tgerrmethod=tgerrmethod
    tgerrmailtmp=tgerrmailtmp
    _fname=_fname
    tgerrfil=tgerrfil
    host=host
    _qques=_qques
    _qans=_qans
    _file=_file
    _fname=_fname
    tgerremail=tgerremail
    tgrules=tgrules
    what=what
    tgusebold=tgusebold
    tgcolourstart=tgcolourstart
    tgcolourstop=tgcolourstop
    tgcolourskip=tgcolourskip
    tgcolourerr=tgcolourerr
    tgcolourmiss=tgcolourmiss
    tgcolourqhead=tgcolourqhead
    tgcolourqbody=tgcolourqbody
    tgcolourhint=tgcolourhint
    tgcolourstrk=tgcolourstrk
    tgcolourscr1=tgcolourscr1
    tgcolourscr2=tgcolourscr2
    tgcolourscr3=tgcolourscr3
    tgcolourrset=tgcolourrset
    tgcolourstend=tgcolourstend
    tgcolourmisc1=tgcolourmisc1
    tgcolourmisc2=tgcolourmisc2
    tgpriv2msg=tgpriv2msg
    tghtmlfile=tghtmlfile
    tghtmlfont=tghtmlfont
    server=server
    _rank=_rank
    tgver=tgver
    tgrel=tgrel
    scstatstrigger=scstatstrigger
    scplayingtrigger=scplayingtrigger
    scdjtrigger=scdjtrigger
    scsetdjtrigger=scsetdjtrigger
    scwishtrigger=scwishtrigger
    scgreettrigger=scgreettrigger
    scstreamtrigger=scstreamtrigger
    sclastsongstrigger=sclastsongstrigger
    sclistenertrigger=sclistenertrigger
    schelptrigger=schelptrigger
    radiochans=radiochans
    mode=mode
    advertise=advertise
    djnickname=djnickname
    nickname=nickname
    advertisetext=advertisetext
    temp=temp
    streamip=streamip
    streamport=streamport
    streampass=streampass
    sockerror=sockerror
    sock=sock
    bl=bl
    streamstatus=streamstatus
    target=target
    repl=repl
    arg=arg
    songs=songs
    streamtext=streamtext
    oldnick=oldnick
    newnick=newnick
    dj=dj
    sgenre=sgenre
    icq=icq
    stitle=stitle
    songurl=songurl
    songtitle=songtitle
    announce=announce
    tellsongs=tellsongs
    tellusers=tellusers
    tellbitrate=tellbitrate
    isonlinefile=isonlinefile
    zeile=zeile
    curhigh=curhigh
    cursong=cursong
    bitrate=bitrate
    offlinetext=offlinetext
    oldisonline=oldisonline
    offlinetopic=offlinetopic
    urltopic=urltopic
    oldcurhigh=oldcurhigh
    curhigh=curhigh
    n=n
    a=a
    gnick=gnick
    kanal=kanal
    string=string
    start=start
    calc=calc
    number=number
    djnick=djnick
    oldcurlist=oldcurlist
    oldsong=oldsong
    oldbitrate=oldbitrate
    output=output
    puan=puan
    _msg2=_msg2
    bonuspuan=bonuspuan
    _durumu=_durumu
    _siralama=_siralama
    tgcolantihack=tgcolantihack
    tgver=tgver
    tgrel=tgrel
    tgquestionstotal=tgquestionstotal
    tgreadqdb=tgreadqdb
    dolar=$
    __EOF__
    cd
    cd eggdrop/scripts
    #Basla-radyo.tcl
    cat > radyo.tcl << __EOF__
    set radiochans "#Radyo"
    set streamip "$IP"
    set streamport "$PORT"
    set streampass "$EGGDROPS"
    set scstatstrigger "!durum"
    set scstreamtrigger "!link"
    set scplayingtrigger "!calan"
    set sclistenertrigger "!dinleyen"
    set scdjtrigger "!dj"
    set scsetdjtrigger ".setdj"
    set scwishtrigger "!istek"
    set scgreettrigger ".greet"
    set sclastsongstrigger "!Liste"
    set schelptrigger "!yardim"
    
    set announce "1"
    
    set urltopic "1"
    set tellsongs "1"
    set tellusers "1"
    set tellbitrate "1"
    
    set advertise "1"
    
    set offlinetext "15,1Radyo yayinimiza DJ degisikligi sebebi ile ara verdik lutfen bir sure bekleyiniz.. "
    set offlinetopic "15,1Radyo yayinimiza DJ degisikligi sebebi ile ara verdik lutfen bir sure bekleyiniz.. "
    
    set onlinetext "0,4 ** 9,1 Radyomuzu Winamp'ten dinlemek icin tiklayin 0,4 >>> 12http://$RADYOIP:$PORT/listen.pls"
    set onlinetopic "0,4 ** 9,1 Radyomuzu Winamp'ten dinlemek icin tiklayin 0,4 >>> 12http://$RADYOIP:$PORT/listen.pls"
    
    set streamtext "0,4 ** 9,1 Radyomuzu Winamp'ten dinlemek icin tiklayin 0,4 >>> 12http://$RADYOIP:$PORT/listen.pls"
    
    set advertisetext "2 Radyo için Gerekli biLgiLer 7 !durum - !istek -!link - !calan - !dinleyen"
    
    # end of config #####################
    
    bind pub - $dolar$scstatstrigger pub_scstat
    bind msg - $dolar$scstatstrigger msg_scstat
    
    bind pub - $dolar$scplayingtrigger pub_playing
    bind msg - $dolar$scplayingtrigger msg_playing
    
    bind pub - $dolar$scdjtrigger pub_dj
    bind msg - $dolar$scdjtrigger msg_dj
    
    bind pub D $dolar$scsetdjtrigger pub_setdj
    bind msg D $dolar$scsetdjtrigger msg_setdj
    
    bind pub - $dolar$scwishtrigger pub_wish
    bind msg - $dolar$scwishtrigger msg_wish
    
    bind pub - $dolar$scgreettrigger pub_greet
    bind msg - $dolar$scgreettrigger msg_greet
    
    bind pub - $dolar$scstreamtrigger pub_stream
    bind msg - $dolar$scstreamtrigger msg_stream
    
    bind pub - $dolar$sclastsongstrigger pub_lastsongs
    bind msg - $dolar$sclastsongstrigger msg_lastsongs
    
    bind pub - $dolar$sclistenertrigger pub_listener
    bind msg - $dolar$sclistenertrigger msg_listener
    
    bind pub - $dolar$schelptrigger pub_help
    bind msg - $dolar$schelptrigger msg_help
    
    bind time - "* * * * *" isonline
    bind time - "?0 * * * *" advertise
    bind nick D * djnickchange
    
    proc shrink { calc number string start bl} { return [expr [string first "$dolar$string" $dolar$bl $dolar$start] $dolar$calc $dolar$number] }
    
    proc poststuff { mode text } {
    global radiochans
    foreach chan [channels] {
    if {$dolar$radiochans == "" } { putserv "$dolar$mode $dolar$chan :$dolar$text" }
    if {$dolar$radiochans != "" } {
    if {([lsearch -exact [string tolower $dolar$radiochans] [string tolower $dolar$chan]] != -1) || ($dolar$radiochans == "")} {putserv "$dolar$mode $dolar$chan :$dolar$text"}
    }}}
    
    
    proc schelp { target } {
    global scstatstrigger scstreamtrigger scplayingtrigger scdjtrigger sclastsongstrigger scwishtrigger scgreettrigger sclistenertrigger
    putserv "privmsg #radyo Radyo botu icin gerekli komutlar:"
    putserv "privmsg #radyo $dolar$scstatstrigger - $dolar$scstreamtrigger - $dolar$scplayingtrigger - $dolar$scdjtrigger - $dolar$sclastsongstrigger - $dolar$scwishtrigger - $dolar$scgreettrigger - $dolar$sclistenertrigger"
    }
    
    proc pub_help {nick uhost hand chan arg} {
    global radiochans
    if {$dolar$radiochans == "" } { schelp $dolar$nick }
    if {$dolar$radiochans != "" } {
    if {([lsearch -exact [string tolower $dolar$radiochans] [string tolower $dolar$chan]] != -1) || ($dolar$radiochans == "")} { schelp $dolar$nick}
    }}
    
    proc advertise { nick uhost hand chan arg } {
    global advertisetext advertise
    if {$dolar$advertise == "1" } { poststuff privmsg $dolar$advertisetext }
    }
    
    
    proc setdj {nickname djnickname } {
    if {$dolar$djnickname == "" } { set djnickname $dolar$nickname }
    global streamip streamport streampass
    putlog "shoutcast: new dj: $dolar$djnickname ($dolar$nickname)"
    set temp [open "dj" w+]
    puts $dolar$temp $dolar$djnickname
    close $dolar$temp
    set temp [open "djnick" w+]
    puts $dolar$temp $dolar$nickname
    close $dolar$temp
    putserv "privmsg your are now dj of this radio"
    if {[catch {set sock [socket $dolar$streamip $dolar$streamport] } sockerror]} {
    putlog "error: $dolar$sockerror"
    return 0 } else {
    puts $dolar$sock "GET /admin.cgi?pass=$dolar$streampass&mode=viewxml&page=0 HTTP/1.0"
    puts $dolar$sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
    puts $dolar$sock "Host: $dolar$streamip"
    puts $dolar$sock "Connection: close"
    puts $dolar$sock ""
    flush $dolar$sock
    while {[eof $dolar$sock] != 1} {
    set bl [gets $dolar$sock]
    if { [string first "standalone" $dolar$bl] != -1 } {
    set streamstatus [string range $dolar$bl [shrink + 14 "<STREAMSTATUS>" 0 $dolar$bl] [shrink - 1 "</STREAMSTATUS>" 0 $dolar$bl]]
    }}
    if { $dolar$streamstatus == "1" } { poststuff privmsg "$dolar$djnickname is now rocking the turntables, enjoy." } else {
    putserv "privmsg this has not been announced because the radio is currentlfy offline." }
    }}
    
    
    proc listener { target } {
    global streamip streamport streampass
    putlog "shoutcast: $dolar$target requested listener count"
    if {[catch {set sock [socket $dolar$streamip $dolar$streamport] } sockerror]} {
    putlog "error: $dolar$sockerror"
    return 0 } else {
    puts $dolar$sock "GET /admin.cgi?pass=$dolar$streampass&mode=viewxml&page=0 HTTP/1.0"
    puts $dolar$sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
    puts $dolar$sock "Host: $dolar$streamip"
    puts $dolar$sock "Connection: close"
    puts $dolar$sock ""
    flush $dolar$sock
    while {[eof $dolar$sock] != 1} {
    set bl [gets $dolar$sock]
    if { [string first "standalone" $dolar$bl] != -1 } {
    set repl [string range $dolar$bl [shrink + 19 "<REPORTEDLISTENERS>" 0 $dolar$bl] [shrink - 1 "</REPORTEDLISTENERS>" 0 $dolar$bl]]
    set curhigh [string range $dolar$bl [shrink + 15 "<PEAKLISTENERS>" 0 $dolar$bl] [shrink - 1 "</PEAKLISTENERS>" 0 $dolar$bl]]
    set maxl [string range $dolar$bl [shrink + 14 "<MAXLISTENERS>" 0 $dolar$bl] [shrink - 1 "</MAXLISTENERS>" 0 $dolar$bl]]
    set avgtime [string range $dolar$bl [shrink + 13 "<AVERAGETIME>" 0 $dolar$bl] [shrink - 1 "</AVERAGETIME>" 0 $dolar$bl]]
    }}
    close $dolar$sock
    putserv "privmsg #radyo 15,1Suan yayinimizi dinleyen kisi sayisi 1,15 $dolar$repl "
    }}
    
    proc msg_listener { nick uhost hand arg } { global radiochans; listener $dolar$nick }
    proc pub_listener { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $dolar$radiochans] [string tolower $dolar$chan]] != -1) || ($dolar$radiochans == "")} { listener $dolar$nick }}
    
    proc wish { nick arg } {
    if {$dolar$arg == ""} { putserv "privmsg #radyo you forgot to add your wish"; return 0}
    global streamip streamport streampass
    putlog "shoutcast: $dolar$nick wants to hear: $dolar$arg"
    if {[catch {set sock [socket $dolar$streamip $dolar$streamport] } sockerror]} {
    putlog "error: $dolar$sockerror"
    return 0 } else {
    puts $dolar$sock "GET /admin.cgi?pass=$dolar$streampass&mode=viewxml&page=0 HTTP/1.0"
    puts $dolar$sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
    puts $dolar$sock "Host: $dolar$streamip"
    puts $dolar$sock "Connection: close"
    puts $dolar$sock ""
    flush $dolar$sock
    while {[eof $dolar$sock] != 1} {
    set bl [gets $dolar$sock]
    if { [string first "standalone" $dolar$bl] != -1 } {
    set streamstatus [string range $dolar$bl [shrink + 14 "<STREAMSTATUS>" 0 $dolar$bl] [shrink - 1 "</STREAMSTATUS>" 0 $dolar$bl]]
    }}
    if { $dolar$streamstatus == "1" } {
    set temp [open "djnick" r]
    set djnick [gets $dolar$temp]
    close $dolar$temp
    putserv "privmsg $dolar$djnick :(WISH) - $dolar$nick - $dolar$arg"
    } else {
    putserv "privmsg #radyo Suan Radyo Yayini Yapilmamaktadir" }
    }}
    
    
    proc msg_wish { nick uhost hand arg } { global radiochans; wish $dolar$nick $dolar$arg }
    proc pub_wish { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $dolar$radiochans] [string tolower $dolar$chan]] != -1) || ($dolar$radiochans == "")} { wish $dolar$nick $dolar$arg }}
    
    
    
    
    proc sclastsongs { target } {
    global streamip streamport streampass
    putlog "shoutcast: $dolar$target requested songhistory"
    if {[catch {set sock [socket $dolar$streamip $dolar$streamport] } sockerror]} {
    putlog "error: $dolar$sockerror"
    return 0 } else {
    puts $dolar$sock "GET /admin.cgi?pass=$dolar$streampass&mode=viewxml&page=0 HTTP/1.0"
    puts $dolar$sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
    puts $dolar$sock "Host: $dolar$streamip"
    puts $dolar$sock "Connection: close"
    puts $dolar$sock ""
    flush $dolar$sock
    while {[eof $dolar$sock] != 1} {
    set bl [gets $dolar$sock]
    if { [string first "standalone" $dolar$bl] != -1 } {
    set songs [string range $dolar$bl [string first "<TITLE>" $dolar$bl] [expr [string last "</TITLE>" $dolar$bl] + 7]]
    regsub -all "&#x3C;" $dolar$songs "<" songs
    regsub -all "&#x3E;" $dolar$songs ">" songs
    regsub -all "&#x26;" $dolar$songs "+" songs
    regsub -all "&#x22;" $dolar$songs "\"" songs
    regsub -all "&#x27;" $dolar$songs "'" songs
    regsub -all "&#xFF;" $dolar$songs "" songs
    regsub -all "<TITLE>" $dolar$songs "(" songs
    regsub -all "</TITLE>" $dolar$songs ")" songs
    regsub -all "<SONG>" $dolar$songs "" songs
    regsub -all "</SONG>" $dolar$songs " - " songs
    regsub -all "<PLAYEDAT>" $dolar$songs "" songs
    regsub -all "</PLAYEDAT>" $dolar$songs "" songs
    regsub -all {\d} $dolar$songs "" songs
    }}
    putserv "privmsg #radyo $dolar$songs"
    }}
    
    
    proc msg_lastsongs { nick uhost hand arg } { global radiochans; sclastsongs $dolar$nick }
    proc pub_lastsongs { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $dolar$radiochans] [string tolower $dolar$chan]] != -1) || ($dolar$radiochans == "")} { sclastsongs $dolar$nick }}
    
    
    
    proc scstream { target } {
    global streamip streamport streamtext
    putlog "shoutcast: streaminfo requested by $dolar$target"
    putserv "privmsg #radyo $dolar$streamtext"
    }
    
    proc msg_stream { nick uhost hand arg } { global radiochans; scstream $dolar$nick }
    proc pub_stream { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $dolar$radiochans] [string tolower $dolar$chan]] != -1) || ($dolar$radiochans == "")} { scstream $dolar$nick }}
    
    proc scgreet { nick arg } {
    if {$dolar$arg == ""} { putserv "privmsg #radyo 4#Radyo Kanalina Hosgeldiniz"; return 0}
    global dj streamip streamport streampass
    putlog "shoutcast: $dolar$nick greets fly out to: $dolar$arg"
    if {[catch {set sock [socket $dolar$streamip $dolar$streamport] } sockerror]} {
    putlog "error: $dolar$sockerror"
    return 0 } else {
    puts $dolar$sock "GET /admin.cgi?pass=$dolar$streampass&mode=viewxml&page=0 HTTP/1.0"
    puts $dolar$sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
    puts $dolar$sock "Host: $dolar$streamip"
    puts $dolar$sock "Connection: close"
    puts $dolar$sock ""
    flush $dolar$sock
    while {[eof $dolar$sock] != 1} {
    set bl [gets $dolar$sock]
    if { [string first "standalone" $dolar$bl] != -1 } {
    set streamstatus [string range $dolar$bl [shrink + 14 "<STREAMSTATUS>" 0 $dolar$bl] [shrink - 1 "</STREAMSTATUS>" 0 $dolar$bl]]
    }}
    if { $dolar$streamstatus == "1" } {
    set temp [open "djnick" r]
    set djnick [gets $dolar$temp]
    close $dolar$temp
    putserv "privmsg $dolar$djnick :(GREET) - $dolar$nick - $dolar$arg"
    } else {
    putserv "privmsg #radyo Uzgunuz Suan Yayın Yapılmıyor" }
    }}
    
    
    proc msg_greet { nick uhost hand arg } { global radiochans; scgreet $dolar$nick $dolar$arg }
    proc pub_greet { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $dolar$radiochans] [string tolower $dolar$chan]] != -1) || ($dolar$radiochans == "")} { scgreet $dolar$nick $dolar$arg }}
    
    proc msg_setdj { nick uhost hand arg } { global radiochans; setdj $dolar$nick $dolar$arg }
    proc pub_setdj { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $dolar$radiochans] [string tolower $dolar$chan]] != -1) || ($dolar$radiochans == "")} { setdj $dolar$nick $dolar$arg }}
    
    
    
    proc djnickchange { oldnick uhost hand chan newnick } {
    set temp [open "djnick" r]
    set djnick [gets $dolar$temp]
    close $dolar$temp
    if {$dolar$oldnick == $dolar$djnick} {
    putlog "shoutcast: dj nickchange $dolar$oldnick -> $dolar$newnick"
    set temp [open "djnick" w+]
    puts $dolar$temp $dolar$newnick
    close $dolar$temp
    }}
    
    proc dj { target } {
    global streamip streamport streampass
    putlog "shoutcast: $dolar$target asked for dj info"
    if {[catch {set sock [socket $dolar$streamip $dolar$streamport] } sockerror]} {
    putlog "error: $dolar$sockerror"
    return 0 } else {
    puts $dolar$sock "GET /admin.cgi?pass=$dolar$streampass&mode=viewxml&page=0 HTTP/1.0"
    puts $dolar$sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
    puts $dolar$sock "Host: $dolar$streamip"
    puts $dolar$sock "Connection: close"
    puts $dolar$sock ""
    flush $dolar$sock
    while {[eof $dolar$sock] != 1} {
    set bl [gets $dolar$sock]
    if { [string first "standalone" $dolar$bl] != -1 } {
    set streamstatus [string range $dolar$bl [shrink + 14 "<STREAMSTATUS>" 0 $dolar$bl] [shrink - 1 "</STREAMSTATUS>" 0 $dolar$bl]]
    }}
    if {$dolar$streamstatus == 1} {
    if {[file exists dj]} {
    set temp [open "dj" r]
    set dj [gets $dolar$temp]
    close $dolar$temp
    putserv "privmsg #radyo $dolar$dj is at the turntables!"
    } else { putserv "privmsg #radyo Uzgunuz Suan Dj Bulunmamaktadır" }
    } else {
    putserv "privmsg #radyo Radyo Yayini Suan Yapilmamaktadir"
    }
    close $dolar$sock
    }}
    
    
    
    proc msg_dj { nick uhost hand arg } { global radiochans; dj $dolar$nick"}
    proc pub_dj { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $dolar$radiochans] [string tolower $dolar$chan]] != -1) || ($dolar$radiochans == "")} { dj $dolar$nick }}
    
    
    
    proc scstat {target} {
    global streamip streamport streampass
    putlog "shoutcast: $dolar$target asked for serverstats"
    if {[catch {set sock [socket $dolar$streamip $dolar$streamport] } sockerror]} {
    putlog "error: $dolar$sockerror"
    return 0 } else {
    puts $dolar$sock "GET /admin.cgi?pass=$dolar$streampass&mode=viewxml&page=0 HTTP/1.0"
    puts $dolar$sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
    puts $dolar$sock "Host: $dolar$streamip"
    puts $dolar$sock "Connection: close"
    puts $dolar$sock ""
    flush $dolar$sock
    while {[eof $dolar$sock] != 1} {
    set bl [gets $dolar$sock]
    if { [string first "standalone" $dolar$bl] != -1 } {
    set streamstatus [string range $dolar$bl [shrink + 14 "<STREAMSTATUS>" 0 $dolar$bl] [shrink - 1 "</STREAMSTATUS>" 0 $dolar$bl]]
    set repl [string range $dolar$bl [shrink + 19 "<REPORTEDLISTENERS>" 0 $dolar$bl] [shrink - 1 "</REPORTEDLISTENERS>" 0 $dolar$bl]]
    set curhigh [string range $dolar$bl [shrink + 15 "<PEAKLISTENERS>" 0 $dolar$bl] [shrink - 1 "</PEAKLISTENERS>" 0 $dolar$bl]]
    set currentl [string range $dolar$bl [shrink + 18 "<CURRENTLISTENERS>" 0 $dolar$bl] [shrink - 1 "</CURRENTLISTENERS>" 0 $dolar$bl]]
    set surl [string range $dolar$bl [shrink + 11 "<SERVERURL>" 0 $dolar$bl] [shrink - 1 "</SERVERURL>" 0 $dolar$bl]]
    set maxl [string range $dolar$bl [shrink + 14 "<MAXLISTENERS>" 0 $dolar$bl] [shrink - 1 "</MAXLISTENERS>" 0 $dolar$bl]]
    set bitrate [string range $dolar$bl [shrink + 9 "<BITRATE>" 0 $dolar$bl] [shrink - 1 "</BITRATE>" 0 $dolar$bl]]
    set stitle [string range $dolar$bl [shrink + 13 "<SERVERTITLE>" 0 $dolar$bl] [shrink - 1 "</SERVERTITLE>" 0 $dolar$bl]]
    set sgenre [string range $dolar$bl [shrink + 13 "<SERVERGENRE>" 0 $dolar$bl] [shrink - 1 "</SERVERGENRE>" 0 $dolar$bl]]
    if {$dolar$sgenre != ""} {set sgenre " ($dolar$sgenre)"}
    set avgtime [string range $dolar$bl [shrink + 13 "<AVERAGETIME>" 0 $dolar$bl] [shrink - 1 "</AVERAGETIME>" 0 $dolar$bl]]
    set irc [string range $dolar$bl [shrink + 5 "<IRC>" 0 $dolar$bl] [shrink - 1 "</IRC>" 0 $dolar$bl]]
    set icq [string range $dolar$bl [shrink + 5 "<ICQ>" 0 $dolar$bl] [shrink - 1 "</ICQ>" 0 $dolar$bl]]
    if {$dolar$icq == 0} { set icq "N/A" }
    set aim [string range $dolar$bl [shrink + 5 "<AIM>" 0 $dolar$bl] [shrink - 1 "</AIM>" 0 $dolar$bl]]
    set webhits [string range $dolar$bl [shrink + 9 "<WEBHITS>" 0 $dolar$bl] [shrink - 1 "</WEBHITS>" 0 $dolar$bl]]
    set streamhits [string range $dolar$bl [shrink + 12 "<STREAMHITS>" 0 $dolar$bl] [shrink - 1 "</STREAMHITS>" 0 $dolar$bl]]
    set version [string range $dolar$bl [shrink + 9 "<VERSION>" 0 $dolar$bl] [shrink - 1 "</VERSION>" 0 $dolar$bl]]
    if {$dolar$streamstatus == 1} {
    if {[file exists dj]} {
    set temp [open "dj" r]
    set dj [gets $dolar$temp]
    close $dolar$temp
    } else { set dj "none" }
    putserv "privmsg #radyo 0,1 $dolar$stitle 0,5 Turkiye'nin en kaliteli online radyosu ve DJ'leri 0,7 Radyo $SUNUCU-Fm Resmi Sitesi: www.$DKUCUK "
    putserv "privmsg #radyo 0,4 $dolar$stitle Suanda OnLine 0,6Suanda 1 $dolar$repl 0,6 Kisi Dinliyor."
    putserv "privmsg #radyo 0,4 ** 9,1 Radyomuzu Winamp'ten dinlemek icin tiklayin 0,4 >>> 12http://$RADYOIP:$PORT/listen.pls"
    putserv "privmsg #radyo  0,4Radyo ile ilgili sorulariniz, sorunlariniz icin 1#Help 0,4kanalini kullanabilir, DJ'lerimizden yardim alabilirsiniz."
    } else {
    putserv "privmsg #radyo 0,1 Suan Yayında Dj buLunmamaktardır." }
    }}
    close $dolar$sock
    }}
    
    
    proc msg_scstat { nick uhost hand arg } { global radiochans; scstat $dolar$nick}
    proc pub_scstat { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $dolar$radiochans] [string tolower $dolar$chan]] != -1) || ($dolar$radiochans == "")} { scstat $dolar$nick }}
    
    
    proc playing {target} {
    global streamip streamport streampass
    putlog "shoutcast: $dolar$target asked for current song"
    if {[catch {set sock [socket $dolar$streamip $dolar$streamport] } sockerror]} {
    putlog "error: $dolar$sockerror"
    return 0 } else {
    puts $dolar$sock "GET /admin.cgi?pass=$dolar$streampass&mode=viewxml&page=0 HTTP/1.0"
    puts $dolar$sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
    puts $dolar$sock "Host: $dolar$streamip"
    puts $dolar$sock "Connection: close"
    puts $dolar$sock ""
    flush $dolar$sock
    while {[eof $dolar$sock] != 1} {
    set bl [gets $dolar$sock]
    if { [string first "standalone" $dolar$bl] != -1 } {
    set streamstatus [string range $dolar$bl [shrink + 14 "<STREAMSTATUS>" 0 $dolar$bl] [shrink - 1 "</STREAMSTATUS>" 0 $dolar$bl]]
    set songtitle [string range $dolar$bl [shrink + 11 "<SONGTITLE" 0 $dolar$bl] [shrink - 1 "</SONGTITLE>" 0 $dolar$bl]]
    set songurl [string range $dolar$bl [shrink + 9 "<SONGURL>" 0 $dolar$bl] [shrink - 1 "</SONGURL>" 0 $dolar$bl]]
    if {$dolar$songurl != ""} { set songurl " ($dolar$songurl)"}
    regsub -all "&#x3C;" $dolar$songtitle "<" songtitle
    regsub -all "&#x3E;" $dolar$songtitle ">" songtitle
    regsub -all "&#x26;" $dolar$songtitle "+" songtitle
    regsub -all "&#x22;" $dolar$songtitle "\"" songtitle
    regsub -all "&#x27;" $dolar$songtitle "'" songtitle
    regsub -all "&#xFF;" $dolar$songtitle "" songtitle
    if {$dolar$streamstatus == 1} {
    putserv "privmsg #radyo 0,4 Calan parca 0,7 $dolar$songtitle$dolar$songurl "
    } else {
    putserv "privmsg #radyo Yayın Şuan Yoktur"
    }}}
    close $dolar$sock
    }}
    
    proc msg_playing { nick uhost hand arg } { global radiochans; playing $dolar$nick}
    proc pub_playing { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $dolar$radiochans] [string tolower $dolar$chan]] != -1) || ($dolar$radiochans == "")} { playing $dolar$nick }}
    
    proc isonline { nick uhost hand chan arg } {
    global radiochans announce tellusers tellsongs tellbitrate urltopic
    global offlinetext offlinetopic onlinetext onlinetopic
    global streamip streampass streamport
    
    if {$dolar$announce == 1 || $dolar$tellsongs == 1 || $dolar$tellusers == 1 || $dolar$tellbitrate == 1} {
    set isonlinefile "isonline"
    set oldisonline "isonline: 0"
    set oldcurlist "4,1 : 15,1 0"
    set oldcurhigh "curhigh: 0"
    set oldsong "cursong: 0"
    set oldbitrate "bitrate: 0"
    if {[file exists $dolar$isonlinefile]} {
    putlog "shoutcast: checking if stream is online"
    set temp [open "isonline" r]
    while {[eof $dolar$temp] != 1} {
    set zeile [gets $dolar$temp]
    if {[string first "isonline:" $dolar$zeile] != -1 } { set oldisonline $dolar$zeile }
    if {[string first "curlist:" $dolar$zeile] != -1 } { set oldcurlist $dolar$zeile }
    if {[string first "curhigh:" $dolar$zeile] != -1 } { set oldcurhigh $dolar$zeile }
    if {[string first "cursong:" $dolar$zeile] != -1 } { set oldsong $dolar$zeile }
    if {[string first "bitrate:" $dolar$zeile] != -1 } { set oldbitrate $dolar$zeile }
    }
    close $dolar$temp
    }
  • 20-04-2014, 21:30:37
    #2
    İçerik fazla büyük olduğu için sığmadı devamını buraya ekliyorum altına eklersiniz

    if {[catch {set sock [socket $dolar$streamip $dolar$streamport] } sockerror]} {
    putlog "error: $dolar$sockerror"
    return 0} else {
    puts $dolar$sock "GET /admin.cgi?pass=$dolar$streampass&mode=viewxml&page=0 HTTP/1.0"
    puts $dolar$sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
    puts $dolar$sock "Host: $dolar$streamip"
    puts $dolar$sock "Connection: close"
    puts $dolar$sock ""
    flush $dolar$sock
    while {[eof $dolar$sock] != 1} {
    set bl [gets $dolar$sock]
    if { [string first "standalone" $dolar$bl] != -1 } {
    set streamstatus "isonline: [string range $dolar$bl [shrink + 14 "<STREAMSTATUS>" 0 $dolar$bl] [shrink - 1 "</STREAMSTATUS>" 0 $dolar$bl]]"
    set repl "curlist: [string range $dolar$bl [shrink + 19 "<REPORTEDLISTENERS>" 0 $dolar$bl] [shrink - 1 "</REPORTEDLISTENERS>" 0 $dolar$bl]]"
    set curhigh "curhigh: [string range $dolar$bl [shrink + 15 "<PEAKLISTENERS>" 0 $dolar$bl] [shrink - 1 "</PEAKLISTENERS>" 0 $dolar$bl]]"
    set currentl [string range $dolar$bl [shrink + 18 "<CURRENTLISTENERS>" 0 $dolar$bl] [shrink - 1 "</CURRENTLISTENERS>" 0 $dolar$bl]]
    set surl "serverurl: [string range $dolar$bl [shrink + 11 "<SERVERURL>" 0 $dolar$bl] [shrink - 1 "</SERVERURL>" 0 $dolar$bl]]"
    set cursong "cursong: [string range $dolar$bl [shrink + 11 "<SONGTITLE" 0 $dolar$bl] [shrink - 1 "</SONGTITLE>" 0 $dolar$bl]]"
    set songurl [string range $dolar$bl [shrink + 9 "<SONGURL>" 0 $dolar$bl] [shrink - 1 "</SONGURL>" 0 $dolar$bl]]
    set bitrate "bitrate: [string range $dolar$bl [shrink + 9 "<BITRATE>" 0 $dolar$bl] [shrink - 1 "</BITRATE>" 0 $dolar$bl]]"
    set stitle [string range $dolar$bl [shrink + 13 "<SERVERTITLE>" 0 $dolar$bl] [shrink - 1 "</SERVERTITLE>" 0 $dolar$bl]]
    set sgenre [string range $dolar$bl [shrink + 13 "<SERVERGENRE>" 0 $dolar$bl] [shrink - 1 "</SERVERGENRE>" 0 $dolar$bl]]
    }}
    close $dolar$sock
    }
    
    set temp [open "isonline" w+]
    puts $dolar$temp "$dolar$streamstatus\n$dolar$repl\n$dolar$curhigh\n$dolar$cursong\n$dolar$bitrate"
    close $dolar$temp
    if {$dolar$announce == 1 } {
    if {$dolar$streamstatus == "isonline: 0" && $dolar$oldisonline == "isonline: 1"} {
    poststuff privmsg $dolar$offlinetext
    if {$dolar$urltopic == 1} { poststuff topic $dolar$offlinetopic }
    }
    if {$dolar$streamstatus == "isonline: 1" && $dolar$oldisonline == "isonline: 0" } {
    if {$dolar$sgenre != ""} {
    set sgenre " ($dolar$sgenre)"
    }
    poststuff privmsg "15,1 Radyomuz suanda 4,1ACIK.. 0,4 ** 9,1 Radyomuzu Winamp'ten dinlemek icin tiklayin 0,4 >>> 12http://$RADYOIP:$PORT/listen.pls"
    if {$dolar$urltopic == 100} { poststuff topic "Yayında Suan <<<$dolar$stitle>>> bulunmakta.Yayin turu: $dolar$sgenre Calan parca: >>>>> [lrange $dolar$cursong 1 [llength $dolar$cursong]]$dolar$songurl <<<< " }
    }}
    if {($dolar$tellusers == 1) && ($dolar$streamstatus == "isonline: 1") && ($dolar$oldcurhigh != "curhigh: 0") } {
    if {$dolar$oldcurhigh != $dolar$curhigh} {
    poststuff privmsg "15,1 Yayinimizi dinleyen kisi sayisi : [lindex $dolar$curhigh 1]"
    }
    if {$dolar$oldcurlist != $dolar$repl} {
    poststuff privmsg "7,1Suan yayinimizi dinleyen kisi sayisi 15,1 $dolar$repl "
    }}
    if {($dolar$tellsongs == 1) && ($dolar$oldsong != $dolar$cursong) && ($dolar$streamstatus == "isonline: 1") } {
    if {$dolar$songurl != ""} { set songurl " ($dolar$songurl)"}
    regsub -all "&#x3C;" $dolar$cursong "<" cursong
    regsub -all "&#x3E;" $dolar$cursong ">" cursong
    regsub -all "&#x26;" $dolar$cursong "+" cursong
    regsub -all "&#x22;" $dolar$cursong "\"" cursong
    regsub -all "&#x27;" $dolar$cursong "'" cursong
    regsub -all "&#xFF;" $dolar$cursong "" cursong
    poststuff privmsg "0,7Dj $dolar$stitle 0,4 Calan parca : 9,1 [lrange $dolar$cursong 1 [llength $dolar$cursong]]$dolar$songurl 0,4 Yayın türü <<<< 0,1 $dolar$sgenre 0,7 >>>> "
    }
    
    if {($dolar$tellbitrate == 1) && ($dolar$oldbitrate != $dolar$bitrate) && ($dolar$streamstatus == "isonline: 1") && ($dolar$oldbitrate != "bitrate: 0")} {
    poststuff privmsg "bitrate switched to [lindex $dolar$bitrate 1]kbps"
    }}}
    
    
    
    bind pub - !istek istek
    
    proc istek {n u h c a} {
      global gnick
       set gnick $dolar$n
            set kanal [lindex $dolar$a ]
       putserv "PRIVMSG #DJ 4İstek İsteyen 2$dolar$gnick4 İsteği:2 $dolar$kanal"
            putserv "PRIVMSG #Radyo : 4Isteginiz DJ'lerimize iletilmistir 2$dolar$gnick 5( $dolar$kanal ) "
    }
    
    proc join_greet {nick uhost handle channel} {
         putserv "NOTICE $dolar$nick : 0,12 Radyo  $SUNUCU-Fm'e hos geldiniz $dolar$nick! 9,1 Isteklerinizi Radyo kanalina 1,8 !istek <istediginiz sarki ve mesajiniz> 0,3 seklinde yazabilirsiniz. 0,5 Ornek: !istek Rafet El Roman - Seni Seviyorum - Tum Sevenlere gelsin.. "
         putserv "NOTICE $dolar$nick : 10Radyomuzu dinlemek icin tiklayin: 12http://$RADYOIP:$PORT/listen.pls"
       }
    
    bind join - * join_greet
    __EOF__
    
    cd
    cd eggdrop
    ./eggdrop -m radyo.conf
    cd