#!/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 ($_ =~ / [$x] $y"; if ($i eq $num) { last; } } } close $sd; if ($i ne $num) { Irssi::print "-> --- nincs tobb ---"; } } Irssi::command_bind('tvmusor', 'tvmusor');