tsong.mrc (like urlinf.mrc)

By Spoofing on Aug 15, 2010

Screenshots

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
}

Comments

Sign in to comment.
Spoofing   -  Aug 15, 2010

fullsize screenshot
and sorry about my english %)

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.