# HG changeset patch # User mikael # Date 1118772083 0 # Node ID c07fa9baca3f9012e3b2a53c2cf357aa98678a40 # Parent cb2f18e20e6a4c71f9cb5e8f33c3ab9d9989ecbd [/trunk] Changeset 256 by mikael * Add script to convert logfiles to new logfile format (mcabber >= 0.6.1) Dates are converted to iso8601. diff -r cb2f18e20e6a -r c07fa9baca3f mcabber/contrib/conv_log_dates.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mcabber/contrib/conv_log_dates.pl Tue Jun 14 18:01:23 2005 +0000 @@ -0,0 +1,47 @@ +#!/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="":