summaryrefslogtreecommitdiffstats
path: root/scripts/tvmusor.pl
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/tvmusor.pl')
-rw-r--r--scripts/tvmusor.pl143
1 files changed, 143 insertions, 0 deletions
diff --git a/scripts/tvmusor.pl b/scripts/tvmusor.pl
new file mode 100644
index 0000000..42cd342
--- /dev/null
+++ b/scripts/tvmusor.pl
@@ -0,0 +1,143 @@
+#!/usr/pkg/bin/perl
+#
+# $Id: porthu-irssi.pl,v 1.7 2003/06/14 21:14:46 bigmac Exp $
+#
+# Irssi Client for PORT.HU
+# Copyright (C) 2003, Gabor Nyeki (bigmac@home.sirklabs.hu).
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. Neither the name of the author nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+
+use strict;
+use Irssi;
+use Irssi::Irc;
+use IO::Socket;
+
+use vars qw($VERSION %IRSSI);
+use vars %IRSSI;
+%IRSSI = (
+ authors => "Gabor Nyeki",
+ contact => "bigmac\@home.sirklabs.hu",
+ name => "tvmusor",
+ description => "asks for the current tv-lineup from http://www.port.hu/",
+ license => "BSDL",
+ changed => "Tue Jun 3 18:48:02 CEST 2003"
+);
+
+my %chans = (
+ m1 => "1",
+ m2 => "2",
+ dunatv => "6",
+ tv2 => "3",
+ rtlklub => "5",
+ viasat3 => "21",
+ fixtv => "96",
+ spektrum => "9",
+ hbo => "8",
+ atv => "15"
+);
+
+
+sub tvmusor {
+ my ($args) = @_;
+
+ split / /, $args;
+ my $chan = @_[0];
+ my $list = @_[1];
+
+ if (!$chan) {
+ Irssi::print "Hasznalat: /tvmusor list|csatorna [lista hossza]";
+ return;
+ }
+ if ($chan eq "list") {
+ Irssi::print "Elerheto csatornak listaja:";
+ foreach my $buf (sort(keys %chans)) {
+ Irssi::print "-> $buf";
+ }
+ return;
+ }
+
+ if (!$chans{$chan}) {
+ Irssi::print "$chan nem letezik!";
+ return;
+ }
+
+ my $num;
+ if (!$list) {
+ $num = 5;
+ } else {
+ $num = $list;
+ }
+
+
+ my $sd = IO::Socket::INET->new(Proto => "tcp",
+ PeerAddr => "www.port.hu",
+ PeerPort => "80") or die;
+ print $sd "GET /pls/tv/tv.prog?i_days=1&i_ch=$chans{$chan}&i_ch_nr=1 HTTP/1.0\n";
+ print $sd "Host: www.port.hu\n";
+ print $sd "User-Agent: Irssi\n";
+ print $sd "\n";
+
+ Irssi::print "$chan:";
+
+ my $i = 0;
+ my ($x, $y);
+ while (<$sd>) {
+ if ($_ =~ /<tr><td align="right" valign="top" bgcolor="/) {
+ split /<strong>/, $_;
+
+ if (@_[1] =~ /<blink>(.*)<\/blink>/) {
+ $i = 1;
+ $x = $1;
+ } else {
+ if ($i) {
+ $i++;
+ }
+ @_[1] =~ /(.*)<\/strong>/;
+ $x = $1;
+ }
+
+ if ($i eq 0) {
+ next;
+ }
+
+ @_[2] =~ /(.*)<\/strong>/;
+ $y = $1;
+
+ Irssi::print "-> [$x] $y";
+ if ($i eq $num) {
+ last;
+ }
+ }
+ }
+
+ close $sd;
+
+ if ($i ne $num) {
+ Irssi::print "-> --- nincs tobb ---";
+ }
+}
+
+Irssi::command_bind('tvmusor', 'tvmusor');