Advertisement
Guest User

Untitled

a guest
May 5th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 4.43 KB | None | 0 0
  1.  
  2.  
  3.  if (($input =~ m/youtube\.com\/watch\?[^v]*v=([a-zA-Z0-9-_]*)/i)||($input =~ m/youtu\.be\/([a-zA-Z0-9-_]*)/i)) {
  4.    $message = do_youtube($1);
  5.  }
  6.  
  7.  
  8. sub do_youtube { # This function is called anytime a Youtube URL is encountered.
  9.   $ytid = $_[0];
  10.   if (int($ytlock{'YT!'.$ytid}) < time) {
  11.     $ytlock{'YT!'.$ytid} = time + 5*60;
  12.     if (length($ytlock{'YTC!'.$ytid}) > 1) {
  13.       $message = $ytlock{'YTC!'.$ytid};
  14.     }
  15.     else
  16.     {
  17.       $response = $ua->get('https://www.googleapis.com/youtube/v3/videos?id='.$ytid.'&key='.$botytkey.'&fields=items(snippet(title),contentDetails(duration),statistics(viewCount,likeCount,dislikeCount))&part=snippet,contentDetails,statistics');
  18.       $rbody = $response->decoded_content;
  19.       $ytline = "fail";
  20.       if ($rbody =~ m/^\{\n\s\"items\"\:\s\[\n\s\s\{\n\s\s\s\"snippet\"\:\s\{\n\s\s\s\s\"title\"\:\s\"(.*)\"\n\s\s\s\}\,\n\s\s\s\"contentDetails\"\:\s\{\n\s\s\s\s\"duration\"\:\s\"([PTHMS0123456789]*)\"\n\s\s\s\}\,\n\s\s\s\"statistics\"\:\s\{\n\s\s\s\s\"viewCount\"\:\s\"(\d*)\"\,\n\s\s\s\s\"likeCount\"\:\s\"(\d*)\"\,\n\s\s\s\s\"dislikeCount\"\:\s\"(\d*)\"\n\s\s\s\}\n\s\s\}\n\s\]\n\}$/s) {
  21.         $duration = $2;
  22.         $ytline = $1;
  23.         $views = $3;
  24.         $likes = $4;
  25.         $dislikes = $5;
  26.         if (int($likes) == 0) {
  27.           $likes = 1;
  28.         }
  29.         $percentage = int((int($likes) / int(int($likes) + int($dislikes)))*100);
  30.         $views = numprettify($views);
  31.         $duration =~ s/^PT(\d+H)?(\d+M)?(\d+S)?$/$1:$2:$3/;
  32.         $duration =~ s/[HMS]*//g;
  33.         ($hours, $minutes, $seconds) = split(":", $duration);
  34.         $hours = int($hours);
  35.         $minutes = int($minutes);
  36.         $seconds = int($seconds);
  37.         $subject = " visningar";
  38.         if (int($hours) > 0) {
  39.           if (int($minutes) < 10) {
  40.             $minutes = "0".$minutes;
  41.           }
  42.           if (int($seconds) < 10) {
  43.             $seconds = "0".$seconds;
  44.           }
  45.           $fulldur = "[".$hours.":".$minutes.":".$seconds."] ";
  46.         }
  47.         else
  48.         {
  49.           if (int($seconds) < 10) {
  50.             $seconds = "0".$seconds;
  51.           }
  52.           $fulldur = "[".$minutes.":".$seconds."] ";
  53.           if ($fulldur eq "[0:00] ") {
  54.             $fulldur = "[S\xC4NDNING] ";
  55.             $subject = " tittare";
  56.           }
  57.         }
  58.         $ytline =~ s/\\//sgi;
  59.         $ytline =~ s/ä/\xE4/sg;
  60.         $ytline =~ s/å/\xE5/sg;
  61.         $ytline =~ s/ö/\xF6/sg;
  62.         $ytline =~ s/Ä/\xC4/sg;
  63.         $ytline =~ s/Å/\xC5/sg;
  64.         $ytline =~ s/Ö/\xD6/sg;
  65.         $ytline = $ytline . " - " . $fulldur . $views . $subject . " (Gillas: ".$percentage."\%)";
  66.       }
  67.       unless ($ytline eq "fail") {
  68.         $ytlock{'YTC!'.$ytid} = $ytline;
  69.         $message = $ytline;
  70.       }
  71.     }
  72.   }
  73.   return $message;
  74. }
  75.  
  76. sub numprettify { # This function visually prettifies a float. This by rounding off to 3 decimals if the integer is lower than 10, else it strips off decimals completely. And then adding spaces each 3rd digit.
  77.   $number = $_[0];
  78.   if (($number =~ m/\./)&&(int($number) < 10)) {
  79.     ($numinteger, $numdecimal) = split(/\./, $number);
  80.     $number = $numinteger;
  81.     $numdecimal = substr($numdecimal, 0, 2);
  82.     if (length($numdecimal) == 1) {
  83.       $numdecimal = $numdecimal . "0";
  84.     }
  85.   }
  86.   else
  87.   {
  88.     $numdecimal = "";
  89.     $number = int($number);
  90.   }
  91.   if ((length($number) > 3)&&(length($number) < 7)) {
  92.     $number = substr($number, 0, length($number) - 3)." ".substr($number, length($number) - 3, 3);
  93.   }
  94.   else
  95.   {
  96.     if ((length($number) > 6)&&(length($number) < 10)) {
  97.       $number = substr($number, 0, length($number) - 6)." ".substr($number, length($number) - 6, 3)." ".substr($number, length($number) - 3, 3);
  98.     }
  99.     else
  100.     {
  101.       if ((length($number) > 9)&&(length($number) < 13)) {
  102.         $number = substr($number, 0, length($number) - 9)." ".substr($number, length($number) - 9, 3)." ".substr($number, length($number) - 6, 3)." ".substr($number, length($number) - 3, 3);
  103.       }
  104.       else
  105.       {
  106.         if (length($number) > 12) {
  107.           $number = substr($number, 0, length($number) - 12)." ".substr($number, length($number) - 12, 3)." ".substr($number, length($number) - 9, 3)." ".substr($number, length($number) - 6, 3)." ".substr($number, length($number) - 3, 3);
  108.         }
  109.       }
  110.     }
  111.   }
  112.   if (length($numdecimal) > 0) {
  113.     return $number.",".$numdecimal;
  114.   }
  115.   else
  116.   {
  117.     return $number;
  118.   }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement