view mcabber/contrib/conv_log_dates.pl @ 256:7d1a4aff62d4

# HG changeset patch # User mikael@frmp8452 # Node ID 9a74425dc51f6d0551fa2b5851ee381c63d7bb4e # Parent e8f9abe7dc3fbc03c95cacdd7a6c760d87664ea1 Cosmetic change Fix case in MCabber... diff -r e8f9abe7dc3f -r 9a74425dc51f mcabber/AUTHORS
author mikael@frmp8452
date Thu, 30 Jun 2005 23:07:20 +0100
parents c07fa9baca3f
children
line wrap: on
line source

#!/usr/bin/perl -w
#
# usage: conv_log_dates.pl historyfile.old > historyfile.new
# Convert the dates to the new logfile format (mcabber v. >= 0.6.1)
#
# See histolog.c for the mcabber format.
#
# MiKael, 2005/06/14

use strict;

my $line;
my $linesleft = 0;

while ($line = <>) {
  if ($linesleft) {
    print $line;
    $linesleft--;
    next;
  }
  my $type = substr($line, 0, 2);
  my $off_format = 0;
  my $date;

  if (substr($line, 11, 1) eq "T") {
    $off_format = 8; # Offset
  }

  if ($off_format) {
    # Already using the new format, nothing to do
    $date = substr($line, 3, 18);
  } else {
    # Date conversion to iso8601
    my ($ss,$mm,$hh,$DD,$MM,$YYYY) = gmtime(substr($line, 3, 10));
    $date = sprintf "%04d%02d%02dT%02d:%02d:%02dZ",
                    $YYYY+1900, $MM+1,$DD,$hh,$mm,$ss;
  }
  $linesleft = substr($line, 14 + $off_format, 3);
  $line      = substr($line, 14 + $off_format);

  print $type." ".$date." ".$line;

  # Is there something better to cast to integer?
  $linesleft = 0 + $linesleft;
}

# vim:set sw=2 sts=2 et si cinoptions="":