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

I had a go at updating myself:

;Youtube advanced search by Ford_Lawmower #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
    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 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:
    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!
    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,,$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
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
[11:47am] <&thunderbolt> Youtube Title: Halestorm - Daughters of Darkness Lyrics User: denestygg Added: 8 months ago Views: 258,190
[11:47am] <&thunderbolt> Youtube Title: Halestorm - I Miss The Misery [Official Video] User: HalestormRocks Added: 5 months ago Views: 2,357,340

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.