Dodany przez: rssperl, 02:45 17-07-2018

Nowy Pobierz
  1. #!/usr/bin/perl
  2.  
  3. use strict;
  4. use warnings;
  5. use WWW::Mechanize ();
  6. use WWW::Scripter;
  7. use URI::Find;
  8.  use Gtk2::Notify -init, 'Basic';
  9. # use diagnostics -verbose;
  10.  
  11. my $odtwarzacz="/usr/bin/vlc -A alsa --alsa-audio-device vlc --quiet ";
  12.  my $mpvplayer="ALSAOUT=\"vlc\" /usr/bin/alltray  2>&1>/dev/null  /usr/bin/mpv";
  13. my $smplayer="ALSAOUT=\"vlc\" /usr/bin/smplayer";
  14.  
  15. ### my $smplayer="/usr/bin/smplayer";
  16. # my $odtwarzacz="/usr/bin/smplayer";
  17. # my $odtwarzacz="/usr/bin/alltray 2>&1>/dev/null  /usr/bin/totem";
  18.  
  19. # my $drugiodtwarzacz="/usr/bin/alltray 2>&1>/dev/null  /usr/bin/totem";
  20. my $drugiodtwarzacz="$odtwarzacz";
  21. # my $minitube="$odtwarzacz";
  22. ### my $minitube="$smplayer";
  23. my $minitube="$mpvplayer";
  24. my $vimeoplayer="$mpvplayer";
  25. my $sznurekerror="";
  26. my $terazgram="";
  27. my $useragent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:54.0) Gecko/20100101 Firefox/54.0";
  28.  
  29. sub clipboard {
  30. use Gtk2 '-init';
  31.  
  32. my $clipboard = Gtk2::Clipboard->get( Gtk2::Gdk->SELECTION_CLIPBOARD );
  33.  
  34. my $clip = $clipboard->wait_for_text;
  35.  
  36. if ($clip =~ /(\s)?http?(s?)\:\/\/(\.www\.)?(.*)$/)
  37. {
  38.         print "CLipboard zwrócił:  $clip\n";
  39.         robota($clip);
  40.         }
  41. else
  42. {  
  43.     my $sznurekerror = Gtk2::Notify->new("RssPerl!\nNie wiem, co to za sznurek!", "$clip");
  44.     $sznurekerror ->show;
  45.    
  46.         print "Nie wiem, co to za sznurek :  $clip\n\n";
  47.  
  48.         };     
  49. };
  50.  
  51.  
  52.  
  53. sub youtube {   
  54.         my $goto = $_[0] ;
  55.         print "Adres oryginalny  to $goto\n";
  56.         my $sznurek="";
  57.      if ($goto =~ /(?<=\Wv\/)([\w|-]+)/)
  58.             {  
  59.             my  $sznurek =$1;
  60.             my $adresik = "https://www.youtube-nocookie.com/embed/$sznurek";
  61.                         my @minitube = ("$minitube  $adresik 2>&1>/dev/null &" );
  62.                 #       my $terazgram = Gtk2::Notify->new("RssPerl!\nTeraz gramy\:\n $goto\n");
  63.         #   $terazgram ->show;
  64.                         print "$minitube otworzy $adresik\n\n";
  65.                         exec @minitube   or print STDERR "couldn't exec $minitube: $!";
  66.                        
  67.          }  
  68.  
  69.      elsif ($goto =~ /(?<=\Wv=)([\w|-]+)/)
  70.         {
  71.                         my $videoid = "$1" if $1;
  72.                         my $adres = "https://www.youtube-nocookie.com/embed/$videoid" ;
  73.                     print "Otwieram $adres\n";
  74.                         my @minitube = ("$minitube  $adres 2>&1>/dev/null &" );
  75.             print "$minitube otworzy $adres\n";
  76.          #  my $terazgram = Gtk2::Notify->new("RssPerl!\nTeraz gramy\:\n $goto\n");
  77.          #  $terazgram ->show;
  78.             exec @minitube   or print STDERR "couldn't exec $minitube : $!";
  79.          }
  80.          
  81.      elsif ($goto =~ /youtu.be\/([\w|-]+)/)
  82.         {
  83.                         my $videoid = "$1" if $1;
  84.                         my $adres = "https://www.youtube-nocookie.com/embed/$videoid" ;
  85.                     print "Otwieram $adres\n";
  86.                         my @minitube = ("$minitube  $adres 2>&1>/dev/null &" );
  87.             print "$minitube otworzy $adres\n";
  88.           # my $terazgram = Gtk2::Notify->new("RssPerl!\nTeraz gramy\:\n $goto\n");
  89.           # $terazgram ->show;
  90.             exec @minitube   or print STDERR "couldn't exec $minitube : $!";
  91.  
  92.          }
  93.      elsif ($goto =~ /youtube-nocookie.com\/([\w|-]+)/)
  94.         {
  95.                         my $adres = "$goto" ;
  96.                     print "Otwieram $adres\n";
  97.                         my @minitube = ("$minitube  $adres 2>&1>/dev/null &" );
  98.             print "$minitube otworzy $adres\n";
  99.           # my $terazgram = Gtk2::Notify->new("RssPerl!\nTeraz gramy\:\n $goto\n");
  100.           # $terazgram ->show;
  101.             exec @minitube   or print STDERR "couldn't exec $minitube : $!";
  102.  
  103.          }
  104.       elsif ($goto =~ /youtube.com\/embed\/([\w|-]+)/)
  105.         {
  106.                         my $adres = "$goto" ;
  107.                     print "Otwieram $adres\n";
  108.                         my @minitube = ("$minitube  $adres 2>&1>/dev/null &" );
  109.             print "$minitube otworzy $adres\n";
  110.           # my $terazgram = Gtk2::Notify->new("RssPerl!\nTeraz gramy\:\n $goto\n");
  111.           # $terazgram ->show;
  112.             exec @minitube   or print STDERR "couldn't exec $minitube : $!";
  113.  
  114.          }
  115.       else
  116.          {
  117.             firefox($goto);     
  118.                  }  
  119. }
  120.  
  121. sub gazetapolska {
  122.  
  123.         my $goto = $_[0] ;
  124.  
  125.         my $sznurek = WWW::Mechanize->new();
  126.                $sznurek ->agent( "$useragent" );
  127.            $sznurek->max_redirect(0);
  128.            $sznurek->default_header('Accept' => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
  129.                'Accept-Language' => " pl-PL,pl;q=0.5",
  130.                'Accept-Charset' => "ISO-8859-2,utf-8;q=0.7,*;q=0.7",
  131.                'Accept-Encoding' => "gzip,deflate",
  132.                'Connection' => "keep-alive", );
  133.                                 $sznurek->get( $goto );
  134.                 my $filmek = $sznurek->content();
  135.            
  136.     if ($filmek =~/(http:\/\/.*\.mp4)/) {
  137.                         my $adres=$1;
  138.                         print "$adres\n";
  139.             my @odtwarzacz = ("$mpvplayer $adres 2>&1>/dev/null &" );
  140.                         print "$mpvplayer otworzy $adres\n\n" if $adres;
  141.                 exec @odtwarzacz   or print STDERR "couldn't exec $mpvplayer : $!";
  142.                     # firefox($adres)
  143.                 }
  144.    
  145.                 elsif ( $filmek  =~ m{youtube.com/embed/(.+)\?}i )
  146.  
  147.                 {
  148.                 #       print $filmek;
  149.                         my $film = $1 if $1;
  150.                         my $adres = "http://youtube.com/watch?v=$film";
  151.                         print "Film to: $adres\n\n" if $1;
  152.                         youtube($adres);
  153.         }
  154.        
  155.         else
  156.         {
  157.         print "GazPol nie udało się";
  158.                          firefox($goto) 
  159.        
  160.                 }
  161.  }
  162.  
  163.        
  164. sub dailymotion {
  165.                 my $goto = $_[0] ;
  166.                 my @vlcstart = ("$mpvplayer $goto &");
  167.         exec @vlcstart   or print STDERR "couldn't exec  $mpvplayer: $!";
  168.  
  169. }
  170.  
  171. sub vimeo {
  172.         my $goto = $_[0] ;
  173.         my @playerstart = ("$vimeoplayer $goto &");
  174.         exec @playerstart   or print STDERR "couldn't exec  $vimeoplayer: $!";
  175.         }
  176.  
  177. sub vimeoold {
  178.        
  179.         my  @opcjejakosci = ("hd" , "sd" , "mobile");
  180.  
  181.         my $goto = $_[0] ;
  182.        
  183.         my $sygnatura="";
  184.         my $playerurl="";
  185.         my $timestamp="";
  186.         my $videoid="";
  187.         my $vimqualities="";
  188.         my $jakosc="";
  189.         my $sznur="";
  190.         my $adres="";
  191.        
  192.  
  193.         my $sznurek = WWW::Mechanize->new();
  194.                $sznurek ->agent( "$useragent" );
  195.            $sznurek->max_redirect(1);
  196.            $sznurek->default_header('Accept' => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
  197.                'Accept-Language' => " pl-PL,pl;q=0.5",
  198.                'Accept-Charset' => "ISO-8859-2,utf-8;q=0.7,*;q=0.7",
  199.                'Accept-Encoding' => "gzip,deflate",
  200.                'Connection' => "keep-alive", );
  201.                                 $sznurek->get( $goto );
  202.                 my $vimtest = $sznurek->content();
  203.        
  204.         if ($vimtest =~m/\"signature":\"(.+?)\"/) {
  205.                          $sygnatura = $1; }
  206.  
  207.         if ($vimtest =~m/\"player_url":\"(.+?)\"/) {
  208.                      $playerurl=$1;  }
  209.  
  210.  
  211.                 if ($vimtest =~m/"timestamp":(\d+)/) {
  212.                          $timestamp=$1; }
  213.  
  214.                 if ($vimtest =~m/"video":\{"id":(\d+?),/) {
  215.                          $videoid=$1; }
  216.  
  217.                 if ($vimtest =~m/"qualities":\[(.*?)\]/) {
  218.                      $vimqualities=$1; }
  219.  
  220.        
  221.           foreach  my $vimq (@opcjejakosci) {
  222.        if ($vimqualities =~/$vimq/ ){
  223.            $jakosc = $vimq;
  224.            last;
  225.            }
  226.      }
  227.                        
  228.           $sznur = "http://$playerurl/play_redirect?quality=$jakosc&clip_id=$videoid&time=$timestamp&sig=$sygnatura";
  229.  
  230.         my $film =  WWW::Scripter->new(
  231.                                 autocheck => 1,
  232.                                 show_progress => 1,);
  233.  
  234.     $film ->use_plugin(JavaScript => engine => "JE",);
  235.     $film ->agent( "$useragent" );
  236.     $film->max_redirect(0);
  237.  
  238.      $film->get($sznur);
  239.         my $status = $film->status();
  240.         if (($status >= 300) && ($status < 400)) {
  241.         $adres = $film->response()->header('Location');
  242.         }
  243.         my @vlcstart = ("$odtwarzacz  \"$adres\" 2>&1>/dev/null &" );
  244.         exec @vlcstart   or print STDERR "couldn't exec $odtwarzacz: $!";
  245.  
  246. }
  247.  
  248. sub firefox {
  249.                 my $goto = $_[0] ;
  250.                 print "Adres oryginalny  to $goto\n";
  251.             # my @ffstart = ("/usr/bin/firefox -P duch --new-tab  \"$goto\"  2>&1>/dev/null &");
  252.           #  my @ffstart = ("/usr/bin/alltray /usr/bin/google-chrome-unstable \"$goto\"  2>&1>/dev/null &");
  253.             my @ffstart = ("/usr/local/bin/firefox16  \"$goto\"  2>&1>/dev/null &");
  254.  
  255.                 exec @ffstart   or print STDERR "couldn't exec firefox: $!";
  256. }
  257. sub mpv {
  258.                 my $goto = $_[0] ;
  259.                 print "Adres oryginalny  to $goto\n";
  260.             # my @ffstart = ("/usr/bin/firefox -P duch --new-tab  \"$goto\"  2>&1>/dev/null &");
  261.           #  my @ffstart = ("/usr/bin/alltray /usr/bin/google-chrome-unstable \"$goto\"  2>&1>/dev/null &");
  262.             my @mpv = ( "$mpvplayer  \"$goto\"  2>&1>/dev/null &");
  263.  
  264.                 exec @mpv   or print STDERR "couldn't exec \"$mpvplayer\": $!";
  265. }
  266. sub periscope {
  267.                 my $goto = $_[0] ;
  268.                 print "Adres oryginalny  to $goto\n";
  269.             # my @ffstart = ("/usr/bin/firefox -P duch --new-tab  \"$goto\"  2>&1>/dev/null &");
  270.           #  my @ffstart = ("/usr/bin/alltray /usr/bin/google-chrome-unstable \"$goto\"  2>&1>/dev/null &");
  271.             my @periscope = ( "$mpvplayer  \"$goto\"  2>&1>/dev/null &");
  272.  
  273.                 exec @periscope   or print STDERR "couldn't exec \"$mpvplayer\": $!";
  274. }
  275. sub vodtvpget
  276.        {
  277.             my $videoidget = $_[0] ;
  278. #           print "VodtvpGet - videoid = $videoidget\n";
  279.             my $tvpgoto="http://www.tvp.pl/pub/stat/videofileinfo?video_id=$videoidget";               
  280.         my $vodtvp = WWW::Mechanize->new();
  281.                 $vodtvp ->agent( "$useragent" );
  282.             $vodtvp->max_redirect(0);
  283.             $vodtvp->default_header('Accept' => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
  284.                'Accept-Language' => " pl-PL,pl;q=0.5",
  285.                'Accept-Charset' => "ISO-8859-2,utf-8;q=0.7,*;q=0.7",
  286.                'Accept-Encoding' => "gzip,deflate",
  287.                'Connection' => "keep-alive", );
  288.                                 $vodtvp->get( $tvpgoto );
  289.                 my $tvpfilm = $vodtvp->content();
  290. #        print "$tvpfilm";
  291.         if ($tvpfilm  =~m/\"video_url"\s:\s\"(http:\/\/.+?)\"/)
  292.         { my $tvpadres="$1";
  293.               my @vlcstart = ("$odtwarzacz $tvpadres 2>&1>/dev/null &" );
  294.                print "Adres filmu to:  $tvpadres\n\n";
  295.               exec @vlcstart   or print STDERR "couldn't exec $odtwarzacz: $!";
  296.        
  297.                        
  298.                         }
  299. }
  300.  
  301.  
  302. sub vodtvp {
  303.                 my $goto = $_[0] ;
  304.                 print "Adres oryginalny  to $goto\n";
  305.             # my @ffstart = ("/usr/bin/firefox -P duch --new-tab  \"$goto\"  2>&1>/dev/null &");
  306.           #  my @ffstart = ("/usr/bin/alltray /usr/bin/google-chrome-unstable \"$goto\"  2>&1>/dev/null &");
  307.             my @vodtvp = ( "$mpvplayer  \"$goto\"  2>&1>/dev/null &");
  308.  
  309.                 exec @vodtvp   or print STDERR "couldn't exec \"$mpvplayer\": $!";
  310.  
  311.  
  312.  
  313. };
  314.  
  315. if (@ARGV) {
  316.     print "Zabieram się do roboty ;)\n\n";
  317. }
  318. else
  319. {
  320.          print "Nie mam sznurka do otwarcia! ;(\n"; exit 1;
  321.          }
  322.  
  323. my $argument = $ARGV[0];
  324. chomp $argument;
  325.  
  326.  
  327. if ($argument =~/^clip$/)
  328.     {
  329.         #       print "odpalam clipboard\n";
  330.                 clipboard();     
  331.      }
  332.      
  333. elsif ($argument =~ /^http(s?)\:\/\/(\.www\.)?(.*)$/)
  334.         {
  335.         #       print "$argument\n\n";
  336.                 robota($argument)
  337.          }
  338.  
  339. else
  340.     {
  341.                
  342.         print "Dziwny ten sznurek\n";   
  343.                 robota($argument);
  344.         print "Nie wiem, co to za sznurek:  \"$argument\"\n";
  345.         my $sznurekerror = Gtk2::Notify->new("RssPerl!\nNie wiem, co to za sznurek!", "$argument");
  346.     $sznurekerror ->show;
  347.         exit 0;
  348. }
  349.  
  350. sub robota {
  351.             #print "zaczynam robotę\n";
  352.             my $link = $_[0];
  353.          #   print " Otwieram $link\n";
  354.            
  355. if ($link=~/youtube-nocookie.com/)
  356.         {
  357.                  youtube("$link")
  358.          }
  359.          
  360. elsif ($link=~/youtu.be/)
  361.         {
  362.                  youtube("$link")
  363.          }       
  364. elsif ($link=~/youtube/)
  365.         {
  366.                  youtube("$link")
  367.          }               
  368.          
  369.          
  370. elsif ($link=~/tvp\.pl/)
  371.         {
  372.                  vodtvp("$link")
  373.         }
  374.                  
  375.          
  376. elsif ($link=~/vimeo/)
  377.         {
  378. # print "Vimeo chwilowo nieczynne do odwołania!!!!\n ;P\n";
  379.                  vimeo("$link")
  380.         }
  381.        
  382. elsif ($link=~/gazetapolska/)
  383.         {
  384.                  gazetapolska("$link")
  385.         }
  386.         elsif ($link=~/periscope.tv/)
  387.         {
  388.                  periscope("$link")
  389.         }
  390. elsif ( $link =~ m/^http(s?):\/\/.*?dailymotion.com\/video\/\.*?/ )
  391.         {
  392.                  dailymotion("$link")   
  393.         }
  394. elsif ( $link =~ m/^http(s?):\/\/.*?cda.pl\/video\/\.*?/ )
  395.         {
  396.                  mpv("$link")   
  397.         }
  398. elsif ( $link =~ m/^http(s?):\/\/.*?trt.pl\/film\/\.*?/ )
  399.         {
  400.                  mpv("$link")   
  401.         }
  402. elsif ( $link =~ m/^http(s?)\:\/\/(\.www\.)?(.*)$/)
  403.         {
  404.                  firefox("$link")       
  405.         }       
  406.  
  407. else
  408.         {
  409.          print "Nie wiem, co to jest $link\n";
  410.     }
  411. };
  412.  

Źródło:

Ostatnie wpisy

Linki

Funkcje