Advertisement
illpastethat

YouTube Script (Parse Vids and Search) v5.8

Mar 4th, 2015
633
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 20.29 KB | None | 0 0
  1. ;YouTube Script (Parse Vids and Search) v5.8
  2. ;Made by nick1
  3. ;Last edit March 04 2015
  4. ;For help/setup type /YouTube in mIRC
  5. ;2D0 -- Open to suggestions!
  6. ;EDITS -- Removed other $chr(9) for tabs, added options for likes, dislikes, and description (all disabled by default)
  7.  
  8. alias -l yversion { return v5.8 }
  9.  
  10. menu status,channel,query {
  11.   YouTube:youtube
  12. }
  13.  
  14. alias YouTube { dialog -m YouTube YouTube }
  15.  
  16. dialog Youtube {
  17.   title "YouTube v5.8"
  18.   size -1 -1 242 196
  19.   option dbu
  20.   icon $mircdirYoutube.ico, 0
  21.   link "View Script On Hawkee", 1, 3 2 59 8
  22.   button "Exit", 7, 88 181 72 12, cancel
  23.   tab "About", 10, 2 9 235 169
  24.   link "YouTube Script (Parse Vids and Search) v5.8 -- Post Bugs and Feature Requests Here", 24, 16 26 208 8, tab 10
  25.   text "Last updated on March 4 2015", 19, 7 66 95 8, tab 10
  26.   text "Please post suggestions, complaints, or bugs on the hawkee link (or in chat)", 20, 7 37 188 8, tab 10
  27.   text "!commands will notice the user; @commands will be public to the channel", 13, 7 93 175 8, tab 10
  28.   text "Default behavior is to run on every channel for every nick. Use the Nick and Channel Settings Tabs to change it for invidividual channels or nicks.", 65, 7 114 208 14, tab 10
  29.   link "Click here to chat (leave a message for nick1)", 66, 58 50 110 8, tab 10
  30.   text "Use the Basic Options Tab to adjust which parts of the script will run and basic formatting options.", 23, 7 142 195 13, tab 10
  31.   button "Check for Updates", 21, 91 64 54 12, tab 10
  32.   tab "Basic Options", 2
  33.   box "Search Commands/Options", 60, 7 52 209 29, tab 2
  34.   text "youtube <search terms>; ytsearch <search>; ysearch <search terms>", 62, 10 60 175 8, tab 2
  35.   box "Disable Options", 5, 7 23 209 27, tab 2
  36.   check "Disable Search - Disables search commands below", 11, 11 29 133 10, tab 2 flat
  37.   check "Disable Parse - Disables the script from automatically sending info", 14, 11 38 175 10, tab 2 flat
  38.   box "Output Options", 9, 7 83 209 92, tab 2
  39.   check "Disable Views - Removes 'Views: <Views>'", 15, 11 90 123 10, tab 2
  40.   check "Disable Length - Removes 'Length: <Length>'", 16, 11 99 130 10, tab 2
  41.   check "Disable User - Removes 'User: <User>'", 17, 11 108 113 10, tab 2
  42.   check "Disable Formatting - Removes Colors and Bold", 22, 11 117 127 10, tab 2
  43.   edit "", 58, 99 69 15 10, tab 2 limit 1
  44.   text "Number of search results displayed:", 25, 10 70 87 8, tab 2
  45.   check "Enable Date - Adds 'Uploaded: <Date>'", 57, 11 126 120 10, tab 2
  46.   check "Enable Rating - Adds 'Rating: <x/5>'", 59, 11 136 106 9, tab 2
  47.   check "Enable Likes - Adds 'Likes: <Likes>", 27, 11 145 130 10, tab 2
  48.   check "Enable Dislikes - Adds 'Dislikes: <Dislikes>", 28, 11 154 130 10, tab 2
  49.   check "Enable Description - Adds 'Description <Description>", 29, 11 163 139 10, tab 2
  50.   tab "Channel Settings", 3
  51.   list 6, 8 56 220 116, tab 3 sort size extsel vsbar
  52.   edit "", 8, 9 26 155 25, tab 3 multi autohs autovs
  53.   text "List of channels the script will NOT run on", 12, 48 50 101 6, tab 3
  54.   button "Add", 4, 190 25 37 12, tab 3
  55.   button "Remove", 63, 190 42 37 12, tab 3
  56.   button "Click here to enter #channels ...", 64, 10 27 153 23, tab 3
  57.   tab "Nick Settings", 26
  58.   text "List of nicks the script will NOT run for", 70, 48 50 101 6, tab 26
  59.   list 71, 8 56 220 116, tab 26 sort size extsel vsbar
  60.   button "Remove", 72, 190 42 37 12, tab 26
  61.   button "Add", 73, 190 25 37 12, tab 26
  62.   edit "", 69, 9 26 155 25, tab 26 multi autohs autovs
  63.   button "Click here to enter Nicks ...", 74, 10 27 153 23, tab 26
  64.   text "This script created by nick1", 18, 171 2 66 8
  65. }
  66.  
  67. on *:dialog:youtube:init:0: {
  68.   FillChannelBox
  69.   FillNickBox
  70.   $iif(%_youtube.nocolor == true,did -c youtube 22,noop)
  71.   did -a youtube 58 $iif(%_youtube.limit == $null,1,%_youtube.limit)
  72.   $iif(%_youtube.noviews == true,did -c youtube 15,noop)
  73.   $iif(%_youtube.nolength == true,did -c youtube 16,noop)
  74.   $iif(%_youtube.nouser == true,did -c youtube 17,noop)
  75.   $iif(%_youtube.date == true,did -c youtube 57,noop)
  76.   $iif(%_youtube.rating == true,did -c youtube 59,noop)
  77.   $iif(%_youtube.likes == true,did -c youtube 27,noop)
  78.   $iif(%_youtube.dislikes == true,did -c youtube 28,noop)
  79.   $iif(%_youtube.description == true,did -c youtube 29,noop)
  80.   $iif($group(#search) != on,did -c youtube 11,noop)
  81.   $iif($group(#parse) != on,did -c youtube 14,noop)  
  82. }
  83.  
  84. alias FillChannelBox {
  85.   did -r youtube 6
  86.   var %y 1
  87.   while (%y <= $numtok(%youtubefetch,44)) {
  88.     did -a youtube 6 $gettok(%youtubefetch,%y,44)
  89.     inc %y
  90.   }
  91. }
  92.  
  93. alias FillNickBox {
  94.   did -r youtube 71
  95.   var %y 1
  96.   while (%y <= $numtok(%nolinks,44)) {
  97.     did -a youtube 71 $gettok(%nolinks,%y,44)
  98.     inc %y
  99.   }
  100. }
  101. on *:dialog:youtube:edit:58: {
  102.   if (($did(58).text < 1) || ($did(58).text !isnum) && ($did(58).text != $null)) {
  103.     did -r youtube 58
  104.     noop $input(Enter a number between 1 and 9, owd, Invalid input!)
  105.   }
  106.   elseif ($did(58).text != $null) { set %_youtube.limit $did(58).text }
  107. }
  108. on *:dialog:youtube:sclick:*: {
  109.   if (($did == 1) || ($did == 24)) { run http://hawkee.com/snippet/8577/ }
  110.   elseif ($did == 66) { server -m irc.rizon.net:6667 -jn #rsbot_help }
  111.   elseif ($did == 22) { set %_youtube.nocolor $iif($did(22).state,true,false) }
  112.   elseif ($did == 15) { set %_youtube.noviews $iif($did(15).state,true,false) }
  113.   elseif ($did == 16) { set %_youtube.nolength $iif($did(16).state,true,false) }
  114.   elseif ($did == 17) { set %_youtube.nouser $iif($did(17).state,true,false) }
  115.   elseif ($did == 57) { set %_youtube.date $iif($did(57).state,true,false) }
  116.   elseif ($did == 59) { set %_youtube.rating $iif($did(59).state,true,false) }
  117.   elseif ($did == 27) { set %_youtube.likes $iif($did(27).state,true,false) }
  118.   elseif ($did == 28) { set %_youtube.dislikes $iif($did(28).state,true,false) }
  119.   elseif ($did == 29) { set %_youtube.description $iif($did(29).state,true,false) }
  120.   elseif ($did == 11) { $iif($group(#search) == on,.disable,.enable) #search }
  121.   elseif ($did == 21) { yupdate }
  122.   elseif ($did == 14) { $iif($group(#parse) == on,.disable,.enable) #parse }
  123.   elseif ($did == 4) {
  124.     set %youtubefetch $addtok(%youtubefetch,$iif(($left($did(8),1) == $chr(35)),$did(8),$+($chr(35),$did(8))),44)
  125.     did -r youtube 8
  126.     FillChannelBox
  127.   }
  128.   elseif ($did == 73) {
  129.     set %nolinks $addtok(%nolinks,$did(69),44)
  130.     did -r youtube 69
  131.     FillNickBox
  132.   }
  133.   elseif ($did == 63) {
  134.     if ($did(8) != $null) {
  135.       set %youtubefetch $remtok(%youtubefetch,$iif(($left($did(8),1) == $chr(35)),$did(8),$+($chr(35),$did(8))),44)
  136.       did -r youtube 8
  137.     }
  138.     if ($did(6).seltext != $null) { set %youtubefetch $remtok(%youtubefetch,$did(6).seltext,44) }
  139.     FillChannelBox
  140.   }
  141.   elseif ($did == 3) { did -t youtube 4 }
  142.   elseif ($did == 26) { did -t youtube 73 }
  143.   elseif ($did == 72) {
  144.     if ($did(69) != $null) {
  145.       set %nolinks $remtok(%nolinks,$did(69),44)
  146.       did -r youtube 69
  147.     }
  148.     if ($did(71).seltext != $null) { set %nolinks $remtok(%nolinks,$did(71).seltext,44) }
  149.     FillNickBox
  150.   }
  151. }
  152.  
  153. raw 408:*: msg $2 $remove($strip($13-),$chr(9),$chr(8))
  154.  
  155. alias urlencode { return $replacex($regsubex($$1-,/([^\w\s])/Sg,$+(%,$base($asc(\t),10,16,2))),$chr(32),+,$chr(43),%2B) }
  156.  
  157. on $*:text:/^[!@](disableyt|offyt|disableyoutube|offyoutube)(\s|$)/Si:?: {
  158.   if ($2) {
  159.     if ($me ison $2) {
  160.       if ($nick isop $2) {
  161.         msg $nick 4Youtube has been10 disabled on $+(,$2,)
  162.         set %youtubefetch $addtok(%youtubefetch,$2,44)
  163.       }
  164.       else { msg $nick 4Sorry, you must be an10 op of $+(,$2,) to disable youtube there }
  165.     }
  166.     else { msg $nick 4Sorry, I am not10 currently in $+(,$2,) }
  167.   }
  168.   elseif ($2 == $null) { msg $nick 4Incorrect Syntax - Use10 $1 <#channel> }
  169. }
  170. on $*:text:/^[!@](enableyt|onyt|enableyoutube|onyoutube)(\s|$)/Si:?: {
  171.   if ($2) {
  172.     if ($me ison $2) {
  173.       if ($nick isop $2) {
  174.         msg $nick 4Youtube has been10 enabled on $+(,$2,)
  175.         set %youtubefetch $remtok(%youtubefetch,$2,44)
  176.       }
  177.       else { msg $nick 4Sorry, you must be an10 op of $+(,$2,) to enable youtube there }
  178.     }
  179.     else { msg $nick 4Sorry, I am not10 currently in $+(,$2,) }
  180.   }
  181.   elseif ($2 == $null) { msg $nick 4Incorrect Syntax - Use10 $1 <#channel> }
  182. }
  183.  
  184. #search on
  185. on $*:text:/^[!@]y(outube|t|tsearch|search|ousearch|outubesearch)(\s|$)/Si:*: {
  186.   $iif($istok(%youtubefetch,$chan,44),halt,noop)
  187.   $iif($istok(%nolinks,$nick,44),halt,noop)
  188.   if ($($+(%,botflood.,$nick),2)) {
  189.     if ($($+(%,botflood.,$nick),2) >= 50) {
  190.       ignore -u60 $address($nick,2)
  191.       msg $chan $+($nick,$chr(44)) You have been put on ignore for 60secs for abusing the bot.
  192.       halt
  193.     }
  194.     elseif ($($+(%,botflood.,$nick),2) >= 40) {
  195.       msg $chan $+($nick,$chr(44)) Please do not flood the bot.
  196.       inc -z $+(%,botflood.,$nick) 20
  197.       halt
  198.     }
  199.     else { inc -z $+(%,botflood.,$nick) 25 }
  200.   }
  201.   else { inc -z $+(%,botflood.,$nick) 25 }
  202.   var %ticks $ticks
  203.   if ($2) {
  204.     set $+(%,youtube.,%ticks,.msgtype) $iif($chan,$iif($left($strip($1),1) == @,msg $chan,notice $nick),msg $nick)
  205.     set $+(%,youtube.,%ticks,.search) $2-
  206.     set $+(%,youtube.,%ticks,.query) $urlencode($2-)
  207.     sockopen $+(youtube.,%ticks) gdata.youtube.com 80
  208.   }
  209.   elseif ($2 == $null) {
  210.     notice $nick 4Incorrect Syntax - Use10 $1 <search term>
  211.   }
  212. }
  213.  
  214. on *:input:*:{
  215.   $iif($istok(%nolinks,$active,44),return,noop)
  216.   $iif($istok(%youtubefetch,$active,44),return,noop)
  217.   var %ticks $ticks
  218.   if (($remove($1,$left($strip($1),1)) == ysearch) || ($remove($1,$left($strip($1),1)) == ytsearch) || ($remove($1,$left($strip($1),1)) == youtube) || ($remove($1,$left($strip($1),1)) == yt) || ($remove($1,$left($strip($1),1)) == youtubesearch)) {
  219.     if ($left($1,1) != /) {
  220.       if ($2 != $null) {
  221.         set $+(%,youtube.,%ticks,.msgtype) msg $active
  222.         set $+(%,youtube.,%ticks,.search) $2-
  223.         set $+(%,youtube.,%ticks,.query) $urlencode($2-)
  224.         sockopen $+(youtube.,%ticks) gdata.youtube.com 80
  225.       }
  226.       elseif ($2 == $null) {
  227.         .timerYTInputSyntax -m 1 100 echo -at 4Incorrect Syntax - Use10 $1 <search term>
  228.       }
  229.     }
  230.   }
  231.   elseif ((*youtube.com* iswm $1-) || (*youtu.be* iswm $1-)) {
  232.     if ($left($1,1) != /) {
  233.       var %i 1
  234.       while (%i <= $numtok($1-,32)) {
  235.         if ((*youtube.com* iswm $($+($,%i),2)) || (*youtu.be* iswm $($+($,%i),2))) {
  236.           set $+(%,youtube.,%ticks,.url) $strip($($+($,%i),2))
  237.           var %tag $($+(%,youtube.,%ticks,.url),2)
  238.           var %tag $iif($matchtok(%tag,v=,1,38),$v1,%tag)
  239.           var %tag $deltok($deltok(%tag,2,35),2,38)
  240.           if (*youtu.be* iswm %tag) { var %tag $gettok(%tag,1,63) }
  241.           set $+(%,youtube.,%ticks,.tag) $remove(%tag,?,m.,v=,/watch?src_vid=,https://,http://,www.,/v/,youtube.com,youtu.be,youtu.be/,/watch?v=,/watch,?v=,$chr(31),#!,/)
  242.         }
  243.         inc %i
  244.       }
  245.       if ($($+(%,youtube.,%ticks,.tag),2) == $null) {
  246.         unset $+(%,youtube.,%ticks,.*)
  247.       }
  248.       else {
  249.         set $+(%,youtube.,%ticks,.msgtype) msg $active
  250.         set $+(%,youtube.,%ticks,.nick) $nick
  251.         set $+(%,youtube.,%ticks,.chan) $chan
  252.         set $+(%,youtube.,%ticks,.network) $network
  253.         sockopen $+(youtube.,%ticks) gdata.youtube.com 80
  254.       }
  255.     }
  256.   }
  257. }
  258.  
  259. #search end
  260.  
  261. #parse on
  262. on $*:text:/youtu(.be|be.com)/Si:*: {
  263.   $iif($istok(%youtubefetch,$chan,44),halt,noop)
  264.   $iif($istok(%nolinks,$nick,44),halt,noop)
  265.   if ($($+(%,botflood.,$nick),2)) {
  266.     if ($($+(%,botflood.,$nick),2) >= 50) {
  267.       ignore -u60 $address($nick,2)
  268.       msg $chan $+($nick,$chr(44)) You have been put on ignore for 60secs for abusing the bot.
  269.       halt
  270.     }
  271.     elseif ($($+(%,botflood.,$nick),2) >= 40) {
  272.       msg $chan $+($nick,$chr(44)) Please do not flood the bot.  
  273.       inc -z $+(%,botflood.,$nick) 20
  274.       halt
  275.     }
  276.     else {
  277.       inc -z $+(%,botflood.,$nick) 10
  278.     }
  279.   }
  280.   else { inc -z $+(%,botflood.,$nick) 10 }
  281.   var %i 1
  282.   var %ticks $ticks
  283.   while (%i <= $numtok($1-,32)) {
  284.     if ((*youtube.com* iswm $($+($,%i),2)) || (*youtu.be* iswm $($+($,%i),2))) {
  285.       set $+(%,youtube.,%ticks,.url) $strip($($+($,%i),2))
  286.       var %tag $($+(%,youtube.,%ticks,.url),2)
  287.       var %tag $iif($matchtok(%tag,v=,1,38),$v1,%tag)
  288.       var %tag $deltok($deltok(%tag,2,35),2,38)
  289.       if (*youtu.be* iswm %tag) { var %tag $gettok(%tag,1,63) }
  290.       set $+(%,youtube.,%ticks,.tag) $remove(%tag,?,m.,v=,/watch?src_vid=,https://,http://,www.,/v/,youtube.com,youtu.be,youtu.be/,/watch?v=,/watch,?v=,$chr(31),#!,/)
  291.     }
  292.     inc %i
  293.   }
  294.   set $+(%,youtube.,%ticks,.msgtype) msg $iif($chan,$v1,$nick)
  295.   if (($($+(%,youtube.,%ticks,.tag),2) != %_youtube.last) && ($($+(%,youtube.,%ticks,.tag),2) != $null)) {
  296.     set $+(%,youtube.,%ticks,.nick) $nick
  297.     set $+(%,youtube.,%ticks,.chan) $chan
  298.     set $+(%,youtube.,%ticks,.network) $network
  299.     sockopen $+(youtube.,%ticks) gdata.youtube.com 80
  300.   }
  301. }
  302. on $*:action:/youtu(.be|be.com)/Si:*: {
  303.   $iif($istok(%youtubefetch,$chan,44),halt,noop)
  304.   $iif($istok(%nolinks,$nick,44),halt,noop)
  305.   if ($($+(%,botflood.,$nick),2)) {
  306.     if ($($+(%,botflood.,$nick),2) >= 50) {
  307.       ignore -u60 $address($nick,2)
  308.       msg $chan $+($nick,$chr(44)) You have been put on ignore for 60secs for abusing the bot.
  309.       halt
  310.     }
  311.     elseif ($($+(%,botflood.,$nick),2) >= 40) {
  312.       msg $chan $+($nick,$chr(44)) Please do not flood the bot.  
  313.       inc -z $+(%,botflood.,$nick) 20
  314.       halt
  315.     }
  316.     else {
  317.       inc -z $+(%,botflood.,$nick) 10
  318.     }
  319.   }
  320.   else { inc -z $+(%,botflood.,$nick) 10 }
  321.   var %i 1
  322.   var %ticks $ticks
  323.   while (%i <= $numtok($1-,32)) {
  324.     if ((*youtube.com* iswm $($+($,%i),2)) || (*youtu.be* iswm $($+($,%i),2))) {
  325.       set $+(%,youtube.,%ticks,.url) $strip($($+($,%i),2))
  326.       var %tag $($+(%,youtube.,%ticks,.url),2)
  327.       var %tag $iif($matchtok(%tag,v=,1,38),$v1,%tag)
  328.       var %tag $deltok($deltok(%tag,2,35),2,38)
  329.       if (*youtu.be* iswm %tag) { var %tag $gettok(%tag,1,63) }
  330.       set $+(%,youtube.,%ticks,.tag) $remove(%tag,?,m.,v=,/watch?src_vid=,https://,http://,www.,/v/,youtube.com,youtu.be,youtu.be/,/watch?v=,/watch,?v=,$chr(31),#!,/)
  331.     }
  332.     inc %i
  333.   }
  334.   set $+(%,youtube.,%ticks,.msgtype) msg $iif($chan,$v1,$nick)
  335.   if (($($+(%,youtube.,%ticks,.tag),2) != %_youtube.last) && ($($+(%,youtube.,%ticks,.tag),2) != $null)) {
  336.     set $+(%,youtube.,%ticks,.nick) $nick
  337.     set $+(%,youtube.,%ticks,.chan) $chan
  338.     set $+(%,youtube.,%ticks,.network) $network
  339.     sockopen $+(youtube.,%ticks) gdata.youtube.com 80
  340.   }
  341. }
  342.  
  343. #parse end
  344.  
  345. on *:sockopen:youtube*: {
  346.   var %ticks $remove($sockname,youtube.)
  347.   var %x sockwrite -nt $sockname
  348.   if ($($+(%,youtube.,%ticks,.search),2) != $null) {
  349.     %x GET $+(/feeds/api/videos?q=,$($+(%,youtube.,%ticks,.query),2),&v=2&prettyprint=true&max-results=,$iif(%_youtube.limit == $null,1,%_youtube.limit)) HTTP/1.1
  350.   }
  351.   else {
  352.     %x GET $+(/feeds/api/videos/,$($+(%,youtube.,%ticks,.tag),2),?v=2&prettyprint=true) HTTP/1.1
  353.   }
  354.   %x Host: gdata.youtube.com
  355.   %x $crlf
  356. }
  357. alias nohtml { return $regsubex($$1-,/^[^<]*>|<[^>]*>|<[^>]*$/g,) }
  358. on *:SOCKREAD:youtube*: {
  359.   if ($sockerr) { echo -a SOCKET ERROR: $sockerr | halt }
  360.   else {
  361.     var %ticks $remove($sockname,youtube.)
  362.     var %sockreader
  363.     sockread %sockreader
  364.     if (*<title>* iswm %sockreader) {
  365.       set $+(%,youtube.,%ticks,.title) $replace($nohtml(%sockreader),$chr(9),$null,&amp;quot;,",&amp;#39;,',&quot;,",&amp;,&,&#39;,',&quot;,")
  366.       if ($($+(%,youtube.,%ticks,.search),2) != $null) {
  367.         var %i 0
  368.         while (%i <= $numtok($($+(%,youtube.,%ticks,.search),2),32)) {
  369.           inc %i
  370.           set $+(%,youtube.,%ticks,.title) $regsubex($($+(%,youtube.,%ticks,.title),2), /\b( $gettok($($+(%,youtube.,%ticks,.search),2),%i,32) )\b/gix, $+($chr(2), \1, $chr(2)))
  371.         }
  372.       }
  373.       ;Badword replacement below--useful for bots that kick on badword list. Replace or add words to censor <word,replacement>
  374.       set $+(%,youtube.,%ticks,.title) $replace($($+(%,youtube.,%ticks,.title),2),faggot,f****t,nigger,n****r)
  375.     }
  376.     elseif (*<id>* iswm %sockreader) { set $+(%,youtube.,%ticks,.tag) $gettok($nohtml(%sockreader),4,58) }
  377.     elseif (*<name>* iswm %sockreader) { set $+(%,youtube.,%ticks,.user) $nohtml(%sockreader) }
  378.     elseif (*<yt:duration seconds='* iswm %sockreader) {
  379.       var %t $duration($gettok(%sockreader,2,39),3)
  380.       if (($gettok(%t,2,58) == 00) && ($gettok(%t,1,58) == 00)) {
  381.         %t = $puttok(%t,0,2,58)
  382.       }
  383.       if (($left($gettok(%t,2,58),1) == 0) && ($right($gettok(%t,2,58),1) != 0) && ($right($gettok(%t,2,58),1) isnum)) {
  384.         if ($gettok(%t,1,58) == 00) {
  385.           %t = $puttok(%t,$right($gettok(%t,2,58),1),2,58)
  386.         }
  387.       }
  388.       if (($left($gettok(%t,1,58),1) == 0) && ($right($gettok(%t,1,58),1) != 0) && ($right($gettok(%t,1,58),1) isnum)) {
  389.         %t = $puttok(%t,$right($gettok(%t,1,58),1),1,58)
  390.       }
  391.       $iif($gettok(%t,1,58) == 00,%t = $gettok(%t,2-3,58),noop)
  392.       set $+(%,youtube.,%ticks,.time) %t
  393.     }
  394.     elseif (*<yt:uploaded>* iswm %sockreader) { set $+(%,youtube.,%ticks,.date) $gettok($nohtml(%sockreader),1,84) }
  395.     elseif (*media:description type='plain* iswm %sockreader) { set $+(%,youtube.,%ticks,.description) $nohtml(%sockreader) }
  396.     elseif (*<gd:rating* iswm %sockreader) { set $+(%,youtube.,%ticks,.rating) $round($gettok(%sockreader,2,39),1) $+ /5 }
  397.     elseif (*viewCount='* iswm %sockreader) { set $+(%,youtube.,%ticks,.viewcount) $bytes($gettok(%sockreader,4,39),bd)  }
  398.     elseif (*<yt:rating* iswm %sockreader) {
  399.       set $+(%,youtube.,%ticks,.dislikes) $bytes($gettok(%sockreader,2,39),bd)
  400.       set $+(%,youtube.,%ticks,.likes) $bytes($gettok(%sockreader,4,39),bd)
  401.       set %_youtube.last $($+(%,youtube.,%ticks,.tag),2)
  402.       $iif($($+(%,youtube.,%ticks,.viewcount),2) == 301,set $+(%,youtube.,%ticks,.viewcount) 301+,noop)
  403.       var %msg 1,0You0,4Tube $&
  404.         $iif($($+(%,youtube.,%ticks,.search),2) ==  $null,$null,10Link:4 http://youtu.be/ $+ $($+(%,youtube.,%ticks,.tag),2)) $&
  405.         10Title:4 $($+(%,youtube.,%ticks,.title),2) $&
  406.         $iif(%_youtube.noviews == true,$null,10Views:4 $($+(%,youtube.,%ticks,.viewcount),2)) $&
  407.         $iif(%_youtube.nolength == true,$null,10Length:4 $($+(%,youtube.,%ticks,.time),2)) $&
  408.         $iif(%_youtube.rating == true,$iif($($+(%,youtube.,%ticks,.rating),2) == $null,$null,10Rating:4 $($+(%,youtube.,%ticks,.rating),2)),$null) $&
  409.         $iif(%_youtube.date == true,10Uploaded:4 $($+(%,youtube.,%ticks,.date),2),$null) $&
  410.         $iif(%_youtube.nouser == true,$null,10User:4 $($+(%,youtube.,%ticks,.user),2)) $&
  411.         $iif(%_youtube.likes == true,10Likes:4 $($+(%,youtube.,%ticks,.likes),2),$null) $&
  412.         $iif(%_youtube.dislikes == true,10Dislikes:4 $($+(%,youtube.,%ticks,.dislikes),2),$null) $&
  413.         $iif(%_youtube.description == true,10Description:4 $($+(%,youtube.,%ticks,.description),2),$null)
  414.       var %msg = $remove(%msg,$chr(9))
  415.       $($+(%,youtube.,%ticks,.msgtype),2) $iif(%_youtube.nocolor == true,$strip(%msg),%msg)
  416.       inc $+(%,youtube.,%ticks,.number)
  417.       if ((%_youtube.limit == $($+(%,youtube.,%ticks,.number),2)) || ($($+(%,youtube.,%ticks,.search),2) == $null)) {
  418.         unset $+(%,youtube.,$remove($sockname,youtube.),*)
  419.         sockclose $sockname
  420.       }
  421.     }
  422.     elseif (*</feed>* iswm %sockreader) {
  423.       if ($($+(%,youtube.,%ticks,.number),2) == $null) {
  424.         var %msg 1,0You0,4Tube 10No relevant results were found. Try different search terms.
  425.         $($+(%,youtube.,%ticks,.msgtype),2) $iif(%_youtube.nocolor == true,$strip(%msg),%msg)
  426.       }
  427.       unset $+(%,youtube.,$remove($sockname,youtube.),*)
  428.       sockclose $sockname
  429.     }
  430.   }
  431. }
  432.  
  433. on *:sockclose:youtube*: { unset $+(%,youtube.,$remove($sockname,youtube.),*) }
  434.  
  435. on *:start: .timerYTUpdate 1 60 yupdate
  436.  
  437. alias yupdate {
  438.   echo -atc info 12[04YouTube12] Checking for updates...
  439.   sockopen yupdate hawkee.com 80
  440. }
  441.  
  442. on *:sockopen:yupdate: {  
  443.   sockwrite -nt $sockname GET /snippet/8577/ HTTP/1.1
  444.   sockwrite -nt $sockname Host: hawkee.com
  445.   sockwrite -nt $sockname $crlf
  446. }
  447.  
  448. on *:SOCKREAD:yupdate: {
  449.   if ($sockerr) { echo -a SOCKET ERROR: $sockerr | halt }
  450.   sockread %sockreader
  451.   if (*<title>* iswm %sockreader) {
  452.     var %x $gettok($nohtml(%sockreader),7,32)
  453.     echo -atc info 12[04YouTube12] Current: $yversion Latest: %x Status: $iif($yversion == %x,Up to date,Please update at http://hawkee.com/snippet/8577/)
  454.     unset %sockreader
  455.     sockclose $sockname
  456.   }
  457. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement