aboutsummaryrefslogtreecommitdiffstats
path: root/.irssi/scripts/bitlbee_timestamp.pl
diff options
context:
space:
mode:
Diffstat (limited to '.irssi/scripts/bitlbee_timestamp.pl')
-rw-r--r--.irssi/scripts/bitlbee_timestamp.pl105
1 files changed, 0 insertions, 105 deletions
diff --git a/.irssi/scripts/bitlbee_timestamp.pl b/.irssi/scripts/bitlbee_timestamp.pl
deleted file mode 100644
index 7957d57..0000000
--- a/.irssi/scripts/bitlbee_timestamp.pl
+++ /dev/null
@@ -1,105 +0,0 @@
-use strict;
-use Data::Dumper;
-use vars qw($VERSION %IRSSI);
-use DateTime;
-
-$VERSION = '0.5';
-%IRSSI = (
- authors => 'Tijmen "timing" Ruizendaal',
- contact => 'tijmen.ruizendaal@gmail.com',
- name => 'bitlbee_timestamp',
- description => 'Replace Irssi\'s timestamps with those sent by BitlBee',
- license => 'GPLv2',
- url => 'http://the-timing.nl/stuff/irssi-bitlbee',
- changed => '2010-05-01',
-);
-
-my $tf = Irssi::settings_get_str('timestamp_format');
-
-my $bitlbee_server; # server object
-my @control_channels; # mostly: &bitlbee, &facebook etc.
-init();
-
-sub init { # if script is loaded after connect
- my @servers = Irssi::servers();
- foreach my $server(@servers) {
- if( $server->isupport('NETWORK') eq 'BitlBee' ){
- $bitlbee_server = $server;
- my @channels = $server->channels();
- foreach my $channel(@channels) {
- if( $channel->{mode} =~ /C/ ){
- push @control_channels, $channel->{name} unless (grep $_ eq $channel->{name}, @control_channels);
- }
- }
- }
- }
-}
-# if connect after script is loaded
-Irssi::signal_add_last('event 005' => sub {
- my( $server ) = @_;
- if( $server->isupport('NETWORK') eq 'BitlBee' ){
- $bitlbee_server = $server;
- }
-});
-# if new control channel is synced after script is loaded
-Irssi::signal_add_last('channel sync' => sub {
- my( $channel ) = @_;
- if( $channel->{mode} =~ /C/ && $channel->{server}->{tag} eq $bitlbee_server->{tag} ){
- push @control_channels, $channel->{name} unless (grep $_ eq $channel->{name}, @control_channels);
- }
-});
-
-my $prev_date = '';
-
-sub privmsg {
- my ($server, $data, $nick, $address) = @_;
-
- # What we need to match: ^B[^B^B^B2010-03-21 16:33:41^B]^B
-
- if( $server->{tag} eq $bitlbee_server->{tag} ){
-
- my ($target, $text) = split(/ :/, $data, 2);
-
- #if( $text =~ /^B[^B^B^B[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}^B]^B/ ){
-
- if( $text =~ /\x02\[\x02\x02\x02.*\x02\]\x02/ ){
- my $window;
- my $timestamp = $text;
- my $time;
- my $date;
- $timestamp =~ s/.*\x02\[\x02\x02\x02(.*?)\x02\]\x02.*/$1/g;
- $text =~ s/\x02\[\x02\x02\x02(.*?)\x02\]\x02 //g;
-
- ($date, $time) = split(/ /, $timestamp);
- if( !$time ){ # the timestamp doesn't have a date
- $time = $date;
- # use today as date
- $date = DateTime->now->ymd;
- }
-
- if( $date ne $prev_date ){
- if( $target =~ /#|&/ ){ # find channel window based on target
- $window = Irssi::window_find_item($target);
- } else { # find query window based on nick
- $window = Irssi::window_find_item($nick);
- }
- if( $window != undef ){
- my($year, $month, $day) = split(/-/, $date);
- my $dt = DateTime->new(year => $year, month => $month, day => $day);
- my $formatted_date = $day.' '.$dt->month_abbr.' '.$year;
-
- $window->print('Day changed to '.$formatted_date, MSGLEVEL_NEVER);
- }
- }
- $prev_date = $date;
-
- Irssi::settings_set_str('timestamp_format', $time);
- Irssi::signal_continue($server, $target . ' :' . $text, $nick, $address);
- my $escaped = $tf;
- $escaped =~ s/%/%%/g;
- Irssi::settings_set_str('timestamp_format', $tf);
- }
- }
-}
-
-Irssi::signal_add('event privmsg', 'privmsg');