Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
144 lines (123 sloc) 3.46 KB
#!/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');