]> git.99rst.org Git - irssi-scripts.irssi.org.git/commitdiff
[ontv] remove ontv.pl
authorbw1 <redacted>
Mon, 11 Jan 2021 16:57:07 +0000 (17:57 +0100)
committerbw1 <redacted>
Thu, 14 Jan 2021 11:30:52 +0000 (12:30 +0100)
scripts/ontv.pl [deleted file]

diff --git a/scripts/ontv.pl b/scripts/ontv.pl
deleted file mode 100644 (file)
index 8dcdfb3..0000000
+++ /dev/null
@@ -1,339 +0,0 @@
-# OnTV by Stefan'tommie' Tomanek
-
-use strict;
-use vars qw($VERSION %IRSSI);
-$VERSION = "20050226";
-%IRSSI = (
-    authors     => "Stefan 'tommie' Tomanek",
-    contact     => "stefan\@pico.ruhr.de",
-    name        => "OnTV",
-    description => "turns irssi into a tv program guide",
-    license     => "GPLv2",
-    modules     => "Data::Dumper POSIX LWP::Simple HTML::Entities Text::Wrap",
-    changed     => "$VERSION",
-    commands   => "ontv"
-);
-
-use Irssi 20020324;
-use Data::Dumper;
-use POSIX;
-use LWP::Simple;
-use HTML::Entities;
-use Text::Wrap;
-
-use vars qw($forked @comp);
-
-sub show_help() {
-    my $help=$IRSSI{name}." ".$VERSION."
-/ontv (current)
-    List the current tv program
-/ontv search <query>
-    Query the program guide for a show
-/ontv next
-    Show what'S next on TV
-/ontv tonight
-    List tonight's program
-/ontv watching <station>
-    Display what's on <station>
-";
-    my $text = '';
-    foreach (split(/\n/, $help)) {
-        $_ =~ s/^\/(.*)$/%9\/$1%9/;
-        $text .= $_."\n";
-    }
-    print CLIENTCRAP &draw_box($IRSSI{name}." help", $text, "help", 1) ;
-}
-
-sub draw_box ($$$$) {
-    my ($title, $text, $footer, $colour) = @_;
-    my $box = '';
-    $box .= '%R,--[%n%9%U'.$title.'%U%9%R]%n'."\n";
-    foreach (split(/\n/, $text)) {
-        $box .= '%R|%n '.$_."\n";
-    }
-    $box .= '%R`--<%n'.$footer.'%R>->%n';
-    $box =~ s/%.//g unless $colour;
-    return $box;
-}
-
-sub get_prog ($) {
-    my ($what) = @_;
-    my $url = 'http://www.tvmovie.de/tv-programm/jetzt.html?nocache=true';
-    $url = 'http://www.tvmovie.de/tv-programm/gleich.html?nocache=true' if ($what == 0);
-    $url = 'http://www.tvmovie.de/tv-programm/2015.html' if ($what == 2);
-    my $data = get($url);
-    my $programs = [];
-    my %program;
-    foreach (split /\n/, $data) {
-       #print $_;
-       if (/class="linkgrau">(.*?)<\/a><\/font><\/td>/) {
-           $program{station} = $1;
-           decode_entities($program{station});
-       }
-       #if (/<a href="http:\/\/www.tvmovie.de\/tv-programm\/sendung.html\?SendungID=(\d+)" class="linkblack"><b>(.*?)<\/b><\/a>/) {
-       if (/<a href="http:\/\/www.tvmovie.de\/tv-programm\/sendung.html\?SendungID=(\d+)" class="linkblack"><b>(.*?)<\/b>/) {
-           $program{id} = $1;
-           $program{title} = $2;
-           decode_entities($program{title});
-       }
-       if (/<FONT face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#757575"><br>(.*?)<\/font><\/font><\/td>/) {
-           $program{comment} = decode_entities($1);
-       }
-       if (/color='#ee0000'>(.*?)<\/font><\/td>/) {
-           $program{type} = decode_entities($1);
-       }
-       if (/color="white"><b>([A-Z]{2})<\/b><\/font><\/td>/) {
-           $program{day} = $1;
-       }
-       if (/size="1">(\d{2}\.\d{2})&nbsp;<\/font><\/td>/) {
-           $program{begin} = $1;
-           decode_entities($program{begin});
-       }
-       if (/size="1">bis&nbsp;(\d{2}\.\d{2})<\/font><\/td>/) {
-           $program{end} = $1;
-           decode_entities($program{end});
-           my %data = %program;
-           push @$programs, \%data;
-           %program = ();
-       }
-    }
-    return $programs;
-}
-
-sub search_prog ($) {
-    my ($query) = @_;
-    encode_entities($query);
-    my $url = 'http://fernsehen.tvmovie.de/finder?finder=swsendung&tag=alle&sw_sendung='.$query;
-    my $data = get($url);
-    return( parse_search($data) );
-}
-
-sub parse_search ($) {
-    my ($data) = @_;
-    my $programs = [];
-    my %program;
-    foreach (split /\n/, $data) {
-       if (/color="white"><b>([A-Z]{2})<\/b> <\/font><\/td>$/) {
-           $program{day} = $1;
-           decode_entities($program{day});
-       }
-       if (/size="1">(\d{2}:\d{2})<\/font><\/td>$/) {
-           $program{begin} = $1;
-           decode_entities($program{begin});
-       } elsif (/class="linkgrau">(.*?)<\/a><\/font><\/td>$/) {
-           $program{station} = $1;
-           decode_entities($program{station});
-       } elsif (/<a href="http:\/\/www.tvmovie.de\/tv-programm\/sendung\.html\?SendungID=(\d+)" class="linkblack"><b>(.*?)<\/b><\/a><\/font>(?:<FONT face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#757575"><br>(.*?)<\/font>)?/) {
-           $program{id} = $1;
-           $program{title} = $2;
-           $program{comment} = $3;
-           decode_entities($program{title});
-           decode_entities($program{comment});
-       #} elsif (/{ \t]*<td valign="top" align="left">$/) {
-           my %data = %program;
-           push @$programs, \%data;
-       }
-    }
-    return $programs;
-}
-
-sub get_info ($) {
-    my ($id) = @_;
-    my $data = get('http://www.tvmovie.de/tv-programm/sendung.html?SendungID='.$id);
-    my %info;
-    foreach (split(/\n/, $data)) {
-       #print;
-       if (/size="3"><b>(.*?)<\/b><br><\/font>$/) {
-           $info{title} = decode_entities($1);
-       } elsif (/color="#FFFFFF"><b>&nbsp;(\d+\.\d+\.\d+) \|/) {
-           $info{date} = decode_entities($1);
-       } elsif (/size="1"><b>(.*?)<\/b><br><br><\/font>$/) {
-           $info{comment} = decode_entities($1);
-       } elsif (/class="uppercase"><b>(.*?)<\/b> <\/font>/) {
-           $info{type} = decode_entities($1);
-       } elsif (/<FONT face="Verdana, Arial, Helvetica, sans-serif" size="1">(.*?)<br><br><\/font>/) {
-           $info{desc} = decode_entities($1);
-       } elsif (/\[Sender:&nbsp;(.*?)\] \[Beginn:&nbsp;(.*?)\] \[Dauer:&nbsp;(.*?) Min\.\] \[Ende:&nbsp;(.*?)\] \[SV:&nbsp;(.*?)\]/) {
-           $info{station} = decode_entities($1);
-           $info{begin} = decode_entities($2);
-           $info{end} = decode_entities($4);
-           $info{showview} = decode_entities($5);
-       }
-    }
-    my $stat = $info{station};
-    $info{desc} =~ s/$stat$//;
-    #$info{desc} =~ s/<br><br>$//;
-    $info{desc} =~ s/<br>/\n/g;
-    return \%info;
-}
-
-sub bg_fetch ($$) {
-    my ($op, $query) = @_;
-    my ($rh, $wh); 
-    pipe($rh, $wh); 
-    if ($forked) {
-        print CLIENTCRAP "%R>>%n Please wait until your earlier request has been finished.";
-        return;
-    }
-    my $pid = fork();
-    $forked = 1;
-    if ($pid > 0) {
-       print CLIENTCRAP "%R>>%n Please wait...";
-       close $wh;
-       Irssi::pidwait_add($pid);
-       my $pipetag;
-       my @args = ($rh, \$pipetag, $op, $query);
-       $pipetag = Irssi::input_add(fileno($rh), INPUT_READ, \&pipe_input, \@args);
-    } else {
-       my $result = {};
-       my @program;
-       my $stations = Irssi::settings_get_str('ontv_stations');
-       eval {
-           if ($op eq 'current') {
-               @program = @{ get_prog(1) };
-               foreach (@program) {
-                   push @{ $result->{program} }, $_ if ($_->{station} =~ /^($stations)$/);
-               }
-           } elsif ($op eq 'next') {
-               @program = @{ get_prog(0) };
-               foreach (@program) {
-                   push @{ $result->{program} }, $_ if ($_->{station} =~ /^($stations)$/);
-               }
-           } elsif ($op eq 'tonight') {
-               @program = @{ get_prog(2) };
-               foreach (@program) {
-                    push @{ $result->{program} }, $_ if ($_->{station} =~ /^($stations)$/);
-                }
-           } elsif ($op eq 'search') {
-               @program = @{ search_prog($query) };
-               foreach (@program) {
-                   push @{ $result->{program} }, $_ if ($_->{station} =~ /^($stations)$/);
-               }
-           } elsif ($op eq 'watching') {
-               @program = @{ get_prog(1) };
-               foreach (@program) {
-                   next unless ($_->{station} =~ /^($query)$/);
-                   push @{ $result->{program} }, $_;
-                   print $_->{id};
-                   $result->{info} = get_info($_->{id});
-               }
-           } elsif ($op eq 'info') {
-               $result->{info} = get_info($query);
-           }
-           my $dumper = Data::Dumper->new([$result]);
-           $dumper->Purity(1)->Deepcopy(1)->Indent(0);
-           print($wh $dumper->Dump);
-       };
-       close $wh;
-       POSIX::_exit(1);
-    }
-}
-
-sub pipe_input ($) {
-    my ($rh, $pipetag, $op, $args) = @{$_[0]};
-    $forked = 0;
-    Irssi::input_remove($$pipetag);
-    my $text;
-    $text .= $_ foreach <$rh>;
-    no strict 'vars';
-    my $incoming = eval("$text");
-    return unless ($incoming->{program} || $incoming->{info});
-    print_prog($incoming->{program}, 'current') if ($op eq 'current');
-    print_prog($incoming->{program}, 'next') if ($op eq 'next');
-    print_prog($incoming->{program}, 'tonight') if ($op eq 'tonight');
-    print_prog($incoming->{program}, 'query: "'.$args.'"') if ($op eq 'search');
-    print_prog($incoming->{program}, 'current: "'.$args.'"') if ($op eq 'watching');
-    print_info($incoming->{info}) if $incoming->{info};
-}
-
-sub print_info ($) {
-    my ($info) = @_;
-    my $text;
-    $text .= '%9'.$info->{title}.'%9'."\n";
-    $text .= $info->{date}.': '.$info->{begin}."-".$info->{end}."\n";
-    $text .= 'Showview: '.$info->{showview}."\n\n";
-    $text .= $info->{comment}."\n\n";
-    $text .= $info->{desc};
-    my $col = int( Irssi::active_win()->{width}*(2/3) );
-    $Text::Wrap::columns = $col;
-    my $article = wrap("", "", $text);
-    print CLIENTCRAP &draw_box('OnTV', $article, $info->{title}, 1);
-}
-
-sub print_prog ($$) {
-    my ($program, $query) = @_;
-    @comp = @$program;
-    my $text;
-    foreach (@$program) {
-       $text .= "%9".$_->{station}."%9:";
-       $text .= " %U".$_->{title}."%U";
-       $text .= " [".$_->{type}."]"if $_->{type};
-       $text .= " (".$_->{id}.")\n";
-       $text .= " >".$_->{comment}."<\n" if $_->{comment};
-       $text .= "  time: ";
-       $text .= $_->{day}.", ";
-       $text .= $_->{begin};
-       $text .= "-".$_->{end} if $_->{end};
-       $text .= "\n";
-       #$text .= "\n";
-    }
-    print CLIENTCRAP &draw_box('OnTV', $text, $query, 1);
-}
-
-sub sig_complete_word ($$$$$) {
-    my ($list, $window, $word, $linestart, $want_space) = @_;
-    return unless $linestart =~ /^.ontv (info)/;
-    foreach (@comp) {
-        push @$list, $_->{id} if ($_->{id} =~ /^(\Q$word\E.*)?$/);
-        push @$list, $_->{station} if ($_->{station} =~ /^(\Q$word\E.*)?$/);
-        push @$list, $_->{title} if ($_->{title} =~ /^(\Q$word\E.*)?$/);
-    }
-    Irssi::signal_stop();
-}
-
-
-sub cmd_ontv ($$$) {
-    my ($args, $server, $witem) = @_;
-    my @arg = split(/ /, $args);
-    if (scalar(@arg) == 0 || $arg[0] eq 'current') {
-       bg_fetch('current', '');
-    } elsif ($arg[0] eq 'next') {
-       bg_fetch('next', '');
-    } elsif ($arg[0] eq 'tonight') {
-       bg_fetch('tonight', '');
-    } elsif ($arg[0] eq 'search') {
-       shift @arg;
-       bg_fetch('search', join(' ', @arg))
-    } elsif ($arg[0] eq 'watching' && defined $arg[1]) {
-       shift @arg;
-       bg_fetch('watching', join(' ', @arg));
-    } elsif ($arg[0] eq 'info' && defined $arg[1]) {
-       shift @arg;
-       my $query = join(' ', @arg);
-       unless ($query =~ /^\d+$/) {
-           foreach (@comp) {
-               if ($_->{title} eq $query || $_->{station} eq $query) {
-                   $query = $_->{id};
-                   last;
-               }
-           }
-       }
-       bg_fetch('info', $query);
-    } elsif ($arg[0] eq 'help') {
-       show_help();
-    }
-}
-
-Irssi::settings_add_str($IRSSI{name}, 'ontv_stations', '.*' );
-
-Irssi::command_bind('ontv' => \&cmd_ontv);
-
-Irssi::signal_add_first('complete word', \&sig_complete_word);
-
-foreach my $cmd ('search', 'current', 'next', 'tonight', 'watching', 'help', 'info') {
-    Irssi::command_bind('ontv '.$cmd =>
-         sub { cmd_ontv("$cmd ".$_[0], $_[1], $_[2]); } );
-}
-
-
-print CLIENTCRAP '%B>>%n '.$IRSSI{name}.' '.$VERSION.' loaded: /ontv help for help';
git clone https://git.99rst.org/PROJECT