#!/usr/bin/perl
#
# by Simon 'corecode' Schuberty
use strict;
use vars qw($VERSION %IRSSI);
$VERSION = "2018122301";
%IRSSI = (
authors => "Simon 'corecode' Schubert",
contact => "corecode\@corecode.ath.cx",
name => "beepaway",
description => "Only beep when you are away",
license => "BSD",
changed => "$VERSION",
);
use Irssi 20020324;
sub catch_away {
my $level;
my $server;
($server) = @_;
if ($server->{usermode_away}) {
$level = Irssi::settings_get_str("beep_away_msg_level")
} else {
$level = Irssi::settings_get_str("beep_back_msg_level")
}
# Irssi::print "%R>>%n setting levels ``$level''";
if ($level eq '' || $level =~ m/NONE/) {
$server->command("/^set -clear beep_msg_level ");
} else {
$server->command("/^set beep_msg_level ".$level);
}
}
Irssi::settings_add_str($IRSSI{name}, "beep_away_msg_level", "MSGS NOTICES DCC DCCMSGS HILIGHT");
Irssi::settings_add_str($IRSSI{name}, "beep_back_msg_level", "NONE");
Irssi::signal_add("away mode changed", "catch_away");
print CLIENTCRAP '%B>>%n '.$IRSSI{name}.' '.$VERSION.' (c) '.$IRSSI{authors}.' loaded';