; ----------------------------------------------
; VLC show currently playing song/video
; Channel moderators can turn !playing ON or OFF
; ----------------------------------------------
alias vlc {
if (!$sock(vlc)) {
sockopen vlc 127.0.0.1 8080
/describe $chan says, now playing:
sockmark vlc msg $chan
}
}
on *:sockopen:vlc:{
sockwrite -nt vlc GET /requests/status.xml HTTP/1.1
sockwrite -nt vlc Host: 127.0.0.1 $str($crlf,2)
}
on *:sockread:vlc:{
if ($sockerr) { echo -a Error: $sock(vlc).wsmsg }
var %v
sockread %v
if (<state>stopped</state> isin %v || <state>paused</state> isin %v ) { msg $active Not playing any Song/Video! | sockclose vlc }
else {
if ($regex(%v,/<(length)>([^>]+)<\/length>/)) { set %v. $+ $left($regml(1),2) $hf($regml(2)) }
if ($regex(%v,/<info name='(now_playing)'>([^>]+)<\/info>/)) { set %v. $+ $left($regml(1),2) $hf($regml(2)) }
if ($regex(%v,/<info name='(artist)'>([^>]+)<\/info>/)) { set %v. $+ $left($regml(1),2) $hf($regml(2)) }
if ($regex(%v,/<info name='(description)'>([^>]+)<\/info>/)) { set %v. $+ $left($regml(1),2) $hf($regml(2)) }
if ($regex(%v,/<info name='(filename)'>([^>]+)<\/info>/)) { set %v. $+ $left($regml(1),2) $hf($regml(2)) }
if ($regex(%v,/<info name='(album)'>([^>]+)<\/info>/)) { set %v. $+ $left($regml(1),2) $hf($regml(2)) }
if ($regex(%v,/<info name='(title)'>([^>]+)<\/info>/)) { set %v. $+ $left($regml(1),2) $hf($regml(2)) }
if ($regex(%v,/<info name='(genre)'>([^>]+)<\/info>/)) { set %v. $+ $left($regml(1),2) $hf($regml(2)) }
if ((</root> isin %v) && (%v.le == 0) && (!%v.ge)) {
$sock(vlc).mark %v.no %v.de | $sock(vlc).mark [Station: $+ $chr(32) %v.ti $+ ]
unset %v.*
sockclose vlc
}
if ((</root> isin %v) && (%v.le == 0)) {
$sock(vlc).mark %v.no %v.de
$sock(vlc).mark (Genre: $+ $chr(32) %v.ge $+ )
$sock(vlc).mark (Station: $+ $chr(32) %v.ti $+ )
unset %v.*
sockclose vlc
}
if ((</root> isin %v) && (%v.le != 0) && (%v.fi)) {
if !$read(YT - Playlist.m3u, ntw, $+(*,%v.fi,*)) {
$sock(vlc).mark %v.fi
$sock(vlc).mark [YouTube- $+ %v.ar $+ ] duration: ( $+ $duration(%v.le,3) $+ )
unset %v.*
sockclose vlc
}
else {
$read(YT - Playlist.m3u, ntw, $+(*,%v.fi,*))
var %line = $readn + 2
var %reqname = $remove($read(YT - Playlist.m3u, nt, %line),$chr(35))
$sock(vlc).mark %v.fi
$sock(vlc).mark [YouTube- $+ %v.ar $+ ] duration: ( $+ $duration(%v.le,3) $+ )
$sock(vlc).mark Requested by: %reqname
unset %v.*
sockclose vlc
}
}
if ((</root> isin %v) && (%v.le != 0)) {
$sock(vlc).mark %v.ar - %v.ti
$sock(vlc).mark (Album: $+ $chr(32) %v.al $+ )
$sock(vlc).mark (Genre: $+ $chr(32) %v.ge )
unset %v.*
sockclose vlc
}
}
}
alias -l hf { return $remove($replace($1-,",",',',&,&,<,<,>,>, ,$chr(32),','),<![CDATA[,]]>) }