1#!/usr/local/bin/perl
2
3use strict;
4use vars qw($VERSION %IRSSI);
5$VERSION = "2003100201";
6%IRSSI = (
7    authors     => "Oskari 'Okko' Ojala",
8    contact     => "sorter.irssi-scripts\@okko.net",
9    name        => "away2web",
10    description => "Write /away information to a file to be used on web pages",
11    license     => "BSD",
12    changed     => "$VERSION",
13);
14use Irssi 20020324;
15
16#
17# Writes /away information to a file. A web page script (cgi / php / pl..) can
18# then read the file and display online/offline information.
19#
20# The web page script is left as an excersise for the user because the platforms
21# vary. :-)
22#
23# Tip: You can also modify this script to directly write HTML and then just include
24# the file on your web page.
25#
26#
27# Format of the file:
28# First line:  Either "1" or "0". 0=Offline (away), 1=Online (not away).
29# Second line: The away reason (message). If the user is Online, second line is
30#              empty but exists.
31#
32# File is written to ~/.irssi/away2web-status.
33#
34
35sub catch_away {
36	my $server = shift;
37
38	open(STATUSFILE, q{>}, $ENV{'HOME'}.'/.irssi/away2web-status') || die ("away2web.pl: Could not open file for writing:".$!);
39
40	if ($server->{usermode_away}) {
41	    # User is offline.
42	    print STATUSFILE "0\n";
43	} else {
44	    # User is online.
45	    print STATUSFILE "1\n";
46	}
47
48	print STATUSFILE $server->{'away_reason'}."\n";
49
50	close(STATUSFILE);
51
52}
53
54Irssi::signal_add("away mode changed", "catch_away");
55
56print CLIENTCRAP '%B>>%n '.$IRSSI{name}.' '.$VERSION.' (c) '.$IRSSI{authors}.' loaded';
57
58# end of script.
59