Stream Update

Status
Nicht offen für weitere Antworten.

Remme

Erfahrenes Mitglied
Tach,

Ich möchte einen "Stream-Update" auf eine Page haben, der anzeigt welchjer titel im moment läuft und welcher moderator derzeit onair ist.
Kenne mich jedoch leider nur ein bissl mit dem script beim mIRC aus der wäre

Code:
 if (%showst != 1) {
      /set %statstream 1
      /set %echan $chan
      /timer 1 0 /set %showst 1
      /timer 1 0 /sockclose radio
      /timer 1 1 /sockopen radio %serverip %serverport 
      /timer 1 15 /set %showst 0
    }
    else { halt }
  }
}
on *:sockopen:radio:{ 
  sockwrite -n $sockname GET /7.html HTTP/1.1
  sockwrite -n $sockname Host: %serverip
  sockwrite -n $sockname User-Agent: Mozilla/4.0
  sockwrite -n $sockname Connection: Keep-Alive
  sockwrite -n $sockname $str($crlf,2) 
}

on *:sockread:radio:{ 
  if ($sockerr) sockclose $sockname 
  :nextreading
  var %h 
  sockread -f %h 
  echo %h
  if ($sockbr == 0) return 
  if (%h == $null) %h = - 
  $iif(%h,tokenize 32 $left(%h,900)) 
  set %bitch $remove($1-,<HTML>,<meta http-equiv="Pragma",content="no-cache"></head><body>,,</body></html>) 
  set %listnr $gettok(%bitch,1,44) 
  serverst 
  set %listnpeak $gettok(%bitch,3,44) 
  set %bits $gettok(%bitch,4,44) 
  currtitl 
  set %kbps $gettok(%bitch,6,44) 
  if (%kbps) { goto echoing } 
  goto nextreading  
  :echoing
  if (%serverst == off) { /msg %echan 0,1  » Stream ist [ $+ %serverst $+ ] | /halt }
  msg %echan   » Radio is  $+ %serverst $+ , Moderator ist: %mod  
  msg %echan   » StreamIP lautet: http://www.opecap.net:8000/listen.pls 
  msg %echan   » Listener: %listnr $+ / $+ %bits  Peak: %listnpeak 
  msg %echan   » Aktueller Song: %title 
  msg %echan   » Wunschfunktion ist  %wunsch , Grussfunktion ist  %gruss  
  goto nextreading 
} 

alias Serverst {
  set %serverst $gettok(%bitch,2,44)
  set %serverst2 $gettok(%bitch,2,44)
  if (%serverst == 1) {
    set %serverst On
  }
  else { set %serverst off }
}
alias currTitl {
  set %title $gettok(%bitch,7,44)
  if (%title == $null) {
    set %title n/A
  }
  else {
    set %title $gettok(%bitch,7,44)
  }
}

wenn ich dies bei html einbinden will muss ich auch mit sock.open arbeiten?
Am besten wäre es wenn mir einer einen kompletten script geben könnte.

im vorraus

Remme
 
Ähm?
Was klatschst du uns hier ein mIRC Script hin, mit dem sowieso die wenigsten HTML-Leute (inklusive mir) nichts anfangen können?
Wäre es nicht viel schlauer, wenn du dir eine ordentliche Frage überlegen würdest, und die dann ohne mIRC-Script stellen würdest?

Was willst du überhaupt?

Ps: Wenn ich ein Mod wäre, würde ich dieses Thema sofort wieder schliessen!

//Edit: ok, ich bin ein bisschen weiter, du willst also den Aktuellen Titel und Moderator deines Online-Radios ausgeben.
Das geht mit HTML nicht!
Du musst die Page z.B. mit PHP herunterladen und da die entsprechenden Angaben herausfiltern.

Da taucht auch schon die nächste Frage auf: Auf welcher Seite und vor allem: in welcher Form liegen die Infos?
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

Da wirst du dir mit statischen HTML schwer tun. Hab vor langer langer Zeit mal eine quick 'n' dirty Funktion in PHP dafuer geschrieben.
PHP:
<?php 

/* 
** 
** author: Johannes Distler 
** 
** grep shoutcast informations, without 
** processing its XML output. streaminfo() 
** delivers connected users, max users, 
** user peak, bitrate and current played song. 
** 
** $file = shoutcasts ip/domain 
** $port = shoutcasts listen port 
** 
** have phun! 
** 
************************************************** 
*************************************************/ 


function streaminfo($file,$port) { 
  $fp = @fsockopen ($file, $port, &$errno, &$errstr, 5); 
  if (!$fp) { 
          echo "Could not connect to <b>{$file}:{$port}</b> ({$errno}) - {$errstr}\n"; 
  } else { 
     fputs ($fp, "GET /7 HTTP/1.1\r\nUser-Agent:Mozilla\r\n\r\n"); 
     while (!feof($fp)) { 
      $stream = fgets($fp,1024); 
       } 
     list(,$stream) = explode("<body>",$stream); 
     list($stream) = explode("</body>",$stream); 
     list($user, $status, $user_peak, $user_max, ,$bitrate, $song) = explode(",",$stream); 
     if($status=="0") { 
      echo "<b>{$file}:{$port}</b> is offline!"; 
     } else { 
        echo "<b>{$file}:{$port} on air!</b><br><br> 
    <b>user still connected:</b> {$user} of {$user_max}<br> 
    <b>user peak:</b> {$user_peak}<br> 
    <b>bitrate:</b> {$bitrate} kbits/s<br> 
    <b>current song:</b> {$song}<br>"; 
     } 
     fclose($fp); 
  } 
} 

?>

In deinem Fall wuerde ein "echo streaminfo("opecap.net", 8000);" alle gewuenschten Informationen schreiben.

Gruesse,
Johannes Distler
 
Status
Nicht offen für weitere Antworten.
Zurück