summaryrefslogtreecommitdiffstats
path: root/scripts/licq.pl
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/licq.pl')
-rw-r--r--scripts/licq.pl66
1 files changed, 66 insertions, 0 deletions
diff --git a/scripts/licq.pl b/scripts/licq.pl
new file mode 100644
index 0000000..2f747fe
--- /dev/null
+++ b/scripts/licq.pl
@@ -0,0 +1,66 @@
+use strict;
+use vars qw($VERSION %IRSSI);
+$VERSION = "0.5";
+%IRSSI = (
+ authors => "Jari Matilainen",
+ contact => "jmn98015\@student.mdh.se",
+ name => "licq",
+ description => "Licq statusbar thingy",
+ sbitems => "licq",
+ license => "Public Domain",
+ url => "http://jari.cjb.net,http://irssi.org,http://scripts.irssi.de",
+);
+
+use Irssi::TextUI;
+
+my $result;
+my $refresh_tag;
+my $rdir = "$ENV{'HOME'}/.licq/users/";
+
+sub licq {
+ my ($item,$get_size_only) = @_;
+ $result = 0;
+ if(-e $rdir) {
+ opendir(DIR, $rdir);
+
+ while ( $_ = readdir(DIR) ) {
+ next if(($_ eq ".") or ($_ eq ".."));
+
+ my $filename = "$rdir" . "$_";
+ if(-e $filename) {
+ open(FILE, "<", $filename);
+ $_ = "";
+ $_ = <FILE> until /NewMessages/;
+ my @total = split / /, $_;
+ if(defined $total[2]) {
+ $result += $total[2];
+ }
+ }
+ }
+ }
+
+ closedir(DIR);
+
+ $item->default_handler($get_size_only, undef, $result, 1);
+}
+
+sub refresh_licq {
+ Irssi::statusbar_items_redraw('licq');
+}
+
+sub init_licq {
+ my $time = Irssi::settings_get_int('licq_refresh_time');
+ $rdir = Irssi::settings_get_str('licq_path');
+ Irssi::timeout_remove($refresh_tag) if ($refresh_tag);
+ $refresh_tag = Irssi::timeout_add($time*1000, 'refresh_licq', undef);
+}
+
+Irssi::settings_add_int('LICQ','licq_refresh_time',10);
+Irssi::settings_add_str('LICQ','licq_path',$rdir);
+Irssi::statusbar_item_register('licq', '{sb ICQ: $0-}', 'licq');
+
+init_licq();
+Irssi::signal_add('setup changed','init_licq');
+refresh_licq();
+
+# EOF