Stewie1k94 commented on a Page, Youtube advanced search  -  Dec 14, 2012

I had a go at updating myself:

;Youtube advanced search by Ford_Lawmower irc.GeekShed.net #Script-Help
alias -l GetYoutube {
  var %MaxResults 3
  var %TitleColor $+($chr(3),$chr(2))
  var %TextColor $+($chr(2),$chr(3),04)
  var %LinkColor $+($chr(3),$chr(31))
  var %logo $+($chr(3),14,Y,$chr(3),04,outube) $chr(7)
  $1-2 %logo %TitleColor Searching Youtube........  
  var %sockname $+(YoutubeAdvancedSearch,$network,$2,$ticks), %yt.url $replace($3-,$chr(32),+)
  if ($left($3,1) == -) {
    if ($3 == -h || !$4) {
      $1-2 Syntax is !Youtube search words here. Optionally, you can change the search type by adding a search flag directly after !youtube and before The search word(s)
      $1-2 Valid search flags are -n (newest) -o (oldest) -v (view count) -r (rating) . Ex. !Youtube -n jimi hendrix  <<-- Will show the 3 newest posts with jimi hendrix in them.
      $1-2 You can also use the @ trigger to message the channel if you have halfops or higher. Ex. @Youtube jimi hendrix
      return
    }  
    elseif ($3 == -n) { var %SearchType &search_sort=video_date_uploaded }
    elseif ($3 == -o) { var %SearchType &search_sort=video_date_uploaded_reverse }
    elseif ($3 == -v) { var %SearchType &search_sort=video_view_count }
    elseif ($3 == -r) { var %SearchType &search_sort=video_avg_rating }
    %yt.url = $replace($4-,$chr(32),+) $+ %SearchType
  }
  var %yt.url $replace($iif(- isin $3,$4-,$3-),$chr(32),+) $+ %SearchType
  sockopen %sockname www.youtube.com 80
  sockmark %sockname $1-2 $+(/results?search_type=&aq=f&search_query=,%yt.url,&hl=en) %MaxResults %TitleColor %TextColor %LinkColor %logo
}
menu Channel,Status {
  .$iif($group(#Youtube) == On,$style(1)) Youtube Trigger
  ..$iif($group(#Youtube) == On,$style(2)) On: .enable #Youtube
  ..$iif($group(#Youtube) == Off,$style(2)) Off: .disable #Youtube
}
#Youtube on
On $*:Text:/^(\+|-|!|@)Youtube.*/Si:#: {
  var %action $regml(1)
  if (%action isin +-) && ($regex($nick($chan,$nick).pnick,/(!|~|&|@)/)) {
    if (%action == +) {
      if ($istok(%YoutubeChanList,$+($network,$chan),32)) { .msg $chan $nick $chan is already running the Youtube script }
      else { 
        .enable #Youtube
        Set %YoutubeChanList $addtok(%YoutubeChanList,$+($network,$chan),32)
        .msg $chan $nick has activated the Youtube script for $chan .
      }
    }
    else {
      if (!$istok(%YoutubeChanList,$+($network,$chan),32)) { .msg $chan $nick $chan is not running the Youtube script }
      else { 
        Set %YoutubeChanList $remtok(%YoutubeChanList,$+($network,$chan),1,32)
        .msg $chan $nick has deactivated the Youtube script for $chan . 
      }
    }
  }
  elseif (!$timer($+(Youtube,$network,$nick))) && ($istok(%YoutubeChanList,$+($network,$chan),32)) {
    .timer $+ $+(Youtube,$network,$nick) 1 6 noop
    var %method $iif(%action == !,.notice $nick,$iif($regex($nick($chan,$nick).pnick,/(!|~|&|@|%)/),.msg $chan,.notice $nick))
    GetYoutube %method $strip($2-)
  }
}
#Youtube end
On *:sockopen:YoutubeAdvancedSearch*: {
  if (!$sockerr) {
    sockwrite -nt $sockname GET $gettok($sock($sockname).mark,3,32) HTTP/1.0
    sockwrite -n $sockname Host: www.youtube.com
    sockwrite -n $sockname $crlf
  }
  else { echo -st Socket Error $nopath($script) | youtube.cleanup }
}
On *:sockread:YoutubeAdvancedSearch*: {
  if ($sockerr) { echo -st Socket Error $nopath($script) | youtube.cleanup }
  else {
    var %Youtube | sockread %Youtube
    if (No video results isin %Youtube) {
      $gettok($sock($sockname).mark,1-2,32) No results were found for your search!
      youtube.cleanup
    }
    elseif ($regex(%Youtube,/data-context-item-title="(.*?)"/i)) hadd -m $sockname title $fix($regml(1))
    elseif ($regex(%Youtube,/data-video-ids="(.*?)"/i)) hadd -m $sockname id $regml(1)
    elseif ($regex(%Youtube,/dir="ltr">(.*?)<\/a><span class="metadata-separator">(.*?)<span class="metadata-separator">(.*?) views/i)) {
      hinc -m $sockname count      
      var %s $sockname
      tokenize 32 $sock(%s).mark
      $1-2 $8- $+($5,Title:,$6) $remove($hget(%s,title),<b>,</b>) $+($5,User:,$6) $regml(1) $+($5,Added:,$6) $remove($regml(2),</span>,&bull;) $+($5,Views:,$6) $remove($regml(3),</span>,&bull;) $+($7,http://www.youtube.com/watch?v=,$hget(%s,id))
      if ($hget(%s,count) >= $4) youtube.cleanup      
    }
  }
}
On *:sockclose:YoutubeAdvancedSearch*: youtube.cleanup
alias -l youtube.cleanup {
  if ($hget($sockname)) hfree $v1
  sockclose $sockname
  return
}
alias Youtube { GetYoutube echo -a $1- }
alias -l fix { return $regsubex($remove($replace($1-,&amp;,&,&quot;,"),amp;,<b>,</b>),/&#([0-9]{2});/gi,$chr(\t)) }

[11:47am] <~Stewie> @Youtube Halestorm
[11:47am] <&thunderbolt> Youtube Searching Youtube........
[11:47am] <&thunderbolt> Youtube Title: Halestorm - Bad Romance (cover) HD User: britton stallard Added: 1 year ago Views: 306,257 http://www.youtube.com/watch?v=ZO7NN9w9Z_g
[11:47am] <&thunderbolt> Youtube Title: Halestorm - Daughters of Darkness Lyrics User: denestygg Added: 8 months ago Views: 258,190 http://www.youtube.com/watch?v=3XQ1FB3Rz0g
[11:47am] <&thunderbolt> Youtube Title: Halestorm - I Miss The Misery [Official Video] User: HalestormRocks Added: 5 months ago Views: 2,357,340 http://www.youtube.com/watch?v=YpJAmlnBxoA

 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.