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