;~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*;
; YouTube Video "Detector" ;
; Made by Kirby (Quakenet) ;
;*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~;
;// YouTube Detector Identifiers //
alias -l addmark { return $+($sock($1).mark,$chr($3),$2) }
alias -l smsg { msg $iif(c isincs $chan($1).mode,$1 $strip($2-),$1-) }
;// YouTube Detector Text Event //
on *:text:*youtube.com/watch?v=*:#: {
/set -e %bot.youtube.echan $chan
if (!$sock(youtube)) {
noop $regex($strip($1-),http:\/\/.*youtube.*\/watch\?v=(.{11})&?.*)
sockopen youtube www.youtube.com 80 | sockmark youtube $+(#,>,$regml(1))
}
}
;// YouTube Detector Socket (Video Information) //
on *:sockopen:youtube: {
sockwrite -n $sockname GET $+(/watch?v=,$gettok($sock(youtube).mark,2,62)) HTTP/1.0
sockwrite -n $sockname Host: www.youtube.com
sockwrite -n $sockname $crlf
}
on *:sockread:youtube: {
var %x | sockread %x
if ($regex(%x,)) sockmark youtube $addmark(youtube,Title: $+(,$regml(1),),62)
elseif ($regex(%x,"length_seconds":\s"(\w+)")) sockmark youtube $addmark(youtube,Duration: $+(,$duration($regml(1)),),62)
elseif ($regex(%x,title="(.+)">.+(.+)\sratings<\/span>)) sockmark youtube $addmark(youtube,$+($regml(1),>,$regml(2)),62)
elseif ($regex(%x,view-count">(.+)<\/span>\s)) { sockmark youtube $addmark(youtube,$regml(1),62) }
elseif ($regex(%x,date">(.+)<\/span>)) sockmark youtube $addmark(youtube,$+($chr(40),uploaded on $regml(1),$chr(41)),62)
elseif ($regex(%x,= 7,$3 $chr(124) $5 $6 $chr(124) $4 $chr(124) Views: $+(,$iif(%x == 7,$7,$9),) $chr(124) Rating: $iif(%x == 9,$+(,$7,) $+($chr(40),$8 $iif($8 == 1,rating,ratings),$chr(41),),$+(,Ratings were disabled,)),Either the video doesn't exist or it contained a malformed video ID.) }
}
alias respond.youtube {
if (($1 == off) || (!$1)) { /writeini %bot.inifile $+($chan,@,$network) youtube off }
elseif ($1 == on) { /writeini %bot.inifile $+($chan,@,$network) youtube on }
elseif ($1 == universal) && (($2 == off) || (!$2)) { /writeini %bot.inifile universal youtube off }
elseif ($1 == universal) && ($2 == on) { /writeini %bot.inifile universal youtube on }
}
on *:text:.respond youtube*:#: {
/set -e %bot.inifile youtubesettings.ini
/echo -a $1- called by $nick at $+($chan,@,$network)
if (($3 == off) || (!$3)) && ($nick isop $chan) { /writeini %bot.inifile $+($chan,@,$network) youtube off }
elseif ($3 == on) && ($nick isop $chan) { /writeini %bot.inifile $+($chan,@,$network) youtube on }
elseif ($3 == status) && ($nick isop $chan) && (($readini(%bot.inifile,$+($chan,@,$network),youtube) == off) || (!$readini(%bot.inifile,$+($chan,@,$network),youtube))) && ($calc($ctime - %bot.youtubectime) > 3) { /msg $chan Youtube detector is set to OFF. }
elseif ($3 == status) && ($nick isop $chan) && ($readini(%bot.inifile,$+($chan,@,$network),youtube) == on) && ($calc($ctime - %bot.youtubectime) > 3) { /msg $chan Youtube detector is set to ON. }
/set -e %bot.youtubectime $ctime
}
;EOF