From a4db0628a0377b39be02f0e83832b0c3527933e1 Mon Sep 17 00:00:00 2001 From: Till Höppner Date: Wed, 2 Mar 2016 12:57:36 +0100 Subject: Merging of any number of logs --- formats/energymech/Cargo.toml | 4 +-- formats/energymech/src/lib.rs | 20 +++++++++-- formats/weechat/Cargo.toml | 4 +-- formats/weechat/src/lib.rs | 82 ++++++++++++++++++++++--------------------- 4 files changed, 64 insertions(+), 46 deletions(-) (limited to 'formats') diff --git a/formats/energymech/Cargo.toml b/formats/energymech/Cargo.toml index 09e41b1..b5cad0a 100644 --- a/formats/energymech/Cargo.toml +++ b/formats/energymech/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ilc-format-energymech" -version = "0.1.1" +version = "0.2.0" description = "IRC log converter/collector/cruncher" homepage = "https://github.com/tilpner/ilc" license = "Apache-2.0" @@ -10,4 +10,4 @@ authors = ["Till Höppner "] [dependencies] log = "0.3.5" chrono = "0.2.19" -ilc-base = "0.1.0" +ilc-base = "~0.2" diff --git a/formats/energymech/src/lib.rs b/formats/energymech/src/lib.rs index e0863e7..ed687f0 100644 --- a/formats/energymech/src/lib.rs +++ b/formats/energymech/src/lib.rs @@ -29,6 +29,7 @@ use log::LogLevel::Info; use chrono::*; +#[derive(Copy, Clone)] pub struct Energymech; static TIME_FORMAT: &'static str = "%H:%M:%S"; @@ -219,12 +220,15 @@ impl<'a> Iterator for Iter<'a> { channel: self.context.channel.clone().map(Into::into), })); } + if option_env!("FUSE").is_some() { + panic!("Shouldn't reach here, this is a bug!") + } } } } impl Decode for Energymech { - fn decode<'a>(&'a mut self, + fn decode<'a>(&'a self, context: &'a Context, input: &'a mut BufRead) -> Box>> + 'a> { @@ -250,6 +254,13 @@ impl Encode for Energymech { from, content)) } + &Event { ty: Type::Notice { ref from, ref content }, ref time, .. } => { + try!(writeln!(&mut output, + "[{}] -{}- {}", + time.with_format(&context.timezone, TIME_FORMAT), + from, + content)) + } &Event { ty: Type::Action { ref from, ref content }, ref time, .. } => { try!(writeln!(&mut output, "[{}] * {} {}", @@ -302,7 +313,12 @@ impl Encode for Energymech { nick.as_ref().expect("Nick not present, but required."), new_topic)) } - _ => (), + _ => { + if option_env!("FUSE").is_some() { + panic!("Shouldn't reach here, this is a bug!") + } + () + } } Ok(()) } diff --git a/formats/weechat/Cargo.toml b/formats/weechat/Cargo.toml index 5079d50..244932a 100644 --- a/formats/weechat/Cargo.toml +++ b/formats/weechat/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ilc-format-weechat" -version = "0.1.1" +version = "0.2.0" description = "IRC log converter/collector/cruncher" homepage = "https://github.com/tilpner/ilc" license = "Apache-2.0" @@ -10,4 +10,4 @@ authors = ["Till Höppner "] [dependencies] log = "0.3.5" chrono = "0.2.19" -ilc-base = "0.1.0" +ilc-base = "~0.2" diff --git a/formats/weechat/src/lib.rs b/formats/weechat/src/lib.rs index 65bb4fa..4e1bd42 100644 --- a/formats/weechat/src/lib.rs +++ b/formats/weechat/src/lib.rs @@ -26,6 +26,7 @@ use ilc_base::format::{rejoin, strip_one}; use log::LogLevel::Info; +#[derive(Copy, Clone)] pub struct Weechat; static TIME_DATE_FORMAT: &'static str = "%Y-%m-%d %H:%M:%S"; @@ -76,44 +77,40 @@ impl<'a> Iterator for Iter<'a> { let len = tokens.len(); - if len >= 6 && tokens[5] == "has" { - // 2016-02-25 01:15:05 --> Foo (host@mask.foo) has joined #example - if len >= 8 && tokens[6] == "joined" { - return Some(Ok(Event { - ty: Type::Join { - nick: tokens[3].to_owned().into(), - mask: Some(strip_one(tokens[4]).into()), - }, - channel: Some(tokens[7].to_owned().into()), - time: parse_time(&self.context, tokens[0], tokens[1]), - })); - } - // 2016-02-25 01:36:13 <-- Foo (host@mask.foo) has left #channel (Some reason) - else if len >= 9 && tokens[6] == "left" { - return Some(Ok(Event { - ty: Type::Part { - nick: tokens[3].to_owned().into(), - mask: Some(strip_one(&tokens[4]).into()), - reason: Some(strip_one(&rejoin(&tokens[8..], &split_tokens[8..])) - .into()), - }, - channel: Some(tokens[7].to_owned().into()), - time: parse_time(&self.context, tokens[0], tokens[1]), - })); - } - // 2016-02-25 01:38:55 <-- Foo (host@mask.foo) has quit (Some reason) - else if len >= 8 && tokens[6] == "quit" { - return Some(Ok(Event { - ty: Type::Quit { - nick: tokens[3].to_owned().into(), - mask: Some(strip_one(tokens[4]).into()), - reason: Some(strip_one(&rejoin(&tokens[7..], &split_tokens[7..])) - .into()), - }, - time: parse_time(&self.context, tokens[0], tokens[1]), - channel: self.context.channel.clone().map(Into::into), - })); - } + // 2016-02-25 01:15:05 --> Foo (host@mask.foo) has joined #example + if len >= 8 && tokens[5] == "has" && tokens[6] == "joined" { + return Some(Ok(Event { + ty: Type::Join { + nick: tokens[3].to_owned().into(), + mask: Some(strip_one(tokens[4]).into()), + }, + channel: Some(tokens[7].to_owned().into()), + time: parse_time(&self.context, tokens[0], tokens[1]), + })); + } + // 2016-02-25 01:36:13 <-- Foo (host@mask.foo) has left #channel (Some reason) + else if len >= 9 && tokens[5] == "has" && tokens[6] == "left" { + return Some(Ok(Event { + ty: Type::Part { + nick: tokens[3].to_owned().into(), + mask: Some(strip_one(&tokens[4]).into()), + reason: Some(strip_one(&rejoin(&tokens[8..], &split_tokens[8..])).into()), + }, + channel: Some(tokens[7].to_owned().into()), + time: parse_time(&self.context, tokens[0], tokens[1]), + })); + } + // 2016-02-25 01:38:55 <-- Foo (host@mask.foo) has quit (Some reason) + else if len >= 8 && tokens[5] == "has" && tokens[6] == "quit" { + return Some(Ok(Event { + ty: Type::Quit { + nick: tokens[3].to_owned().into(), + mask: Some(strip_one(tokens[4]).into()), + reason: Some(strip_one(&rejoin(&tokens[7..], &split_tokens[7..])).into()), + }, + time: parse_time(&self.context, tokens[0], tokens[1]), + channel: self.context.channel.clone().map(Into::into), + })); } else if len >= 3 && tokens[2] == "--" { // 2016-02-25 04:32:15 -- Notice(playbot-veno): "" if len >= 5 && tokens[3].starts_with("Notice(") { @@ -176,7 +173,7 @@ impl<'a> Iterator for Iter<'a> { } impl Decode for Weechat { - fn decode<'a>(&'a mut self, + fn decode<'a>(&'a self, context: &'a Context, input: &'a mut BufRead) -> Box>> + 'a> { @@ -252,7 +249,12 @@ impl Encode for Weechat { from, content)) } - _ => (), + _ => { + if option_env!("FUSE").is_some() { + panic!("Shouldn't reach here, this is a bug!") + } + () + } } Ok(()) } -- cgit v1.2.3