Advertisement
illpastethat

YouTube Script (Parse Vids and Search) v5.2

Nov 27th, 2013
439
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 17.15 KB | None | 0 0
  1. ;YouTube Script (Parse Vids and Search) v5.2
  2. ;Made by nick1
  3. ;Last edit November 27 2013
  4. ;For help/setup type /YouTube in mIRC
  5. ;2D0 -- Open to suggestions!
  6. ;EDITS -- bug fixes (no search limit set, bolded search words), code cleanup since last version, removed checkboxes, added badword line
  7.  
  8. alias -l yversion { return v5.2 }
  9.  
  10. menu status,channel,query { YouTube:youtube }
  11.  
  12. alias YouTube { dialog -m YouTube YouTube }
  13.  
  14. dialog Youtube {
  15.   title "YouTube v5.2"
  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.2 -- Post Bugs and Feature Requests Here", 24, 23 26 208 8, tab 10
  23.   text "Last updated on November 27 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 123 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 113 10, tab 2
  40.   check "Disable Formatting - Removes Colors and Bold", 22, 11 117 127 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 - Adds 'Uploaded: <Date>'", 57, 11 126 120 10, tab 2
  44.   check "Enable Rating - Adds 'Rating: <x/5>'", 59, 11 136 106 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.   text "This script created by nick1", 18, 179 2 66 8
  60. }
  61.  
  62. on *:dialog:youtube:init:0: {
  63.   FillChannelBox
  64.   FillNickBox
  65.   $iif(%_youtube.nocolor == true,did -c youtube 22,noop)
  66.   did -a youtube 58 $iif(%_youtube.limit == $null,1,%_youtube.limit)
  67.   $iif(%_youtube.noviews == true,did -c youtube 15,noop)
  68.   $iif(%_youtube.nolength == true,did -c youtube 16,noop)
  69.   $iif(%_youtube.nouser == true,did -c youtube 17,noop)
  70.   $iif(%_youtube.date == true,did -c youtube 57,noop)
  71.   $iif(%_youtube.rating == true,did -c youtube 59,noop)
  72.   $iif($group(#search) != on,did -c youtube 11,noop)
  73.   $iif($group(#parse) != on,did -c youtube 14,noop)  
  74. }
  75.  
  76. alias FillChannelBox {
  77.   did -r youtube 6
  78.   var %y 1
  79.   while (%y <= $numtok(%youtubefetch,44)) {
  80.     did -a youtube 6 $gettok(%youtubefetch,%y,44)
  81.     inc %y
  82.   }
  83. }
  84.  
  85. alias FillNickBox {
  86.   did -r youtube 71
  87.   var %y 1
  88.   while (%y <= $numtok(%nolinks,44)) {
  89.     did -a youtube 71 $gettok(%nolinks,%y,44)
  90.     inc %y
  91.   }
  92. }
  93. on *:dialog:youtube:edit:58: {
  94.   if (($did(58).text < 1) || ($did(58).text !isnum) && ($did(58).text != $null)) {
  95.     did -r youtube 58
  96.     noop $input(Enter a number between 1 and 9, owd, Invalid input!)
  97.   }
  98.   elseif ($did(58).text != $null) { set %_youtube.limit $did(58).text }
  99. }
  100. on *:dialog:youtube:sclick:*: {
  101.   if (($did == 1) || ($did == 24)) { run http://www.hawkee.com/snippet/8577/ }
  102.   elseif ($did == 66) { server -m irc.rizon.net:6667 -jn #rsbot_help }
  103.   elseif ($did == 22) { set %_youtube.nocolor $iif($did(22).state,true,false) }
  104.   elseif ($did == 15) { set %_youtube.noviews $iif($did(15).state,true,false) }
  105.   elseif ($did == 16) { set %_youtube.nolength $iif($did(16).state,true,false) }
  106.   elseif ($did == 17) { set %_youtube.nouser $iif($did(17).state,true,false) }
  107.   elseif ($did == 57) { set %_youtube.date $iif($did(57).state,true,false) }
  108.   elseif ($did == 59) { set %_youtube.rating $iif($did(59).state,true,false) }
  109.   elseif ($did == 11) { $iif($group(#search) == on,.disable,.enable) #search }
  110.   elseif ($did == 21) { yupdate }
  111.   elseif ($did == 14) { $iif($group(#parse) == on,.disable,.enable) #parse }
  112.   elseif ($did == 4) {
  113.     set %youtubefetch $addtok(%youtubefetch,$iif(($left($did(8),1) == $chr(35)),$did(8),$+($chr(35),$did(8))),44)
  114.     did -r youtube 8
  115.     FillChannelBox
  116.   }
  117.   elseif ($did == 73) {
  118.     set %nolinks $addtok(%nolinks,$did(69),44)
  119.     did -r youtube 69
  120.     FillNickBox
  121.   }
  122.   elseif ($did == 63) {
  123.     if ($did(8) != $null) {
  124.       set %youtubefetch $remtok(%youtubefetch,$iif(($left($did(8),1) == $chr(35)),$did(8),$+($chr(35),$did(8))),44)
  125.       did -r youtube 8
  126.     }
  127.     if ($did(6).seltext != $null) { set %youtubefetch $remtok(%youtubefetch,$did(6).seltext,44) }
  128.     FillChannelBox
  129.   }
  130.   elseif ($did == 3) { did -t youtube 4 }
  131.   elseif ($did == 26) { did -t youtube 73 }
  132.   elseif ($did == 72) {
  133.     if ($did(69) != $null) {
  134.       set %nolinks $remtok(%nolinks,$did(69),44)
  135.       did -r youtube 69
  136.     }
  137.     if ($did(71).seltext != $null) { set %nolinks $remtok(%nolinks,$did(71).seltext,44) }
  138.     FillNickBox
  139.   }
  140. }
  141.  
  142. raw 408:*: msg $2 $remove($strip($13-),$chr(9),$chr(8))
  143.  
  144. alias urlencode { return $replacex($regsubex($$1-,/([^\w\s])/Sg,$+(%,$base($asc(\t),10,16,2))),$chr(32),+,$chr(43),%2B) }
  145.  
  146. on $*:text:/^[!@](disableyt|offyt|disableyoutube|offyoutube)(\s|$)/Si:?: {
  147.   if ($2) {
  148.     if ($me ison $2) {
  149.       if ($nick isop $2) {
  150.         msg $nick 4Youtube has been10 disabled on $+(,$2,)
  151.         set %youtubefetch $addtok(%youtubefetch,$2,44)
  152.       }
  153.       else { msg $nick 4Sorry, you must be an10 op of $+(,$2,) to disable youtube there }
  154.     }
  155.     else { msg $nick 4Sorry, I am not10 currently in $+(,$2,) }
  156.   }
  157.   elseif ($2 == $null) { msg $nick 4Incorrect Syntax - Use10 $1 <#channel> }
  158. }
  159. on $*:text:/^[!@](enableyt|onyt|enableyoutube|onyoutube)(\s|$)/Si:?: {
  160.   if ($2) {
  161.     if ($me ison $2) {
  162.       if ($nick isop $2) {
  163.         msg $nick 4Youtube has been10 enabled on $+(,$2,)
  164.         set %youtubefetch $remtok(%youtubefetch,$2,44)
  165.       }
  166.       else { msg $nick 4Sorry, you must be an10 op of $+(,$2,) to enable youtube there }
  167.     }
  168.     else { msg $nick 4Sorry, I am not10 currently in $+(,$2,) }
  169.   }
  170.   elseif ($2 == $null) { msg $nick 4Incorrect Syntax - Use10 $1 <#channel> }
  171. }
  172.  
  173. #search on
  174. on $*:text:/^[!@]y(outube|t|tsearch|search|ousearch|outubesearch)(\s|$)/Si:*: {
  175.   $iif($istok(%youtubefetch,$chan,44),halt,noop)
  176.   $iif($istok(%nolinks,$nick,44),halt,noop)
  177.   if ($($+(%,botflood.,$nick),2)) {
  178.     if ($($+(%,botflood.,$nick),2) >= 50) {
  179.       ignore -u60 $address($nick,2)
  180.       msg $chan $+($nick,$chr(44)) You have been put on ignore for 60secs for abusing the bot.
  181.       halt
  182.     }
  183.     elseif ($($+(%,botflood.,$nick),2) >= 40) {
  184.       msg $chan $+($nick,$chr(44)) Please do not flood the bot.
  185.       inc -z $+(%,botflood.,$nick) 20
  186.       halt
  187.     }
  188.     else { inc -z $+(%,botflood.,$nick) 25 }
  189.   }
  190.   else { inc -z $+(%,botflood.,$nick) 25 }
  191.   var %ticks $ticks
  192.   if ($2) {
  193.     set $+(%,youtube.,%ticks,.msgtype) $iif($chan,$iif($left($strip($1),1) == @,msg $chan,notice $nick),msg $nick)
  194.     set $+(%,youtube.,%ticks,.search) $2-
  195.     set $+(%,youtube.,%ticks,.query) $urlencode($2-)
  196.     sockopen $+(youtube.,%ticks) gdata.youtube.com 80
  197.   }
  198.   elseif ($2 == $null) {
  199.     notice $nick 4Incorrect Syntax - Use10 $1 <search term>
  200.   }
  201. }
  202.  
  203. on *:input:*:{
  204.   $iif($istok(%nolinks,$active,44),return,noop)
  205.   $iif($istok(%youtubefetch,$active,44),return,noop)
  206.   var %ticks $ticks
  207.   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)) {
  208.     if ($left($1,1) != /) {
  209.       if ($2 != $null) {
  210.         set $+(%,youtube.,%ticks,.msgtype) msg $active
  211.         set $+(%,youtube.,%ticks,.search) $2-
  212.         set $+(%,youtube.,%ticks,.query) $urlencode($2-)
  213.         sockopen $+(youtube.,%ticks) gdata.youtube.com 80
  214.       }
  215.       elseif ($2 == $null) {
  216.         .timerYTInputSyntax -m 1 100 echo -at 4Incorrect Syntax - Use10 $1 <search term>
  217.       }
  218.     }
  219.   }
  220.   elseif ((*youtube.com* iswm $1-) || (*youtu.be* iswm $1-)) {
  221.     if ($left($1,1) != /) {
  222.       var %i 1
  223.       while (%i <= $numtok($1-,32)) {
  224.         if ((*youtube.com* iswm $($+($,%i),2)) || (*youtu.be* iswm $($+($,%i),2))) {
  225.           set $+(%,youtube.,%ticks,.url) $strip($($+($,%i),2))
  226.           var %tag $($+(%,youtube.,%ticks,.url),2)
  227.           var %tag $iif($matchtok(%tag,v=,1,38),$v1,%tag)
  228.           var %tag $deltok($deltok(%tag,2,35),2,38)
  229.           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),#!,/)
  230.         }
  231.         inc %i
  232.       }
  233.       if ($($+(%,youtube.,%ticks,.tag),2) == $null) {
  234.         unset $+(%,youtube.,%ticks,.*)
  235.       }
  236.       else {
  237.         set $+(%,youtube.,%ticks,.msgtype) msg $active
  238.         set $+(%,youtube.,%ticks,.nick) $nick
  239.         set $+(%,youtube.,%ticks,.chan) $chan
  240.         set $+(%,youtube.,%ticks,.network) $network
  241.         sockopen $+(youtube.,%ticks) gdata.youtube.com 80
  242.       }
  243.     }
  244.   }
  245. }
  246.  
  247. #search end
  248.  
  249. #parse on
  250. on $*:text:/youtu(.be|be.com)/Si:*: {
  251.   $iif($istok(%youtubefetch,$chan,44),halt,noop)
  252.   $iif($istok(%nolinks,$nick,44),halt,noop)
  253.   if ($($+(%,botflood.,$nick),2)) {
  254.     if ($($+(%,botflood.,$nick),2) >= 50) {
  255.       ignore -u60 $address($nick,2)
  256.       msg $chan $+($nick,$chr(44)) You have been put on ignore for 60secs for abusing the bot.
  257.       halt
  258.     }
  259.     elseif ($($+(%,botflood.,$nick),2) >= 40) {
  260.       msg $chan $+($nick,$chr(44)) Please do not flood the bot.  
  261.       inc -z $+(%,botflood.,$nick) 20
  262.       halt
  263.     }
  264.     else {
  265.       inc -z $+(%,botflood.,$nick) 10
  266.     }
  267.   }
  268.   else { inc -z $+(%,botflood.,$nick) 10 }
  269.   var %i 1
  270.   var %ticks $ticks
  271.   while (%i <= $numtok($1-,32)) {
  272.     if ((*youtube.com* iswm $($+($,%i),2)) || (*youtu.be* iswm $($+($,%i),2))) {
  273.       set $+(%,youtube.,%ticks,.url) $strip($($+($,%i),2))
  274.       var %tag $($+(%,youtube.,%ticks,.url),2)
  275.       var %tag $iif($matchtok(%tag,v=,1,38),$v1,%tag)
  276.       var %tag $deltok($deltok(%tag,2,35),2,38)
  277.       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),#!,/)
  278.     }
  279.     inc %i
  280.   }
  281.   set $+(%,youtube.,%ticks,.msgtype) msg $iif($chan,$v1,$nick)
  282.   if (($($+(%,youtube.,%ticks,.tag),2) != %_youtube.last) && ($($+(%,youtube.,%ticks,.tag),2) != $null)) {
  283.     set $+(%,youtube.,%ticks,.nick) $nick
  284.     set $+(%,youtube.,%ticks,.chan) $chan
  285.     set $+(%,youtube.,%ticks,.network) $network
  286.     sockopen $+(youtube.,%ticks) gdata.youtube.com 80
  287.   }
  288. }
  289.  
  290. #parse end
  291.  
  292. on *:sockopen:youtube*: {
  293.   var %ticks $remove($sockname,youtube.)
  294.   var %x sockwrite -nt $sockname
  295.   if ($($+(%,youtube.,%ticks,.search),2) != $null) {
  296.     %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
  297.   }
  298.   else {
  299.     %x GET $+(/feeds/api/videos/,$($+(%,youtube.,%ticks,.tag),2),?v=2&prettyprint=true) HTTP/1.1
  300.   }
  301.   %x Host: gdata.youtube.com
  302.   %x $crlf
  303. }
  304. alias nohtml { return $regsubex($$1-,/^[^<]*>|<[^>]*>|<[^>]*$/g,) }
  305. on *:SOCKREAD:youtube*: {
  306.   if ($sockerr) { echo -a SOCKET ERROR: $sockerr | halt }
  307.   else {
  308.     var %ticks $remove($sockname,youtube.)
  309.     var %sockreader
  310.     sockread %sockreader
  311.     if (*<title>* iswm %sockreader) {
  312.       set $+(%,youtube.,%ticks,.title) $replace($nohtml(%sockreader),&amp;quot;,",&amp;#39;,',&quot;,",&amp;,&,&#39;,',&quot;,")
  313.       if ($($+(%,youtube.,%ticks,.search),2) != $null) {
  314.         var %i 0
  315.         while (%i <= $numtok($($+(%,youtube.,%ticks,.search),2),32)) {
  316.           inc %i
  317.           set $+(%,youtube.,%ticks,.title) $regsubex($($+(%,youtube.,%ticks,.title),2), /\b( $gettok($($+(%,youtube.,%ticks,.search),2),%i,32) )\b/gix, $+($chr(2), \1, $chr(2)))
  318.         }
  319.       }
  320.       ;Badword replacement below--useful for bots that kick on badword list. Replace or add words to censor <word,replacement>
  321.       set $+(%,youtube.,%ticks,.title) $replace($($+(%,youtube.,%ticks,.title),2),faggot,f****t,nigger,n****r)
  322.     }
  323.     elseif (*<id>* iswm %sockreader) { set $+(%,youtube.,%ticks,.tag) $gettok($nohtml(%sockreader),4,58) }
  324.     elseif (*<name>* iswm %sockreader) { set $+(%,youtube.,%ticks,.user) $nohtml(%sockreader) }
  325.     elseif (*<yt:duration seconds='* iswm %sockreader) {
  326.       var %t $duration($gettok(%sockreader,2,39),3)
  327.       if (($gettok(%t,2,58) == 00) && ($gettok(%t,1,58) == 00)) {
  328.         %t = $puttok(%t,0,2,58)
  329.       }
  330.       if (($left($gettok(%t,2,58),1) == 0) && ($right($gettok(%t,2,58),1) != 0) && ($right($gettok(%t,2,58),1) isnum)) {
  331.         if ($gettok(%t,1,58) == 00) {
  332.           %t = $puttok(%t,$right($gettok(%t,2,58),1),2,58)
  333.         }
  334.       }
  335.       if (($left($gettok(%t,1,58),1) == 0) && ($right($gettok(%t,1,58),1) != 0) && ($right($gettok(%t,1,58),1) isnum)) {
  336.         %t = $puttok(%t,$right($gettok(%t,1,58),1),1,58)
  337.       }
  338.       $iif($gettok(%t,1,58) == 00,%t = $gettok(%t,2-3,58),noop)
  339.       set $+(%,youtube.,%ticks,.time) %t
  340.     }
  341.     elseif (*<yt:uploaded>* iswm %sockreader) { set $+(%,youtube.,%ticks,.date) $gettok($nohtml(%sockreader),1,84) }
  342.     elseif (*<gd:rating* iswm %sockreader) { set $+(%,youtube.,%ticks,.rating) $round($gettok(%sockreader,2,39),1) $+ /5 }
  343.     elseif (*viewCount='* iswm %sockreader) {
  344.       set $+(%,youtube.,%ticks,.viewcount) $bytes($gettok(%sockreader,4,39),bd)
  345.       set %_youtube.last $($+(%,youtube.,%ticks,.tag),2)
  346.       var %msg 1,0You0,4Tube $&
  347.         $iif($($+(%,youtube.,%ticks,.search),2) ==  $null,$null,10Link:4 http://youtu.be/ $+ $($+(%,youtube.,%ticks,.tag),2)) $&
  348.         10Title:4 $($+(%,youtube.,%ticks,.title),2) $&
  349.         $iif(%_youtube.noviews == true,$null,10Views:4 $($+(%,youtube.,%ticks,.viewcount),2)) $&
  350.         $iif(%_youtube.nolength == true,$null,10Length:4 $($+(%,youtube.,%ticks,.time),2)) $&
  351.         $iif(%_youtube.rating == true,$iif($($+(%,youtube.,%ticks,.rating),2) == $null,$null,10Rating:4 $($+(%,youtube.,%ticks,.rating),2)),$null) $&
  352.         $iif(%_youtube.date == true,10Uploaded:4 $($+(%,youtube.,%ticks,.date),2),$null) $&
  353.         $iif(%_youtube.nouser == true,$null,10User:4 $($+(%,youtube.,%ticks,.user),2))
  354.       $($+(%,youtube.,%ticks,.msgtype),2) $iif(%_youtube.nocolor == true,$strip(%msg),%msg)
  355.       inc $+(%,youtube.,%ticks,.number)
  356.       if ((%_youtube.limit == $($+(%,youtube.,%ticks,.number),2)) || ($($+(%,youtube.,%ticks,.search),2) == $null)) {
  357.         unset $+(%,youtube.,$remove($sockname,youtube.),*)
  358.         sockclose $sockname
  359.       }
  360.     }
  361.     elseif (*</feed>* iswm %sockreader) {
  362.       if ($($+(%,youtube.,%ticks,.number),2) == $null) {
  363.         var %msg 1,0You0,4Tube 10No relevant results were found. Try different search terms.
  364.         $($+(%,youtube.,%ticks,.msgtype),2) $iif(%_youtube.nocolor == true,$strip(%msg),%msg)
  365.       }
  366.       unset $+(%,youtube.,$remove($sockname,youtube.),*)
  367.       sockclose $sockname
  368.     }
  369.   }
  370. }
  371.  
  372. on *:sockclose:youtube*: { unset $+(%,youtube.,$remove($sockname,youtube.),*) }
  373.  
  374. on *:start: .timerYTUpdate 1 60 yupdate
  375.  
  376. alias yupdate {
  377.   echo -atc info 12[04YouTube12] Checking for updates...
  378.   sockopen yupdate www.hawkee.com 80
  379. }
  380.  
  381. on *:sockopen:yupdate: {  
  382.   sockwrite -nt $sockname GET /snippet/8577/ HTTP/1.1
  383.   sockwrite -nt $sockname Host: www.hawkee.com
  384.   sockwrite -nt $sockname $crlf
  385. }
  386.  
  387. on *:SOCKREAD:yupdate: {
  388.   if ($sockerr) { echo -a SOCKET ERROR: $sockerr | halt }
  389.   sockread %sockreader
  390.   if (*<title>* iswm %sockreader) {
  391.     var %x $gettok($nohtml(%sockreader),7,32)
  392.     echo -atc info 12[04YouTube12] Current: $yversion Latest: %x Status: $iif($yversion == %x,Up to date,Please update at www.hawkee.com/snippet/8577/)
  393.     unset %sockreader
  394.     sockclose $sockname
  395.   }
  396. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement