This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

someone correct my mistake

Support & discussion of released scripts, and announcements of new releases.
User avatar
flink
Halfop
Posts: 83
Joined: Sun Feb 21, 2021 9:27 am
Location: Canarias

someone correct my mistake

Post by flink »

flink wrote:hello i got this tcl icecast and i converted it to my room and radio but it doesn't write the songs in the room when the broadcast is live.
it only sends:
bot ¦ is currently broadcasting live @ https://unawebcualquiera.com
bot¦ Current Song: 1 | Listeners: 1
bot ¦ The DJ is RadioAuto
and in the bot's party line I get this error:
party-line:Tcl error [status]: can't read "contenttype": no such variable
if someone could help me I would be immensely grateful.
I'm sorry for my English but I'm Spanish and the translator may not express itself in the same way.
by the way my radio server is zeno.fm

Code: Select all

#-- Nombre de la emisora ??de radio - - nombre de la radio
set streamname "nombre de la radio" 
set streamip "un.servidor.fm" 
set streamport "13710" 
set streamadmin "source"
set streampass "emitir"
set radiochan "#sala" 
set djchan "#sala"
set otherchan "#sala" 
set admin "administrador"
set streamurl "https://unawebcualquiera.com"
#How often the bot checks the stream when it knows it is down in minutes. Recommend 1 minute. 
set offlinetimer "70" 
#How often the bot checks the stream when it knows it is online in seconds. Recommend 15 seconds. 
set onlinetimer "15" 
#Default interval for how often the bot advertises (in minutes). You want to set it to something that isn't 
# pure spammage. 
set adtimer "55" 
#Enables advertising set to the above frequency. 1 for ON and 0 for OFF. This reminds people that the stream 
# is online. 
set enableadvertise "1" 
#Enables Special Announcement, 1 for ON and 0 for OFF. Special announcements are displayed every 720 minutes. 
# This feature of the script is very undeveloped and I don't recommend using it. 
set specialannounce "1" 
#Special Announcement Message 
set announcemsg "¡Anuncio especial! Gracias por visitarnos a nuestra humilde salita de radio de Chatzona, les presento nuestra radio $streamurl."
################################################################ 
#  Don't edit past this stuff unless you're Tido or Henkes :P  # 
################################################################ 
# Binds 
bind pub - "!ichoon" choon 
bind pub - "!icheese" cheese 
bind pub - "!comandos" showcommands 
bind pub - "!ihelp" showcommands 
bind pub - "!radio" status 
bind pub - "!ilisteners" listenercheck 
bind pub - "!emito" dj_on 
bind pub - "!auto" dj_off 
bind pub - "!advertise" toggle_advertise 
bind pub D "!publicidad" forceadvertise 
#Forces an advertising message to be sent 
bind msg D "djforceoff" dj_force_off 
#Force-remove a DJ with !djforceoff <nick>, must have D flag 
bind pub - "!dj" dj 
bind pub - "!stream" stream
bind pub - "!peticion" request 
bind msg - "!dedicatoria" msg_request 
bind pub - "!iversion" iceversion 
bind pub - "!inewdj" newdj 
# Varible Resets 
set ice2version "1.0 29.02.2021" 
set streamstatus "1" 
set djnickname "RadioAuto" 
set dj "RadioAuto" 
set oldsong "1" 
set newsong "1" 
set newlistener "1" 
set oldlistener "1" 
set forceadsent "1" 
set sessionpeak "1" 
# Check to make sure StatusCheck timer isn't running when bot rehashes. 
if {![info exists statuscheck_running]} { 
  timer $offlinetimer [list statuscheck] 
  set statuscheck_running 1 
} 
# Check to make sure Special Announce timer isn't running when bot rehashes. 
if {![info exists specialannounce_running]} { 
  if {$specialannounce == "1"} { 
    timer 720 [list specialmessage] 
    set specialannounce_running 1 
  } 
} 
# Check to make sure Advertise timer isn't running when bot rehashes. 
if {![info exists adtimer_running]} { 
  if {$enableadvertise == "1"} { 
    timer $adtimer [list advertise] 
    set adtimer_running 1 
  } 
} 
proc stream {nick uhost hand chan arg} {
  global radiochan djchan
  putserv "privmsg $chan : IceCast Stream: https://unawebcualquiera.com"
}
# Output for !help or !showcommands
proc showcommands {nick uhost hand chan arg} {
  global ice2version streamname botnick
  global radiochan djchan
  if { $chan == $radiochan } {
    putserv "notice $nick :>>> $botnick Commands - Script: $ice2version<<<"
#    putserv "notice $nick :!istatus >>> Displays the stream's extended stats."
    putserv "notice $nick :!idj >>> Shows current DJ."
    putserv "notice $nick :!ilisteners >>> Shows the current number of listeners tuned into $streamname."
    putserv "notice $nick :!irequest (artist+track) >>> Sends a request to the DJ's queue. Example: !request Oasis - Wonderwall"
    putserv "notice $nick :!ichoon >>> Message to the $radiochan channel if you like the current tune played"
    putserv "notice $nick :!icheese >>> Message to the $radiochan channel if you dislike the current tune played"
    putserv "notice $nick :!iversion >>> Diplays the version of the tcl script loaded."
    putserv "notice $nick :/msg $botnick request (artist+track) >>> Another way to send a request that isn't visable to everyone in the channel."
  } elseif { $chan == $djchan } {
    putserv "notice $nick :>>> $botnick Commands - Script: $ice2version <<<"
    putserv "notice $nick :----------------------------------------------------------------------------"
    putserv "notice $nick :>>> Some commands will only work in $djchan and some are only for admins <<<"
    putserv "notice $nick :----------------------------------------------------------------------------"
    putserv "notice $nick :!istatus >>> Displays the stream's extended stats."
    putserv "notice $nick :!idj >>> Shows current DJ."
    putserv "notice $nick :!ilisteners >>> Shows the current number of listeners tuned into $streamname."
    putserv "notice $nick :!irequest (artist+track) >>> Sends a request to the DJ's queue. Example: !request Oasis - Wonderwall"
    putserv "notice $nick :!ichoon >>> Message to the $radiochan channel if you like the current tune played"
    putserv "notice $nick :!icheese >>> Message to the $radiochan channel if you dislike the current tune played"
    putserv "notice $nick :!iversion >>> Diplays the version of the tcl script loaded."
    putserv "notice $nick :/msg $botnick request (artist+track) >>> Another way to send a request that isn't visable to everyone in the channel."
    putserv "notice $nick :!idjon >>> !djon (nick) - enables DJ status for someone with bot D tag"
    putserv "notice $nick :!idjoff >>> Disables DJ status"
    putserv "notice $nick :!iadvertise mins >>> Turns on and off Advertising. Also lets you set the interval: !advertise X"
    putserv "notice $nick :!iforceadvertise >>> Forces the advertising messages to appear"
    putserv "notice $nick :!idjforceoff >>> \/msg $botnick djforceoff \[nick\] - Forces off a DJ from having DJ status"
    putserv "notice $nick :!inewdj >>> !inewdj \[nick\] \[handle\] \[host\] - Adds a new user to the bot and gives them the DJ flag (D)"
  }
}
# Activa y desactiva la publicidad. También le permite establecer el intervalo:!Publicidad X 
proc toggle_advertise {nick uhost hand chan arg} { 
  global radiochan enableadvertise adtimer djchan admin
  putlog "toggle_advertise proc triggered"
  if { $nick != $admin && $chan == $djchan } {
    putserv "privmsg $chan : No, no eres un administrador"
    return 0
  } else {
    if {$enableadvertise == "1"} { 
      set enableadvertise "0" 
      set timerinfo [gettimerid] 
      killtimer $timerinfo 
      putserv "PRIVMSG $chan :Advertising OFF" 
    } else { 
      set enableadvertise "1" 
      if {$arg == ""} { 
        putserv "PRIVMSG $chan :Advertising ON. Frequency set to $adtimer minutes." 
      } else { 
        set adtimer $arg 
        putserv "privmsg $chan :Advertising ON. Frequency changed to $adtimer minutes." 
        timer $adtimer [list advertise] 
      }
    } 
  } 
} 
# Función que averigua el ID del temporizador publicitario. 
proc gettimerid {} { 
    set adtimerinfo [timers] 
    set loc1 [string first "advertise" $adtimerinfo] 
    set loc1 [expr $loc1 + 10] 
    set str1 [string range $adtimerinfo $loc1 999] 
    set endloc [string first "\}" $str1] 
    set endloc [expr $endloc -1] 
    set timerinfo [string range $str1 0 $endloc] 
    return $timerinfo 
} 
# Mensajes que se muestran cuando la publicidad está habilitada.
proc advertise {} { 
  global radiochan streamstatus otherchan enableadvertise adtimer forceadsent streamurl streamname 
  if {$streamstatus != "0" && $enableadvertise == "1"} { 
    putserv "PRIVMSG $radiochan :$streamname is currently broadcasting live! Listen in @ $streamurl" 
    putserv "PRIVMSG $otherchan :$streamname is currently broadcasting live! Listen in @ $streamurl" 
    if {$forceadsent == "0"} {timer $adtimer [list advertise]} else {set forceadsent "0"} 
    return 1 
  } 
  return 0 
} 
# Obliga a que aparezcan los mensajes publicitarios 
proc forceadvertise {nick uhost hand chan arg} { 
  global streamstatus enableadvertise forceadsent 
  if {$streamstatus == "0"} { 
    putserv "notice $nick :The stream isn't on-air. Unable to advertise." 
    return 0 
  } else { 
    if {$enableadvertise == "0"} { 
      putserv "notice $nick :Advertising isn't enabled." 
      return 0 
    } else { 
      set forceadsent "1" 
      set forceadvertised [advertise] 
      if {$forceadvertised == "1"} { 
        putserv "notice $nick :Done!" 
      } else { 
        putserv "notice $nick :Advertising message was not sent!" 
      } 
    } 
  } 
} 
# Mensaje de anuncio especial.  
proc specialmessage {} { 
  global radiochan specialannounce announcemsg 
  putserv "PRIVMSG $radiochan : $announcemsg" 
  timer 720 [list specialmessage] 
  return 0 
} 
# Comprobación del estado 
# Función que toma la información de Icecast_Online y crea las respuestas adecuadas. 
proc statuscheck {} { 
  global radiochan streamstatus newsong oldsong newlistener oldlistener sessionpeak dj enableadvertise otherchan onlinetimer offlinetimer streamurl streamname 
  global contenttype streamtitle streamdescription mountstarted peaklisteners
  global streamgenre streamurl mountpoint bitrate
  putlog "statuscheck proc triggered"
  if {$streamstatus == "0"} { 
    set oldstatus "0" 
  } else { 
    set oldstatus "1" 
  } 
  set newstatus "[icecast_online]" 
  if {$newstatus =="0" && $oldstatus == "0"} { 
    timer $offlinetimer [list statuscheck] 
  } 
  if {$newstatus == "1" && $oldstatus == "0"} { 
    putserv "PRIVMSG $radiochan :$streamname is now ON-AIR!! Click to listen: $streamurl" 
    putlog "(RADIO) On-Air detected." 
    utimer $onlinetimer [list statuscheck] 
    if {$enableadvertise == "1"} { 
      putserv "PRIVMSG $otherchan :$streamname is now ON-AIR!! Click to listen: $streamurl" 
    } 
  } 
  if {$newstatus == "0" && $oldstatus == "1"} { 
    putserv "PRIVMSG $radiochan :$streamname is now off-air." 
    set oldlistener "0" 
    set sessionpeak "0" 
    if {$enableadvertise == "1"} { 
      putserv "PRIVMSG $otherchan :$streamname is now off-air." 
    } 
    putlog "(RADIO) Off-Air detected." 
    timer $offlinetimer [list statuscheck] 
  } 
  if {$newstatus == "1" && $oldstatus == "1"} { 
    utimer $onlinetimer [list statuscheck] 
    if {$newlistener != $oldlistener} { 
      putserv "notice $dj :$newlistener listeners." 
#      if {$newlistener > $sessionpeak} { 
         if { $newlistener == 0 } {
           putserv "PRIVMSG $radiochan :$streamname currently has no listeners"
         } elseif { $newlistener == 1 } {
           putserv "PRIVMSG $radiochan :$streamname currently has $newlistener listener" 
         } else {
           putserv "PRIVMSG $radiochan :$streamname currently has $newlistener listeners" 
         }
         set sessionpeak $newlistener 
#      } 
      set oldlistener "$newlistener" 
    } 
    if {$newsong != $oldsong} { 
      putserv "PRIVMSG $radiochan : IceCast - New song: \002 \0038 $newsong" 
      set oldsong "$newsong" 
    } 
  } 
} 
  
# Icecast_Online 
# Este es el analizador HTTP que recopila los diversos datos del archivo status.xsl. 
proc icecast_online { } { 
  global streamip streamport streamstatus newsong newlistener streamadmin streampass
  global contenttype streamtitle streamdescription mountstarted peaklisteners
  global streamgenre streamurl mountpoint bitrate
  set pagedata "" 
  set chan "#intimisimos"
  if {[catch {set sock [socket $streamip $streamport] } sockerror]} { 
    putlog "error: $sockerror" 
    return 0 
  } else { 
    puts $sock "GET /status.xsl?mount=/listen.mp3 HTTP/1.1" 
    puts $sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)" 
    puts $sock "Host: $streamip"
    puts $sock "Connection: close" 
    puts $sock "" 
    flush $sock 
    while {![eof $sock]} { append pagedata "[read $sock]" } 
  }
  if {[string match *streamdata* $pagedata] == 1} { 
    set streamstatus "1" 
    set songlocation [string first "Current Song:" $pagedata] 
    set songdata1 [string range $pagedata $songlocation 99999] 
    set location2 [string first "</tr>" $songdata1] 
    set songdata2 [string range $songdata1 0 $location2] 
    set songdata3 [string range $songdata2 42 9999] 
    set location3 [string first " - </td>" $songdata3] 
    set location3 [expr $location3 - 1] 
    set newsong [string range $songdata3 0 $location3] 
    set llocation [string first "Current Listeners:" $pagedata] 
    set countdata1 [string range $pagedata $llocation 99999] 
    set llocation2 [string first "</tr>" $countdata1] 
    set countdata2 [string range $countdata1 0 $llocation2] 
    set countdata3 [string range $countdata2 47 9999] 
    set llocation3 [string first "</td>" $countdata3] 
    set llocation3 [expr $llocation3 - 1] 
    set newlistener [string range $countdata3 0 $llocation3] 
    set ctypeloc [string first "Content Type:" $pagedata]
    set ctypedat [string range $pagedata $ctypeloc 99999]
    set ctypeloc2 [string first "</tr>" $ctypedat]
    set ctypedat2 [string range $ctypedat 0 $ctypeloc2]
    set ctypedat3 [string range $ctypedat2 42 9999]
    set ctypeloc3 [string first "</td>" $ctypedat3]
    set ctypeloc3 [expr $ctypeloc3 - 1]
    set contenttype [string range $ctypedat3 0 $ctypeloc3]
    set stloc [string first "Stream Title:" $pagedata]
    set stdat [string range $pagedata $stloc 99999]
    set stloc2 [string first "</tr>" $stdat]
    set stdat2 [string range $stdat 0 $stloc2]
    set stdat3 [string range $stdat2 42 9999]
    set stloc3 [string first "</td>" $stdat3]
    set stloc3 [expr $stloc3 - 1]
    set streamtitle [string range $stdat3 0 $stloc3]
    set sdloc [string first "Stream Description:" $pagedata]
    set sddat [string range $pagedata $sdloc 99999]
    set sdloc2 [string first "</tr>" $sddat]
    set sddat2 [string range $sddat 0 $sdloc2]
    set sddat3 [string range $sddat2 48 9999]
    set sdloc3 [string first "</td>" $sddat3]
    set sdloc3 [expr $sdloc3 - 1]
    set streamdescription [ string range $sddat3 0 $sdloc3]
    set msloc [string first "Mount started:" $pagedata]
    set msdat [string range $pagedata $msloc 99999]
    set msloc2 [string first "</tr>" $msdat]
    set msdat2 [string range $msdat 0 $msloc2]
    set msdat3 [string range $msdat2 48 9999]
    set msloc3 [string first "</td>" $msdat3]
    set msloc3 [expr $msloc3 - 1 ]
    set mountstarted [string range $msdat3 0 $msloc3 ]
    set plloc [string first "Peak Listeners:" $pagedata]
    set pldat [string range $pagedata $plloc 99999]
    set plloc2 [string first "</tr>" $pldat]
    set pldat2 [string range $pldat 0 $plloc2]
    set pldat3 [string range $pldat2 44 9999]
    set plloc3 [string first "</td>" $pldat3]
    set plloc3 [expr $plloc3 - 1]
    set peaklisteners [string range $pldat3 0 $plloc3]
    set sgloc [string first "Stream Genre:" $pagedata]
    set sgdat [string range $pagedata $sgloc 99999]
    set sgloc2 [string first "</tr>" $sgdat]
    set sgdat2 [string range $sgdat 0 $sgloc2]
    set sgdat3 [string range $sgdat2 42 9999]
    set sgloc3 [string first "</td>" $sgdat3]
    set sgloc3 [expr $sgloc3 - 1 ]
    set streamgenre [string range $sgdat3 0 $sgloc3]
    set suloc [string first "Stream URL:" $pagedata]
    set sudat [string range $pagedata $suloc 99999]
    set suloc2 [string first "</tr>" $sudat]
    set sudat2 [string range $sudat 0 $suloc2]
    set sudat3 [string range $sudat2 100 9999]
    set suloc3 [string first "</a>" $sudat3]
    set suloc3 [expr $suloc3 - 1]
    set streamurl [string range $sudat3 0 $suloc3]
    set mploc [string first "Mount Point" $pagedata]
    set mpdat [string range $pagedata $mploc 99999]
    set mploc2 [string first "</tr>" $mpdat]
    set mpdat2 [string range $mpdat 0 $mploc2]
    set mpdat3 [string range $mpdat2 62 9999]
    set mploc3 [string first "\.m3u" $mpdat3]
    set mploc3 [expr $mploc3 - 1]
    set mountpoint [string range $mpdat3 0 $mploc3]
    set brloc [string first "Bitrate:" $pagedata]
    set brdat [string range $pagedata $brloc 99999]
    set brloc2 [string first "</tr>" $brdat]
    set brdat2 [string range $brdat 0 $brloc2]
    set brdat3 [string range $brdat2 37 9999]
    set brloc3 [string first "</td>" $brdat3]
    set brloc3 [expr $brloc3 - 1]
    set bitrate [string range $brdat3 0 $brloc3]
#putlog "$newsong"
#putlog "$newlistener"
#putlog "$contenttype"
#putlog "$streamtitle"
#putlog "$streamdescription"
#putlog "$mountstarted"
#putlog "$peaklisteners"
#putlog "$streamgenre"
#putlog "$streamurl"
#putlog "$mountpoint"
#putlog "$bitrate"
    close $sock 
    return 1 
    
  } else { 
    set streamstatus "0" 
    close $sock 
    return 0 
  } 
} 
# !radio función. Muestra el estado actual de la transmisión. 
proc status {nick uhost hand chan arg} { 
  global dj radiochan newsong newlistener streamstatus streamurl streamname 
  global contenttype streamtitle streamdescription mountstarted peaklisteners
  global streamgenre streamurl mountpoint bitrate djchan
  putlog "status proc triggered"
  if {$streamstatus == 1} { 
    putserv "PRIVMSG $chan :$streamname is currently broadcasting live @ $streamurl" 
    if {$newsong != "" && $chan == $djchan} {
      if {$newlistener == 0 } {
        putserv "PRIVMSG $chan :The current song is \0038 $newsong \0030 with no listeners."
      } elseif { $newlistener == 1 } {
        putserv "PRIVMSG $chan :Current Song: \0038 $newsong \0030 \| Listeners: \0038 $newlistener"
        putserv "PRIVMSG $chan :Content Type: \0038 $contenttype \0030 \| Stream Title: \0038 $streamtitle"
        putserv "PRIVMSG $chan :Stream Description: \0038 $streamdescription \0030 \| Mount Started: \0038 $mountstarted"
        putserv "PRIVMSG $chan :Peak Listeners: \0038 $peaklisteners \0030 \| Stream Genre: \0038 $streamgenre"
        putserv "PRIVMSG $chan :Stream URL: \0038 $streamurl$mountpoint \0030 \| Bitrate: \0038 $bitrate"
        putserv "PRIVMSG $chan :Server: \0038 icecast v2.3.3 \0030 \| Client: \0038 ices v2.0.2 \0030 \| DJ: \0038 AutoDJ"
      } else {
        putserv "PRIVMSG $chan :Current Song: \0038 $newsong \0030 \| Listeners: \0038 $newlistener"
        putserv "PRIVMSG $chan :Content Type: \0038 $contenttype \0030 \| Stream Title: \0038 $streamtitle"
        putserv "PRIVMSG $chan :Stream Description: \0038 $streamdescription \0030 \| Mount Started: \0038 $mountstarted"
        putserv "PRIVMSG $chan :Peak Listeners: \0038 $peaklisteners \0030 \| Stream Genre: \0038 $streamgenre"
        putserv "PRIVMSG $chan :Stream URL: \0038 $streamurl$mountpoint \0030 \| Bitrate: \0038 $bitrate"
        putserv "PRIVMSG $chan :Server: \0038 icecast v2.3.3 \0030 \| Client: \0038 ices v2.0.2 \0030 \| DJ: \0038 AutoDJ"
      }
    } 
    if {$dj != ""} {putserv "PRIVMSG $chan :The DJ is $dj"} 
  } else { 
    putserv "PRIVMSG $chan :$streamname is currently offline." 
  } 
} 
# !peticion: envía un mensaje a dj sobre la solicitud que se realizó.. 
proc request {nick uhost hand chan arg} { 
  global dj radiochan 
  if {$dj == ""} { 
    putserv "notice $nick :There isn't a DJ logged in at the moment to take requests." 
  } else { 
    if {$arg == ""} { 
      putserv "notice $nick :You didn't request anything!" 
    } else { 
      putserv "privmsg $dj :REQUEST($nick)=> $arg" 
      putserv "notice $nick :Request sent to $dj :)" 
    } 
  } 
} 
# /msg $botnick request X: envía un mensaje a dj sobre la solicitud que se realizó. 
proc msg_request {nick uhost hand arg} { 
  global dj radiochan 
  if {$dj == ""} { 
    putserv "notice $nick :There isn't a DJ logged in at the moment to take requests." 
  } else { 
    if {$arg == ""} { 
      putserv "notice $nick :You didn't request anything!" 
    } else { 
      putserv "privmsg $dj :REQUEST($nick)=> $arg" 
      putserv "notice $nick :Request sent to $dj :)" 
    } 
  } 
} 
# !emito (name): habilita el estado de DJ para alguien con la etiqueta D
proc dj_on {nick uhost hand chan arg} { 
  global dj radiochan djnickname streamurl streamname 
  if {$dj != "" && $dj != "$nick" && [onchan $djnickname $radiochan] != "0"} { 
    putserv "notice $nick :There is already a DJ active!" 
    return 0 
  } 
  if {$arg == "" } { set djnickname $nick} else {set djnickname $arg} 
  pushmode $radiochan +o $nick 
  putserv "TOPIC $radiochan :$streamname || Click here to Listen: $streamurl || https://unawebcualquiera.com || Current DJ: $djnickname" 
  putserv "PRIVMSG $radiochan :$djnickname is now rocking the turntables, enjoy." 
  set dj "$nick" 
  putlog "(RADIO) DJ-ON: [nick2hand $nick $chan]" 
} 
# !auto: Apaga DJ para el usuario 
proc dj_off {nick uhost hand chan arg} { 
  global dj radiochan djnickname streamurl streamname 
  if {$dj != $nick} { 
    putserv "notice $nick :You are not the current DJ or you changed your nickname since becoming one." 
  } else { 
    set dj "" 
    set djnickname "" 
    pushmode $radiochan -o $nick 
    putserv "TOPIC $radiochan :$streamname || Click here to Listen: $streamurl || https://unawebcualquiera.com || Current DJ: none" 
    putserv "notice $nick :Your DJ'ness has been deactivated" 
    putlog "(RADIO) DJ-OFF: [nick2hand $nick $chan]" 
  } 
} 
# /msg $botnick djforceoff [nick]: Forces off a DJ from having DJ status. 
proc dj_force_off {nick uhost hand arg} { 
  global djnickname dj radiochan streamurl streamname 
  if {$dj == ""} { 
    putserv "notice $nick :No DJ currently set to boot off." 
    return 0 
  } else { 
    if {$arg == ""} { 
      putserv "notice $nick :You didn't specify a DJ to boot off." 
      return 0 
    } else { 
      set dj "" 
      set djnickname "" 
      pushmode $radiochan -o $arg 
     # putserv "TOPIC $radiochan :$streamname || Click here to Listen: $streamurl || https://unawebcualquiera.com|| Current DJ: none" 
      putserv "notice $nick :DJ status removed for $arg." 
      putserv "notice $arg :Your DJ'ness was removed by $nick." 
      putlog "(RADIO) DJ-FORCEOFF: $arg booted by [nick2hand $nick $chan]" 
    } 
  } 
} 
# !dj: Muestra quién es la DJ actual. 
proc dj {nick uhost hand chan arg} { 
  global djnickname radiochan streamname 
  if {$djnickname == ""} { 
    putserv "PRIVMSG $chan :There currently are no live DJs logged in at the moment. Auto DJ is on." 
  } else { 
    putserv "PRIVMSG $chan :$djnickname is the current $streamname DJ!" 
  } 
} 
# !listeners: muestra cuántos oyentes actuales hay. 
proc listenercheck {nick uhost hand chan arg} { 
  global newlistener radiochan streamstatus streamname 
  global contenttype streamtitle streamdescription mountstarted peaklisteners
  global streamgenre streamurl mountpoint bitrate
  if {$streamstatus == "1"} { 
    if {$newlistener == "0"} { 
      putserv "PRIVMSG $chan :There aren't any listeners tuned into $streamname :(." 
    } elseif {$newlistener =="1"} { 
      putserv "PRIVMSG $chan :There is 1 listener tuned into $streamname." 
    } else { 
      putserv "PRIVMSG $chan :There are $newlistener listeners tuned into $streamname." 
    } 
  } else { 
    putserv "PRIVMSG $chan :$streamname isn't on-air." 
  } 
} 
# ! newdj [ nick ]  [ handle ]  [ host ] : agrega un nuevo usuario al bot y le da la bandera de DJ (D). 
proc newdj {nick host hand chan arg} { 
  putlog "newdj proc triggered"
  global radiochan streamname 
putlog "$nick"
  if { $nick != "administrador" } {
    putserv "privmsg $nick :You can not do that!"
    return 0
  }
  set nickname [lindex $arg 0] 
  set newhand [lindex $arg 1] 
  set newhost [lindex $arg 2] 
  if {[validuser $nickname]} { 
    putserv "privmsg $nick :There is already a user existing by that handle!" 
    return 0 
  } 
  if {$nickname == ""} { 
    putserv "privmsg $nick :You must enter their nickname handle and host!" 
    return 0 
  } 
  if {$newhand == ""} { 
    putserv "privmsg $nick :You must enter their nickname handle and host!" 
    return 0 
  } 
  if {$newhost == ""} { 
    putserv "privmsg $nick :You must enter their nickname handle and host!" 
    return 0 
  } 
  if {([onchan $nickname $chan])} { 
    adduser $newhand $newhost 
    chattr $newhand +D 
    putserv "privmsg $radiochan :Added $nickname ($newhand) as a $streamname DJ!" 
  } 
} 
# !version: displays the current version of the Ice2.tcl script. 
proc iceversion {nick host hand chan arg} { 
   global ice2version radiochan botnick 
   if {$chan == $radiochan} { 
     putserv "PRIVMSG $radiochan :Estoy $botnick ejecutando Ice2.tcl Versión $ice2version de mia." 
   } 
} 
# !choon function. Diplays if u like the song. 
proc choon {nick uhost hand chan arg} { 
  global dj radiochan newsong newlistener streamstatus streamurl streamname 
  if {$streamstatus == 1} { 
    putserv "PRIVMSG $chan :$nick gets down with $newsong!" 
 } 
} 
# !cheese function. Diplays if u hate the song. 
proc cheese {nick uhost hand chan arg} { 
 global dj radiochan newsong newlistener streamstatus streamurl streamname 
  if {$streamstatus == 1} { 
    putserv "PRIVMSG $chan :$nick thinks this tune is a load of cheese and a waiste!" 
 } 
} 
putlog "*** nuevaIcecast esta cargado! :)" 
User avatar
CrazyCat
Revered One
Posts: 1305
Joined: Sun Jan 13, 2002 8:00 pm
Location: France
Contact:

Post by CrazyCat »

Check your streamip and streamport, I don't think you put the good values.
User avatar
mabrook
Halfop
Posts: 60
Joined: Mon Jun 14, 2021 9:41 am

Post by mabrook »

User avatar
flink
Halfop
Posts: 83
Joined: Sun Feb 21, 2021 9:27 am
Location: Canarias

Post by flink »

CrazyCat wrote:Check your streamip and streamport, I don't think you put the good values.
CrazyCat ,thanks for replying, I put some random ones in this post, but I tried the ones from my radio server and it doesn't give the information it was supposed to give.
User avatar
flink
Halfop
Posts: 83
Joined: Sun Feb 21, 2021 9:27 am
Location: Canarias

Post by flink »

mabrook wrote:you can try this other option

http://www.tclarchive.org/search.php?st ... =0&sub.y=0
mabrook, thanks for answering, I remember to try them and they don't give the title and artist data either.
User avatar
mabrook
Halfop
Posts: 60
Joined: Mon Jun 14, 2021 9:41 am

Post by mabrook »

post your email, i will send to you what im using now..
User avatar
CrazyCat
Revered One
Posts: 1305
Joined: Sun Jan 13, 2002 8:00 pm
Location: France
Contact:

Post by CrazyCat »

flink wrote:
CrazyCat wrote:Check your streamip and streamport, I don't think you put the good values.
CrazyCat ,thanks for replying, I put some random ones in this post, but I tried the ones from my radio server and it doesn't give the information it was supposed to give.
Give me via MP the real infos then I'll check what's wrong with it
User avatar
mabrook
Halfop
Posts: 60
Joined: Mon Jun 14, 2021 9:41 am

Post by mabrook »

flink wrote:
mabrook wrote:you can try this other option

http://www.tclarchive.org/search.php?st ... =0&sub.y=0
mabrook, thanks for answering, I remember to try them and they don't give the title and artist data either.

i am thinking, maybe you are using shoutcast script but your radio is icecast or vice versa..

normally as far i explored the scripts made by the coders .. all shoutcast script requires user and password while icecast is not.


you need to try to setup this script on this link;

http://www.tclarchive.org/search.php?st ... =0&sub.y=0


it's a hunch for me now.. maybe it could help you..
User avatar
flink
Halfop
Posts: 83
Joined: Sun Feb 21, 2021 9:27 am
Location: Canarias

Post by flink »

mabrook thank you again for answering, but what you recommend me are similar to what I opened this post, I have tried them but it does not send information from the radio server, more than the streamurl that we previously wrote in the tcl, thanks again and the one you sent me by mail more of the same sincerely thanks but it is not the help I ask, I need to send the artist and the title to the rooms where this bot among other things, thank you
User avatar
CrazyCat
Revered One
Posts: 1305
Joined: Sun Jan 13, 2002 8:00 pm
Location: France
Contact:

Post by CrazyCat »

The settings you sent me don't seem to be access to an Icecast server, you may contact the solution provider of the radio to have the good informations.
User avatar
flink
Halfop
Posts: 83
Joined: Sun Feb 21, 2021 9:27 am
Location: Canarias

Post by flink »

CrazyCat wrote:The settings you sent me don't seem to be access to an Icecast server, you may contact the solution provider of the radio to have the good informations.
CrazyCat thanks for answering,maybe what you comment is because when you are in dj AUTO the songs are in a cloud of the stream provider, because in your widget that below I pass if it gives the data both with autodj, as in dj live of artist and song and when we broadcast live those are the data that we enter in the sambroadcaster to broadcast live
widget : <iframe src="https://zeno.fm/player/angelescaidos" width="575" height="250" frameborder="0" scrolling="no"></iframe><a href="https://zeno.fm/" target="_blank" style="display: block; font-size: 0.9em; line-height: 10px;">A Zeno.FM Station</a>
User avatar
flink
Halfop
Posts: 83
Joined: Sun Feb 21, 2021 9:27 am
Location: Canarias

Post by flink »

flink wrote:
CrazyCat wrote:The settings you sent me don't seem to be access to an Icecast server, you may contact the solution provider of the radio to have the good informations.
CrazyCat thanks for answering,maybe what you comment is because when you are in dj AUTO the songs are in a cloud of the stream provider, because in your widget that below I pass if it gives the data both with autodj, as in dj live of artist and song and when we broadcast live those are the data that we enter in the sambroadcaster to broadcast live
widget : <iframe src="https://zeno.fm/player/angelescaidos" width="575" height="250" frameborder="0" scrolling="no"></iframe><a href="https://zeno.fm/" target="_blank" style="display: block; font-size: 0.9em; line-height: 10px;">A Zeno.FM Station</a>

someone told me about using the api of the radio server maybe if it would be easier to help me because I am still very new to this and I'm learning and asking too much would it be possible?
User avatar
mabrook
Halfop
Posts: 60
Joined: Mon Jun 14, 2021 9:41 am

Post by mabrook »

Code: Select all


CrazyCat thanks for answering,maybe what you comment is because when you are in dj AUTO the songs are in a cloud of the stream provider, because in your widget that below I pass if it gives the data both with autodj, as in dj live of artist and song and when we broadcast live those are the data that we enter in the sambroadcaster to broadcast live
widget : <iframe src="https://zeno.fm/player/angelescaidos" width="575" height="250" frameborder="0" scrolling="no"></iframe><a href="https://zeno.fm/" target="_blank" style="display: block; font-size: 0.9em; line-height: 10px;">A Zeno.FM Station</a>

flink, I've already experienced this Sam broadcaster. I've already tried it with my friend's radio and I'm having a hard time for his radio. I think the idea in doing the API is good (if SAM Broadcaster have the API). You can hire a coder for this and let the coder check everything so that he can get the idea on how to do it. And I hope there's a coder/s that can make a script for a SAM BROADCASTER tcl script in the future..

:P :P :P :P :P
User avatar
flink
Halfop
Posts: 83
Joined: Sun Feb 21, 2021 9:27 am
Location: Canarias

Post by flink »

excuse me mabrook, but I don't know if it is the translator or if it is you that is mixing it all up, because nothing of what you have said or exposed has worked, with what I asked for in this post, I thank you for the intention you show but honestly it does not answer the initial question you only talk about other things that you have seen or have someone and links where we look before we get to formulate help by this means nothing to do with the initial question, thank you very much.
User avatar
mabrook
Halfop
Posts: 60
Joined: Mon Jun 14, 2021 9:41 am

Post by mabrook »

flink,


just saying from my own opinion (from my experienced for that SAMCLOUD/SAM BROADCASTER ) ..

go as what you need to do.. no worries..



hope you find a good resolutions from this matter.

thank you very much.
Post Reply