Advertisement
illpastethat

YouTube Script (Parse Vids and Search) v5.1

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