rendered paste bodyalias mp3 {
if ($1 == stop) { splay stop | titlebar | set %mp3num 1 | set %mp3play off }
elseif ($1 == list) { if ($read(mp3.txt) == $null) { set %mp3dir $$sdir="Set Mp3 Directory:" | write -c mp3.txt | noop $findfile(%mp3dir,*.mp3,0,write mp3.txt $1-) | .timer 1 3 unset %mp3dir }
else { set %mp3dir $$sdir="Set Mp3 Directory" | noop $findfile(%mp3dir,*.mp3,0,write mp3.txt $1-) | .timer 1 3 unset %mp3dir } }
elseif ($1 == play) { set %mp3play on | set %mp3num2 $calc($lines(mp3.txt) + 1) | splay %song | var %id3 = $id3test | cursong | if (%mp3spam == halt) { mp3titlebar %id3 | halt } | if (%id3 == yes) { %mp3spam 2**[7MP32]**07 $mp3ad | mp3titlebar yes }
else { %mp3spam 2**[7MP32]**7 $remove($nopath($insong.fname),.mp3) 2**[07LENGTH2]**07 $+($gmt($round($calc($insong.length / 1000)),nn:ss)) | mp3titlebar no } }
elseif ($1 == pause) { if ($insong.fname != $null) splay pause }
elseif ($1 == resume) { if ($insong.pause == $true) splay resume }
}
on *:TEXT:*:*:{ if ($1 == $+(!,$me)) && ($2 == send) && (%song != $null) && (%dcc == $null) { set %dcc.n $nick | dccreq } }
on *:SENDFAIL:*.mp3:{ .notice $nick I failed to send $remove($nopath($filename),.mp3) to you | if (%dcc !== $null) unset %dcc }
on *:filesent:*.mp3:{ .notice $nick Hope you enjoy $remove($nopath($filename),.mp3) | if (%dcc !== $null) unset %dcc }
alias dccreq { dialog -mdo dccreq dccreq }
dialog dccreq {
title "DCC Send"
size -1 -1 95 31
option dbu notheme
box "Send Request", 1, 2 2 91 26
button "Yes", 2, 26 10 21 12,
button "No", 3, 47 10 21 12,
}
on *:dialog:dccreq:sclick:2:dcc send %dcc.n %song | set %dcc on | .timer 1 30 unset %dcc | dialog -x dccreq
on *:dialog:dccreq:sclick:3:set %dcc on | .timer 1 30 unset %dcc | dialog -x dccreq
on *:MP3END:{
if (%mp3play == on) && (%mp3sh == on) { mp3play }
elseif ($timer(length)) { title_length off }
elseif (%mp3play == on) {
if (%mp3num == $calc(%mp3num2 - 1)) { set %mp3num %mp3num2 }
if (%mp3num != %mp3num2) { set %song $read(mp3.txt,$calc(%mp3num + 1)) | inc %mp3num 1 | mp3 play }
else { set %song $read(mp3.txt,1) | set %mp3num 1 | mp3 play }
}
}
alias cursong { if ($window(@playlist)) sline @playlist %mp3num }
on *:load: set %mp3play on | set %mp3spam halt | set %mp3sh on | set %mp3num 1
alias id3test { if ($sound($insong.fname).artist !== $null) return yes }
alias mp3play { set %song $read(mp3.txt) | set %mp3num $calc($readn + 1) | mp3 play }
alias mp3ad {
var %mp3artist = $remove($sound($insong.fname).artist,PRIV,TXXX)
var %mp3title = $remove($sound($insong.fname).title,PRIV,TXXX)
var %mp3length = $gmt($round($calc($insong.length / 1000)),nn:ss)
var %mp3bitrate = $sound($insong.fname).bitrate
return %mp3artist - %mp3title 2**[07LENGTH2]**07 %mp3length 2**[7BITRATE2]**07 $+(%mp3bitrate,Kbps)
}
alias mp3titlebar {
if ($1 == yes) {
var %mp3artist = $remove($sound($insong.fname).artist,PRIV,TXXX)
var %mp3title = $remove($sound($insong.fname).title,PRIV,TXXX)
var %mp3length = $gmt($round($calc($insong.length / 1000)),nn:ss)
var %mp3bitrate = $sound($insong.fname).bitrate
tbar %mp3artist - %mp3title 2**[07LENGTH2]**07 %mp3length 2**[07BITRATE2]**07 $+(%mp3bitrate,Kbps)
halt } else {
var %mp3song $remove($nopath($insong.fname),.mp3)
var %mp3length = $gmt($round($calc($insong.length / 1000)),nn:ss)
tbar %mp3song 2**[07LENGTH2]**07 $+(%mp3length)
}
}
alias tbar { write -c titlebar.anim | var %tbr $1- [mp3] | var %ctr 1 | var %len $len(%tbr)
while (%ctr <= %len) { write titlebar.anim titlebar $left(%tbr,%ctr) | inc %ctr | if (%ctr > %len) { write titlebar.anim write -c titlebar.anim } }
.play -cs titlebar.anim 60
}
menu channel,query,nicklist {
&MP3 Player
.&Play/Stop
..&Play:mp3play
..&Stop:mp3 Stop
.&Advertise
..&AMSG:set %mp3spam amsg
..&AME:set %mp3spam ame
..&Action To Chan:set %mp3spam describe $$?"Chan: "
..&Message To Chan:set %mp3spam msg $$?"Chan: "
..&Off:set %mp3spam halt
.&Set MP3 Files:mp3 list
.&Lyrics (google): url -an $+(http://www.google.com/search?q=,$replace($remove($nopath($insong.fname),.mp3),$chr(32),+,&,+,?,+,/,+,\,+,%,+,",+,=,+,>,+,<,+,|,+),+lyrics&ie=ISO8859-1)
.&Lyrics (mIRC):lyrics
.&Lyrics (mIRC + NP Song):lyrics.np
.&MP3 Controls:if (!$dialog(mp3con)) dialog -mdo mp3con mp3con
.&Playlist:playlist
&Shuffle
..$iif(%mp3sh == on,$style(3)) Shuffle On { set %mp3sh on }
..$iif(%mp3sh == off,$style(3)) Shuffle Off { set %mp3sh off }
}
dialog mp3con {
title "MP3 Player"
size -1 -1 95 31
option dbu notheme
box "MP3 Buttons", 1, 2 2 91 26
button "Play", 2, 5 10 21 12,
button "Stop", 3, 26 10 21 12,
button "Pause", 4, 47 10 21 12,
button "Resume", 5, 68 10 21 12,
}
on *:dialog:mp3con:sclick:2:mp3play
on *:dialog:mp3con:sclick:3:mp3 stop
on *:dialog:mp3con:sclick:4:mp3 pause
on *:dialog:mp3con:sclick:5:mp3 resume
alias playlist { if ($read(mp3.txt) != $null) {
if (!$fopen(buffer)) { .fopen buffer $+(",$mircdir,mp3.txt,") }
window -BCdolk0 @playlist -1 -1 300 450
clear @playlist
var %x,%i = 0
while (!$feof) {
inc %i
%x = $fread(buffer)
if (%x) && ($sound(%x).artist) iline @playlist %i $remove($sound(%x).artist,PRIV,TXXX) - $remove($sound(%x).title,PRIV,TXXX)
if (%x) && (!$sound(%x).artist) iline @playlist %i $remove($nopath(%x),.mp3)
}
.fclose buffer
}
}
menu @playlist {
dclick { if ($line($active,1,1) != $null) { set %mp3num $sline($active,1).ln | set %song $read(mp3.txt,%mp3num) | mp3 play } }
&Add/Remove/Clear Song
.&Add: { if ($line($active,1,1) != $null) { addsong } }
.&Remove: { if ($line($active,1,1) != $null) { write $+(-dl,$sline($active,1).ln) mp3.txt | dline $active $sline($active,1).ln } }
.&Clear:{ dline $active 1- | write -c mp3.txt }
&Lyrics (google): url -an $+(http://www.google.com/search?q=,$replace($sline($active,1),$chr(32),+,&,+,?,+,/,+,\,+,%,+,",+,=,+,>,+,<,+,|,+),+lyrics&ie=ISO8859-1)
&Lyrics (mIRC):/lyrics
&Lyrics (mIRC + NP Song):lyrics.np
&MP3 Player Controls:if (!$dialog(mp3con)) dialog -mdo mp3con mp3con
}
alias addsong {
var %addsong = $sfile(*.mp3) | write mp3.txt %addsong
if ($song(%addsong).artist == $null) aline @playlist $remove($nopath(%addsong),.mp3)
if ($song(%addsong).artist != $null) aline @playlist $remove($sound(%addsong).artist,PRIV,TXXX) - $remove($sound(%addsong).title,PRIV,TXXX)
}
alias lyrics.np {
if ($sound($insong.fname).artist != $null) {
var %artist = $remove($sound($insong.fname).artist,PRIV,TXXX)
var %title = $remove($sound($insong.fname).title,PRIV,TXXX)
var %temp1 $+(artist=,$replace(%artist,$chr(32),$chr(37) $+ 20))
var %temp2 $+(&title=,$replace(%title,$chr(32),$chr(37) $+ 20))
set %lyrics.s $+(%temp1,%temp2) | set %lyrics Lyrics For: %artist - %title
sockopen lyrics lyricsplugin.com 80
halt } else {
set %lyrics Can't Search This Song (No ID3 Tags) | window -k0 @lyrics
dline @lyrics 1- | aline @lyrics $str(~~~,20) | aline @lyrics %lyrics | aline @lyrics $str(~~~,20)
}
}
alias lyrics {
var %artist $$?"Artist: (Not All Songs Work)" | var %title $$?"Title: (Not All Songs Work)"
var %temp1 $+(artist=,$replace(%artist,$chr(32),$chr(37) $+ 20))
var %temp2 $+(&title=,$replace(%title,$chr(32),$chr(37) $+ 20))
set %lyrics.s $+(%temp1,%temp2) | set %lyrics Lyrics For: %artist - %title
sockopen lyrics lyricsplugin.com 80
}
on *:sockopen:lyrics:{
sockwrite -n $sockname GET $+(/plugin/?,%lyrics.s) HTTP/1.1
sockwrite -n $sockname Host: www.lyricsplugin.com
sockwrite -n $sockname Connection: Not Encrypted
sockwrite -n $sockname Accept: */*
sockwrite -n $sockname $crlf
}
on *:sockread:lyrics:{
if ($sockerr) { echo -a Error: $sock($sockname).wsmsg }
if (!%lyrical) { sockread %' | if (*<div id="lyrics">* iswm %' ) { set %lyrical 1 } }
else { sockread %' | window -k0 @lyrics | lyrics.win
while ($sockbr) { if $htmlfree(%') {
if ($v1 !== $null) aline @lyrics $v1 | var %lyrics.ok no }
else { if (%lyrics.ok == $null) aline @lyrics None Found For This Song! ( %lyrics ) }
if ($htmlfree(%') == $null) { aline @lyrics $chr(160) }
sockread %' | if (*</div>* iswm %') { unset %lyrical | unset %' | return }
}
}
}
alias -l htmlfree {
var %x, %i = $regsub($replace($1-,<td>,$chr(32),<tr>,$chr(20)),/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, )
return $replace(%x,",")
}
alias lyrics.win {
if (!$fline(@lyrics,%lyrics)) { dline @lyrics 1- | aline @lyrics $str(~~~,20) | aline @lyrics %lyrics
aline @lyrics URL: $+(http://www.lyricsplugin.com/plugin/?,%lyrics.s) | aline @lyrics $str(~~~,20)
}
}
menu @lyrics {
&Search &Again:dline $active 1- | lyrics
&Clear/Save
.&Clear:{ dline $active 1- }
.&Save:{ filter -wf $active $replace($+($$?="Save As: ",.txt),$chr(32),_) }
}