You mind my URLInf.? So.. this is like urlinf, but only for Now playing plugins.
Grabbing info from tinysong.com and vpleer.ru
Log example:
\x23\x30\x05 * Spoofing playing: Say Y - Angels
\x23\x30\x08 <@Bot> [play] song: Angels / artist: Say Y / album: The Synthetic Music Collection (disc 4) @ http://tinysong.com/trG7 [mp3] file: Say Y - Angels (4:38) @ http://tinyurl.com/38g63z4
Parser for text very simple.
This script very 'dirty', but works... enjoy)..
alias tsong::url {
if ($prop == encode) {
var %i = 1, %len = $len($1), %str
while (%i <= %len) {
var %char = $asc($mid($1,%i,1)), %i = %i + 1
if (%char == 32) var %str = $+(%str,+)
elseif (%char isin 35,37,38,45,46,47,58,59,61,63,64) var %str = $+(%str,$chr($v1))
elseif (%char isnum 48-57) || (%char isnum 65-90) || (%char isnum 97-122) var %str = $+(%str,$chr($v1))
elseif (%char < 128) var %str = $+(%str,%,$base($v1,10,16,2))
elseif (%char < 2048) var %str = $+(%str,%,$base($calc(192 + $int($calc($v1 / 64))),10,16,2),%,$base($calc(128 + ($v1 % 64)),10,16,2))
elseif (%char < 65536) var %str = $+(%str,%,$base($calc(224 + $int($calc($v1 / 4096))),10,16,2),%,$base($calc(128 + ($int($calc($v1 / 64)) % 64)),10,16,2),%,$base($calc(128 + ($v1 % 64)),10,16,2))
elseif (%char < 2097152) var %str = $+(%str,%,$base($calc(240 + $int($calc($v1 / 262144))),10,16,2),%,$base($calc(128 + ($int($calc($v1 / 4096)) % 64)),10,16,2),%,$base($calc(128 + ($int($calc($v1 / 64)) % 64)),10,16,2),%,$base($calc(128 + ($v1 % 64)),10,16,2))
}
return %str
}
if ($prop == decode) {
var %i = 255, %str = $1
while (%i) var %str = $replace(%str,$+(%,$base(%i,10,16,2)),$chr(%i)), %i = %i - 1
return %str
}
return $1
}
on *:START: {
if ($hget(tsong)) hfree $v1
if ($hget(tsong::sock)) hfree $v1
hmake tsong
hmake tsong::sock
if ($lof(data/tsong/tsong.txt)) hload tsong data/tsong/tsong.txt
}
on *:EXIT: {
if ($hget(tsong)) hsave tsong data/tsong/tsong.txt
}
on *:TEXT:*:#: {
tokenize 32 $strip($1-)
if (*?: ?* - ?* iswm $1-) {
hinc -m tsong id
if ($sock($+(tsong,.,%scheme,.,$hget(tsong,id)))) sockclose $v1
sockopen $+(-,$iif($hget(tsong,bindip),d),$iif(%ssl,e)) $hget(tsong,bindip) $+(tsong,.,%scheme,.,$hget(tsong,id)) www.tinysong.com 80
sockmark $+(tsong,.,%scheme,.,$hget(tsong,id)) $ticks $ctime $cid $iif(#,#,$nick) $nick $address $mid($1-,$calc($pos($1-,:) + 2))
}
}
on *:ACTION:*:#: {
tokenize 32 $strip($1-)
if (*?: ?* - ?* iswm $1-) {
hinc -m tsong id
if ($sock($+(tsong,.,$hget(tsong,id)))) sockclose $v1
sockopen $+(-,$iif($hget(tsong,bindip),d),$iif(%ssl,e)) $hget(tsong,bindip) $+(tsong,.,$hget(tsong,id)) www.tinysong.com 80
sockmark $+(tsong,.,$hget(tsong,id)) $ticks $ctime $cid $iif(#,#,$nick) $nick $address $mid($1-,$calc($pos($1-,:) + 2))
}
}
on *:SOCKOPEN:tsong.*: {
tokenize 32 $sock($sockname).mark
if ($sockerr) echo msg $4 $+([,$sock($sockname).addr,:,$sock($sockname).port,]) $sock($sockname).wsmsg
else {
if ($sock($sockname).addr == www.tinysong.com) sockwrite -n $sockname GET $+(/b/,$tsong::url($7-).encode) HTTP/1.0
elseif ($sock($sockname).addr == tinyurl.com) sockwrite -n $sockname GET $+(/api-create.php?url=,$7-) HTTP/1.0
else sockwrite -n $sockname GET $+(/?q=,$tsong::url($7-).encode) HTTP/1.0
sockwrite -n $sockname User-Agent: $+(mIRC,/,$version)
sockwrite -n $sockname Host: $sock($sockname).addr
sockwrite -n $sockname Accept: */*
sockwrite -n $sockname
}
}
on *:SOCKREAD:tsong.*: {
tokenize 32 $sock($sockname).mark
if ($sockerr) {
echo msg $4 $+([,$sock($sockname).addr,:,$sock($sockname).port,]) $sock($sockname).wsmsg
hdel tsong::sock $sockname
}
elseif (tsong.* iswm $sockname) {
sockread $+(&packet.,$sockname)
if ($sockbr = 0) return
bcopy $+(&,$sockname) $calc($hget(tsong::sock,$sockname,$+(&,$sockname)) + 1) $+(&packet.,$sockname) 1 -1
bunset $+(&packet.,$sockname)
hadd -mb tsong::sock $sockname $+(&,$sockname)
if ($bfind($+(&,$sockname),0,13 10 13 10)) {
var %offset = $v1 + 4, %length = $bvar($+(&,$sockname),0) - %offset
}
}
if ($bvar($+(&,$sockname),0) = 0) return
if ($sock($sockname).addr == www.tinysong.com) {
if ($bfind($+(&,$sockname),0,NSF;)) {
hdel tsong::sock $sockname
sockclose $sockname
}
elseif ($bvar($+(&,$sockname),0) > %offset) {
hadd -m tsong::output $gettok($sockname,-1,46) $hget(tsong::output,$gettok($sockname,-1,46)) [play] song: $gettok($bvar($+(&,$sockname),%offset -).text,3,59) / artist: $gettok($bvar($+(&,$sockname),%offset -).text,5,59) / album: $gettok($bvar($+(&,$sockname),%offset -).text,7,59) @ 12 $+ $gettok($bvar($+(&,$sockname),%offset -).text,1,59) $+
if ($sock($+(tsong,.,vpleer,.,$gettok($sockname,-1,46)))) sockclose $v1
sockopen $+(-,$iif($hget(tsong,bindip),d),$iif(%ssl,e)) $hget(tsong,bindip) $+(tsong,.,vpleer,.,$gettok($sockname,-1,46)) en.vpleer.ru 80
sockmark $+(tsong,.,vpleer,.,$gettok($sockname,-1,46)) $1-
hdel tsong::sock $sockname
sockclose $sockname
}
}
elseif ($sock($sockname).addr == en.vpleer.ru) {
if ($bfind($+(&,$sockname),0,<span class="ausong">)) {
var %ausong = $v1 + 21
if ($bfind($+(&,$sockname),%ausong,</span>)) var %ausong = $bvar($+(&,$sockname),%ausong,$calc($v1 - %ausong)).text
}
if ($bfind($+(&,$sockname),0,<span class="auname">)) {
var %auname = $v1 + 21
if ($bfind($+(&,$sockname),%auname,</span>)) var %auname = $bvar($+(&,$sockname),%auname,$calc($v1 - %auname)).text
}
if ($bfind($+(&,$sockname),0,<div class="time">)) {
var %time = $v1 + 18
if ($bfind($+(&,$sockname),%time,</div>)) var %time = $bvar($+(&,$sockname),%time,$calc($v1 - %time)).text
}
if ($bfind($+(&,$sockname),0,<div class="load"><a href=")) {
var %load = $v1 + 27
if ($bfind($+(&,$sockname),%load,")) {
var %load = $bvar($+(&,$sockname),%load,$calc($v1 - %load)).text
hadd -m tsong::output $gettok($sockname,-1,46) $hget(tsong::output,$gettok($sockname,-1,46)) [mp3] file: %ausong - %auname ( $+ %time $+ ) @ 12
if ($sock($+(tsong,.,tinyurl,.,$gettok($sockname,-1,46)))) sockclose $v1
sockopen $+(-,$iif($hget(tsong,bindip),d),$iif(%ssl,e)) $hget(tsong,bindip) $+(tsong,.,tinyurl,.,$gettok($sockname,-1,46)) tinyurl.com 80
sockmark $+(tsong,.,tinyurl,.,$gettok($sockname,-1,46)) $1-6 %load
hdel tsong::sock $sockname
sockclose $sockname
}
}
}
elseif ($sock($sockname).addr == tinyurl.com) {
if ($bvar($+(&,$sockname),0) > %offset) {
msg $4 $hget(tsong::output,$gettok($sockname,-1,46)) $+ $bvar($+(&,$sockname),%offset -).text
hdel tsong::output $gettok($sockname,-1,46)
hdel tsong::sock $sockname
sockclose $sockname
}
}
}
on *:SOCKCLOSE:tsong.*: {
hdel tsong::sock $sockname
}