1# 2# fortune 3# 4# Edited by: Ivo Marino <eim@cpan.org> 5# $Id: fortune.pl,v 1.3 2004/12/17 19:39:19 eim Exp $ 6# 7# Required (Debian) packages: 8# 9# . fortune-mod The fortune core binaries 10# . fortunes-min Basic english fortune cookies 11# . fortunes-de German fortune cookies 12# . fortunes-it Italian fortune cookies 13# 14# Usage: 15# 16# Inside a channel write: /fortune <nick> [lang] 17# The optional [lang] parameter can be: 18# 19# . en English 20# . de German 21# . it Italian 22# 23# If not defined the fortune script defaults to en. 24# 25# TODO: 26# 27# . Check if specified user exists. 28# . Handle direct user messaging. 29# 30 31use strict; 32use vars qw($VERSION %IRSSI); 33 34use Irssi; 35($VERSION) = '$Id: fortune.pl,v 1.3 2004/12/17 19:39:19 eim Exp $' =~ / (\d+\.\d+) /; 36%IRSSI = ( 37 authors => 'Ivo Marino', 38 contact => 'eim@cpan.rg', 39 name => 'fortune', 40 description => 'Send a random fortune cookie to an user in channel.', 41 license => 'Public Domain', 42); 43 44sub fortune { 45 46 my ($param, $server, $witem) = @_; 47 my $return = 0; 48 my $cookie = ''; 49 50 if ($param) { 51 52 if ($server || $server->{connected}) { 53 54 (my $nick, my $lang) = split (' ', $param); 55 56 $lang = 'en' unless ($lang eq 'de'|| $lang eq 'it' || $lang eq 'en'); 57 58 Irssi::print ("Nick: " . $nick . ", Lang: \"" . $lang . "\""); 59 60 if ($lang eq 'de') { 61 62 $cookie = `fortune -x`; 63 64 } elsif ($lang eq 'it') { 65 66 $cookie = `fortune -a italia`; 67 68 } else { 69 70 $cookie = `fortune.en -a fortunes literature riddles`; 71 } 72 73 $cookie =~ s/\s*\n\s*/ /g; 74 75 if ($cookie) { 76 77 if ($witem && ($witem->{type} eq "CHANNEL")) { 78 79 $witem->command('MSG ' . $witem->{name} . ' ' . $nick . ': ' . $cookie); 80 } 81 82 } else { 83 84 Irssi::print ("No cookie."); 85 $return = 1; 86 } 87 88 } else { 89 90 Irssi::print ("Not connected to server"); 91 $return = 1; 92 } 93 94 } else { 95 96 Irssi::print ("Usage: /fortune <nick> [language]"); 97 $return = 1; 98 } 99 100 return $return; 101} 102 103Irssi::command_bind ('fortune', \&fortune); 104