# Stream Update



## Remme (2. Dezember 2003)

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


```
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


----------



## Fabian H (2. Dezember 2003)

Ä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?


----------



## Remme (3. Dezember 2003)

*Sorry*

Sorry,

Also die Infos liegen auf http://www.opecap.net:8000 .
Und sie sollen sollen halt auf der page stehen und sich Updaten.
Vielleicht hilft es etwas, ich kenn mich so sehr aus.

Sorry nochmal


----------



## stanleyB (3. Dezember 2003)

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 

/* 
** 
** 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


----------

